一键安装php
说明:请把所需要的软件包放在文件夹中,把文件夹重命名为packages,然后压缩成packages.zip的包,上传到linux系统上任何目录都可以,然后在上传packages.zip包的当前目录(例如:/media )运行php_install.sh脚本即可,若php_install.sh脚本和packages.zip包不在同一目录,需使用绝对该脚本所在绝对路径来运行。
[root@localhost media]# vim /root/php_install.sh
#!/bin/bash
# Write data: 2012.07.11
date > /root/install_php_time.txt
#--------------------------------------------------------------------------------
cat << EOF
+--------------------------------------------------------------+
| === Welcome to install php === |
+--------------------------------------------------------------+
EOF
#---------------------------------------------------------------------------------# Php install directory and configuration files...
echo "Do you want to install the php in what directory?"
read -p "Please input a diretory,For Example:/opt :" directory
#directory=/opt
apache_base_dir=$directory/app/apache
mysql_base_dir=$directory/app/mysql
php_base_dir=$directory/app/php
packages=$directory/packages
IN_PATH=`pwd`# Check the PHP rpm package is installed, if installed on uninstall...
rpm -qa | grep php
if [ $? -eq 0 ]
then
echo "The PHP rpm packages already installed!!"
echo "yum -y remove php"
sleep 3
yum -y remove php
else
echo "The PHP rpm packages not installed!!"
fiif [ -e $php_base_dir ]
then
echo "The $php_base_dir already!"
else
echo "Create $php_base_dir directory!"
mkdir -p $php_base_dir
fiunzip $IN_PATH/packages.zip -d $directory
# PHP version choice...echo "show $packages php install package."
ls -lh $packages | awk '{ print $9}' | grep php
echo "Please input you will install PHP version number:"
read -p "PHP version number is:" version#if [ -e $packages/php-$version.tar.bz2 ]
## High version of the PHP .tar package using the following command.
if [ -e $packages/php-$version.tar.gz ]
then
echo "Please wait..."
# tar -jxf $packages/php-$version.tar.bz2 -C $packages
## High version of the PHP.tar package using the following command.
tar -zxf $packages/php-$version.tar.gz -C $packages
cd $packages/php-$version
sh configure \
--prefix=$php_base_dir \
--enable-mbstring \
--with-apxs2=${apache_base_dir}/bin/apxs \
--with-config-file-path=$php_base_dir/etc \
--with-mysql=${mysql_base_dir} \
--with-mysqli=${mysql_base_dir}/bin/mysql_config \
--enable-safe-mode \
--enable-ftp \
--enable-zip \
--with-bz2 \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--without-iconv \
--with-libXML-dir \
--with-xmlrpc \
--with-zlib-dir \
--with-gd \
--enable-gd-native-ttf \
--with-curl
make && make install
cd /root
# Copy PHP master configure php.ini file...
# cp $packages/php-$version/php.ini-dist $php_base_dir/etc/php.ini
### High version of the PHP .tar package using the following command.
cp $packages/php-$version/php.ini-production $php_base_dir/etc/php.ini
grep "LoadModule php5_module modules/libphp5.so" ${apache_base_dir}/conf/httpd.conf
if [ $? -eq 0 ] ; then
sed -i 's/^ DirectoryIndex index.html/ DirectoryIndex index.php index.html/' ${apache_base_dir}conf/httpd.conf
sed -i 's#AddType application/x-compress \.Z#&\n\ AddType application/x-httpd-php .php#' ${apache_base_dir}/conf/httpd.conf
${apache_base_dir}/bin/apachectl restart
echo '<?php
phpinfo ();
?>' > ${apache_base_dir}/htdocs/test.php
echo '<?php
$link=mysql_connect(`localhost`,`test`,``);
if (!link) echo "Fail !!";
else echo "Success !!";
mysql_close();
?>' > ${apache_base_dir}/htdocs/testdb.php
echo "PHP install Success!!"
cat << EOF
+--------------------------------------------------------------+
| === The php install Success!!! === |
+--------------------------------------------------------------+
EOF
else
echo "Install error,PHP does not support Apache service"
fi
date >> /root/install_php_time.txt
echo "Show Apache used port!!"
${apache_base_dir}/bin/apachectl restart
netstat -antupl | grep httpd
echo "Show time to install php!!"
cat /root/install_php_time.txt | awk '{ print $4 }'
else
echo "PHP install Fail!!"
rm -fr $php_base_dir
rm -fr $packages
fi[root@localhost media]# chmod 755 /root/php_install.sh
[root@localhost media]# /root/php_install.sh