阿里云香港的centos7 编译安装php5.6.31
# cat /proc/version
Linux version 3.10.0-693.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Sep 12 22:26:13 UTC 2017
# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
同样的系统,同样是阿里云的服务器,昨天在美国的服务器上安装PHP5.6.30的方法,今天用在香港的服务器上安装就不行,安装到拷贝php-fpm和php-fpm.conf文件时找不到源文件,只能在网上找到此方法安装,此方法的php高了一点点,是php5.6.31,应该使用上没有什么区别。
安装php需要的软件
yum install -y gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel curl curl-devel libxslt-devel openssl-devel
下载源码
- 打开php.net官网下载php 5.6.31源码
- 执行命令:
mkdir /software
cd /software
wget http://cn2.php.net/distributions/php-5.6.31.tar.gz - 解压php源码:
tar zxvf php-5.6.31.tar.gz - 进入解压源码目录:
cd php-5.6.31
编译(安装)配置
在php-5.6.31目录执行以下命令(安装php到/usr/local/php目录):
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-sockets --enable-sysvsem --enable-xml --enable-zip
如果这步出错,就按照错误百度一步步解决(一般都是缺少相应的软件包造成的错误)
编译并安装php源码
编译源码只需要执行命令:
make && make install
复制php配置到安装php安装目录
-
复制php.ini命令:(注意以下php.ini的路径是没有错的,我原以为是错误的就改到/usr/local/php/etc/下,结果不起作用)
cp php.ini-development /usr/local/php/lib/php.ini - 复制php-fmp配置命令:
cp ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf - 启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm - 查看php是否安装成功
/usr/local/php/bin/php --version
显示php版本就安装成功了,php5.6.31就编译安装完了 - 开发启动服务
chkconfig --add php-fpm
chkconfig php-fpm on
环境变量
# vim /etc/profile PATH=$PATH:/usr/local/php/bin export PATH # source /etc/profile |
启动/停止/重启php方法
service php-fpm start
service php-fpm stop
service php-fpm restart
====================以下内容仅供参考================
fpm路径: /usr/local/php/sbin/php-fpm
fpc配置路径: /usr/local/php/etc/php-fpm.conf
php.ini路径: /usr/local/php/lib/php.ini
php常用命令
1. 查看php版本: /usr/local/php/bin/php -v
2. 查看phpinfo: /usr/local/php/bin/php -i
3. 查看php编译模块: /usr/local/php/bin/php -m
4. 查看php.ini配置文件路径和目录: /usr/local/php/bin/php --ini
php-fpm常用命令
查看php-fpm占用端口号: ps -ef | grep php-fpm
1. 配置php-fmp: vi /usr/local/php/etc/php-fpm.conf
修改
user = nobody
group = nobody
改为
user = www
group = www
如果www用户不存在,那么先添加www用户
groupadd www # 新增用户组
useradd -g www www # 新增用户并设置用户组
2. 使用信号管理php-fpm
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
示例:
1. 启动服务:
/usr/local/php/sbin/php-fpm
指定配置路径启动服务
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
2. 平滑重启服务(会重启加载配置):
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
3. 重新打开日志文件:
kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`
4. 停止服务:
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
5. 平滑停止服务:
kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
6. 测试php-fpm配置
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini -y /usr/local/php/etc/php-fpm.conf -t