YiluPHP
这家伙很懒,什么都没有留下...

经验 阿里云香港的centos7 编译安装php5.6.31

浏览数 180756
centos系统版本如下:
# 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

下载源码

  1. 打开php.net官网下载php 5.6.31源码
  2. 执行命令:
    mkdir /software
    cd /software
    wget http://cn2.php.net/distributions/php-5.6.31.tar.gz
  3. 解压php源码:
    tar zxvf php-5.6.31.tar.gz
  4. 进入解压源码目录:
    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安装目录

  1. 复制php.ini命令:(注意以下php.ini的路径是没有错的,我原以为是错误的就改到/usr/local/php/etc/下,结果不起作用)
    cp php.ini-development /usr/local/php/lib/php.ini
  2. 复制php-fmp配置命令:
    cp ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
  3. 启动脚本
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
  4. 查看php是否安装成功
    /usr/local/php/bin/php --version
    显示php版本就安装成功了,php5.6.31就编译安装完了
  5. 开发启动服务
    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





我来说说