centos7.4 64位下安装php-7.2.5及php-fpm
首页->学习资料->其它->开发环境搭建 关键词: 发布时间:2018-06-14 13:46:25 浏览次数:2841

【源码方式安装php-7.2.5及php-fpm】


卸载旧版本php(centos7默认的是php5.4)

yum list installed | grep php

然后将结果中的一个人yum remove XX 掉

或者yum remove php*批量删除掉

yum -y install bzip2

yum -y install zip

yum -y install unzip

yum -y install gcc

yum -y install libxml2

yum -y install libxml2-devel

yum -y install m4

yum -y install autoconf

yum -y install openssl openssl-devel

yum -y install zip unzip

yum -y install curl

yum -y install wget

yum -y install libpng-devel

wget http://cn.php.net/distributions/php-7.2.5.tar.gz

tar -zxvf php-7.2.5.tar.gz

cd php-7.2.5.tar.gz

以下带的这几个参数非常重要,装了好多次才试出来的,终于成功了;

加了这几个参数后,php.ini中的扩展中就不需要开启了,貌似是安装到php内部去了,其它没有在这里指定要开启的扩展就需要自行编译安装并在php.ini中开启

不加这几个参数,后面安装数据库后连接不上

--enable-maintainer-zts这一项在后期项目用到mongodb时折腾了好久才发现要开启这个,否则编译安装后mongodb.so在php-fpm启动时一直报错;

./configure --enable-fpm --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-maintainer-zts

成功后会看到:

Thank you for using PHP.


config.status: creating php7.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/fpm/php-fpm.conf

config.status: creating sapi/fpm/www.conf

config.status: creating sapi/fpm/init.d.php-fpm

config.status: creating sapi/fpm/php-fpm.service

config.status: creating sapi/fpm/php-fpm.8

config.status: creating sapi/fpm/status.html

config.status: creating sapi/cgi/php-cgi.1

config.status: creating ext/phar/phar.1

config.status: creating ext/phar/phar.phar.1

config.status: creating main/php_config.h

config.status: executing default commands


然后执行:

make

完成后会看到:

Build complete.

Don't forget to run 'make test'.


再执行

make install


完成后成到如下信息:

Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20170718/

Installing PHP CLI binary:        /usr/local/bin/

Installing PHP CLI man page:      /usr/local/php/man/man1/

Installing PHP FPM binary:        /usr/local/sbin/

Installing PHP FPM defconfig:     /usr/local/etc/

Installing PHP FPM man page:      /usr/local/php/man/man8/

Installing PHP FPM status page:   /usr/local/php/php/fpm/

Installing phpdbg binary:         /usr/local/bin/

Installing phpdbg man page:       /usr/local/php/man/man1/

Installing PHP CGI binary:        /usr/local/bin/

Installing PHP CGI man page:      /usr/local/php/man/man1/

Installing build environment:     /usr/local/lib/php/build/

Installing header files:          /usr/local/include/php/

Installing helper programs:       /usr/local/bin/

  program: phpize

  program: php-config

Installing man pages:             /usr/local/php/man/man1/

  page: phpize.1

  page: php-config.1

Installing PEAR environment:      /usr/local/lib/php/

[PEAR] Archive_Tar    - installed: 1.4.3

[PEAR] Console_Getopt - installed: 1.4.1

[PEAR] Structures_Graph- installed: 1.1.1

[PEAR] XML_Util       - installed: 1.4.2

[PEAR] PEAR           - installed: 1.10.5

Wrote PEAR system config file at: /usr/local/etc/pear.conf

You may want to add: /usr/local/lib/php to your php.ini include_path

/root/download/php-7.2.5/build/shtool install -c ext/phar/phar.phar /usr/local/bin

ln -s -f phar.phar /usr/local/bin/phar

Installing PDO headers:           /usr/local/include/php/ext/pdo/


然后:

cp php.ini-development /usr/local/lib/php.ini

cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

cp sapi/fpm/php-fpm /usr/local/bin/

cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf

然后设置php.ini,使用: vim /usr/local/lib/php.ini 打开php配置文件找到cgi.fix_pathinfo配置项,

这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,

从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0

vi /usr/local/etc/php-fpm.conf修改

include=NONE/etc/php-fpm.d/*.conf为

include=/usr/local/etc/php-fpm.d/*.conf

启动php-fpm:

/usr/local/bin/php-fpm


用以下命令查看9000端口如果可以看到则表示php-fpm启动成功

[root@iZwz99m0qp1swglw9om6zxZ php-7.2.5]# netstat -ntlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1168/sshd           

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      19941/php-fpm: mast


安装扩展,并在php.ini中开启

安装openssl,mbstring,zlib扩展

以安装openssl为例,大致步骤:

cd /root/download/php-7.2.5/ext/openssl

mv config0.m4 config.m4

phpize

./configure --with-openssl --with-php-config=/usr/local/bin/php-config

make

make install


详细说明:

http://blog.csdn.net/shinesun001/article/details/54312402



tips:

vim /usr/local/lib/php.ini  开启扩展

安装完扩展后要重启php-fpm才生效




【单独安装php-fpm】

如果单独下载了php源码进行安装,则不需要进行按照这里的方法安装;版本可能不一致;

注意,此方式安装的版本与7.2.5不一致,最终导致安装的是7.2.4

注意这里的版本要和上面的php版本一致

由于linux的yum源不存在php7.x,所以我们要更改yum源,如果不更改源,默认安装的php-fpm是php5.4的

参考:https://webtatic.com/packages/php72/

注意下面url是http不是https上面的网页中给出的是https

rpm -Uvh http://mirror.webtatic.com/yum/el7/webtatic-release.rpm

rpm -Uvh http://mirror.webtatic.com/yum/el7/epel-release.rpm

yum search php72w-fpm

yum install php72w-fpm

然后启动:

service php-fpm start


tips:

在执行yum install 命令时,我的环境中遇到了错误:

Could not retrieve mirrorlist https://mirror.webtatic.com/yum/el7/x86_64/mirrorlist error was

12: Timeout on https://mirror.webtatic.com/yum/el7/x86_64/mirrorlist: (28, 'Operation timed out after 30002 milliseconds with 0 out of 0 bytes received')

之后替换CentOS-Base.repo后可以正确执行yum命令 

具体步骤: 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo 

运行以下命令生成缓存 

yum clean all 

yum makecache 




【简化php执行命令路径】

如:./bin/php test.php

输入麻烦,要改成php test.php

vi ~/.bash_profile

增加:alias php=php路径/bin/php

source ~/.bash_profile使修改生效


tips:

Linux中source命令的用法

source命令:

source命令也称为“点命令”,也就是一个点符号(.)。

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

https://www.cnblogs.com/xupeizhi/archive/2013/02/20/2917931.html


赞:(0)
踩:(0)
相关文章
windows下使用MongoDB Compass Com
Oracle VM VirtualBox中设置共享文
linux安装openvpn并保存密码
deepin v20深度系统安装docker及do
域名在阿里云服务器换成腾讯云后备
windows下安装VirtualBox增强工具
国内访问github慢或打不开的解决方
linux下安装phpstorm2018及激活码
vmware中虚拟机上不了网及共享文件
linux版phpstorm2020.3.3及激活码
热门文章
win7中将文件拷贝到虚拟机linux下
phpexcel设置行高及列宽,背景颜色,
rabbitmq无法启动
intellij idea不显示git push按钮
php7中使用mongodb的aggregate进行
centos7.4 64位下swoole安装及配置
laravel页面静态化的方法
navicate连接mycat报1184错误
单点登录sso原理及php实现方式及de
devops-jenkins容器为pending状态
好评文章
phpexcel设置行高及列宽,背景颜色,
php7中使用mongodb的aggregate进行
intellij idea打开文件所在文件夹
windows下使用MongoDB Compass Com
win7中将文件拷贝到虚拟机linux下
laravel 中悲观锁 & 乐观锁的使用
单点登录sso原理及php实现方式及de
navicate连接mycat报1184错误
rabbitmq无法启动
laravel整合dingo/api方法步骤:jwt
标签
rabbitmq mysql备份 elasticsearch golang swoole
我的项目
【github】www.github.com/hurong241
【码云】gitee.com/hu_rong/projects
【docker hub】hub.docker.com/repositories/hurong241
【packagist】packagist.org/users/hurong241/packages
站点信息
建站时间:2011年
文章数:607篇
浏览数:941420
粤ICP备18028092号-1  微信:hurong241