微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CentOS6中,安装PHP7

最近在安装Zabbix管理工具的时候遇到了PHP安装的问题,折腾了一阵,总算搞定,期间查了一些资料,分享出来,供大家参考,少走些弯路.

更新软件源[1]

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm

安装PHP7[2][3]

yum install PHP70-PHP PHP70-PHP-pear PHP70-PHP-bcmath PHP70-PHP-pecl-jsond-devel PHP70-PHP-MysqLnd PHP70-PHP-gd PHP70-PHP-common PHP70-PHP-fpm PHP70-PHP-intl PHP70-PHP-cli PHP70-PHP PHP70-PHP-xml PHP70-PHP-opcache PHP70-PHP-pecl-apcu PHP70-PHP-pecl-jsond PHP70-PHP-pdo PHP70-PHP-gmp PHP70-PHP-process PHP70-PHP-pecl-imagick PHP70-PHP-devel PHP70-PHP-mbstring PHP70-PHP-mcrypt

查看PHP70和PHP70-PHP-fpm的安装路径[4]

rpm -qa PHP70
# PHP70-1.0-5.el6.remi.x86_64
rpm -ql PHP70-1.0-5.el6.remi.x86_64
(contains no files)
#######
rpm -qa PHP70-PHP-fpm
# PHP70-PHP-fpm-7.0.8-1.el6.remi.x86_64
rpm -ql PHP70-PHP-fpm-7.0.8-1.el6.remi.x86_64
# /etc/logrotate.d/PHP70-PHP-fpm
# /etc/opt/remi/PHP70/PHP-fpm.conf # PHP-fpm的配置文件
# /etc/opt/remi/PHP70/PHP-fpm.d
# /etc/opt/remi/PHP70/PHP-fpm.d/www.conf # www的配置文件
# /etc/opt/remi/PHP70/sysconfig/PHP-fpm
# /etc/rc.d/init.d/PHP70-PHP-fpm
# /opt/remi/PHP70/root/usr/sbin/PHP-fpm # 二进制的位置
# /opt/remi/PHP70/root/usr/share/doc/PHP70-PHP-fpm-7.0.8
# /opt/remi/PHP70/root/usr/share/doc/PHP70-PHP-fpm-7.0.8/fpm_LICENSE
# /opt/remi/PHP70/root/usr/share/doc/PHP70-PHP-fpm-7.0.8/PHP-fpm.conf.default
# /opt/remi/PHP70/root/usr/share/doc/PHP70-PHP-fpm-7.0.8/www.conf.default
# /opt/remi/PHP70/root/usr/share/fpm
# /opt/remi/PHP70/root/usr/share/fpm/status.html
# /opt/remi/PHP70/root/usr/share/man/man8/PHP-fpm.8.gz
# /var/opt/remi/PHP70/lib/PHP/opcache
# /var/opt/remi/PHP70/lib/PHP/session
# /var/opt/remi/PHP70/lib/PHP/wsdlcache
# /var/opt/remi/PHP70/log/PHP-fpm
# /var/opt/remi/PHP70/run/PHP-fpm

可以看到,rpm -ql PHP70-PHP-fpm-7.0.8-1.el6.remi.x86_64并没有列出PHP70文件详细信息,根据[5]中的解释,yum认把软件包安装在以下位置

  1. 二进制: /usr/bin
  2. 类库: /usr/lib
  3. 文件: /usr/include
    所以,我们可以在/usr/bin中找到PHP70

PHPPHP-fpm制作符号链接

cp /usr/bin/PHP{,.bak}
ln -s /usr/bin/PHP70 /usr/bin/PHP
cp /usr/sbin/PHP-fpm{,.bak}
ln -s /opt/remi/PHP70/root/usr/sbin/PHP-fpm /usr/sbin/PHP-fpm

检查并启动PHP-fpm

PHP -v
# PHP 7.0.8 (cli) (built: Jun 22 2016 11:05:30) ( NTS )
# copyright (c) 1997-2016 The PHP Group
# Zend Engine v3.0.0,copyright (c) 1998-2016 Zend Technologies
# with Zend OPcache v7.0.8,copyright (c) 1999-2016,by Zend Technologies

PHP-fpm -v
# PHP 7.0.8 (fpm-fcgi) (built: Jun 22 2016 11:06:37)
# copyright (c) 1997-2016 The PHP Group
# Zend Engine v3.0.0,by Zend Technologies

PHP -i|less 
# Configuration File (PHP.ini) Path => /etc/opt/remi/PHP70
# Loaded Configuration File => /etc/opt/remi/PHP70/PHP.ini# 配置文件PHP.ini的位置

service PHP-fpm restart # 启动PHP-fpm

ps aux|grep PHP-fpm
# 或者
lsof -P -i:9000 # PHP-fpm认监听9000端口,该配置可以在`PHP-fpm`特定于`www`的配置文件(`/etc/opt/remi/PHP70/PHP-fpm.d/www.conf`)中的`listen`参数修改

(可选)修改配置文件

从上面的步骤中,我们知道了:
1. PHP配置文件(PHP.ini)在
/etc/opt/remi/PHP70/PHP.ini. 我们可以修改post_max_size,max_execution_time,max_input_time,date.timezone等. 其中date.timezone根据[6]的描述,可以设置为Asia/Shanghai
2. PHP-fpm特定于www配置文件/etc/opt/remi/PHP70/PHP-fpm.d/www.conf.我们可以修改监听端口listen,运行的用户名user用户group等.
3. 以上任意2个文件修改完成后,都只需要重启PHP-fpm即可: service PHP-fpm restart

参考

[1]English : Repository Configuration

[2]Install PHP7 from Remi repo

[3]How to Install PHP 7 on CentOS 7 (Red Hat/Fedora family)

[4]如何查看yum安装的软件路径

[5]Default path for installed binary?

[6]It is not safe to rely on the system’s timezone settings

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。