系统信息
cmp@ubuntu:~/work_dir$ uname -a
Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
php-5.6.7源码包下载地址
https://www.php.net/distributions/php-5.6.7.tar.gz
安装方案概述
- nginx采用apt安装
- php采用编译安装
1.php编译安装并配置php启动环境
下载php-5.6.7源码包php-5.6.7.tar.gz,并解压
执行下面脚本,编译php:
脚本文件:compile_php.sh
#!/bin/bash
cd php-5.6.6
make clean
sudo apt-get build-dep php5 -y
sudo apt-get install libmcrypt-dev libmcrypt4 -y
sudo apt-get install libt1-dev -y
./configure \
--prefix=/opt/php5 \
--with-config-file-path=/opt/php5/etc \
--with-curl \
--with-pear \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-xpm-dir \
--with-freetype-dir \
--with-t1lib \
--with-mcrypt \
--with-mhash \
--with-mysql \
--with-mysqli \
--enable-pdo \
--with-pdo-mysql \
--with-openssl \
--with-xmlrpc \
--with-xsl \
--with-gettext \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-fpm \
--enable-exif \
--enable-wddx \
--enable-zip \
--enable-bcmath \
-with-bz2 \
--enable-calendar \
--enable-ftp \
--enable-mbstring \
--enable-soap \
--enable-sockets \
--enable-shmop \
--enable-dba \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-debug \
--enable-maintainer-zts \
--enable-embed && make -j2
执行下面脚本,安装并配置php启动环境
脚本文件:config_php_env.sh
#!/bin/bash
# 添加环境变量,在/etc/bash.bashrc文件中
is_setted=`grep "/opt/php5/sbin" /etc/bash.bashrc | wc -l`
if [ ${is_setted} -eq 0 ];then
sudo sh -c 'echo "PATH=$PATH:/opt/php5/bin:/opt/php5/sbin" >> /etc/bash.bashrc'
else
echo "[I]Skip to set php2 ENV variables!!"
fi
# 安装php5
cd php-5.6.6
sudo make install
# 准备PHP5的日志文件目录:
sudo mkdir /var/log/php-fpm
sudo chown -R www-data:www-data /var/log/php-fpm
# 准备PHP的配置文件:
# 注意: PHP5的配置文件在/opt/php5/etc/php.ini,php-fpm的配置文件在/opt/php5/etc/php-fpm.conf。
sudo cp -f php.ini-production /opt/php5/etc/php.ini
sudo chmod 644 /opt/php5/etc/php.ini
sudo cp /opt/php5/etc/php-fpm.conf.default /opt/php5/etc/php-fpm.conf
# 设置php-fpm启动管理文件,并让PHP在ubuntu启动时自动运行(下面地sapi是PHP5.6.7安装包中的):
sudo cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod 755 /etc/init.d/php-fpm
sudo update-rc.d -f php-fpm defaults
sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=1@" /opt/php5/etc/php.ini
2.安装nginx并配置nginx
脚本文件:install_nginx.sh
#!/bin/bash
# 安装nginx
sudo apt-get install nginx -y
配置nginx:
修改/etc/nginx/nginx.conf文件
server里面增加如下配置:
注意:默认的server有可能在nginx.conf或者sites-available/default或其他配置文件中。
location ~\.php$ {
# 配置nginx,通过FastCGI方式支持PHP,php页面由fastcgi代理处理.
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
3.配置php-fpm
脚本文件:config_php-fpm.sh
#!/bin/bash
# 修改/opt/php5/etc/php-fpm.conf文件
sudo sed -i "s@;pid = run/php-fpm.pid@pid = run/php-fpm.pid@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;error_log = log/php-fpm.log@error_log = log/php-fpm.log@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;log_level = notice@log_level = notice@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;listen.owner = www-data@listen.owner = www-data@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;listen.group = www-data@listen.group = www-data@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;listen.mode = 0660@listen.mode = 0660@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;listen.allowed_clients = 127.0.0.1@listen.allowed_clients = 127.0.0.1@" /opt/php5/etc/php-fpm.conf
sudo sed -i "s@;pm.max_requests = 500@pm.max_requests = 500@" /opt/php5/etc/php-fpm.conf
4.重启nginx和php-fpm,并校验环境是否ok
脚本文件:restart_check.sh
#!/bin/bash
sudo /etc/init.d/php-fpm restart
ok1=$?
sudo /etc/init.d/nginx restart
ok2=$?
if [ $ok1 -ne 0 ] || [ $ok2 -ne 0 ];then
echo "[E]restart Failed.."
exit 1
fi
sudo sh -c 'echo "<?php echo 123123123; ?>" > /usr/share/nginx/html/test.php'
isok3=`curl http://127.0.0.1/test.php 2>&1 | grep -v php | grep 123123123 | wc -l`
if [ $isok3 -eq 1 ];then
echo "[I] nginx-php config SUCC.."
exit 0
fi
echo "[E] nginx-php config Failed.."
exit 1