【源码方式安装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
- 相关文章
- 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
- 我的项目
- 【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