一键安装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