ubuntu14.06.6上编译安装nginx、php5、php-fmp环境

系统信息

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

其他php错误解决办法,请参照

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值