运维日常:Linux调用双版本PHP

1.当前系统状态

[[email protected] ~]# php -v
PHP 5.6.31 (cli) (built: Nov 24 2017 12:37:03)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies
[[email protected] ~]# uname -r
3.10.0-693.5.2.el7.x86_64

2.下载解压软件包

wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
tar -xf php-7.1.6.tar.bz2
cd php-7.1.6

3.安装环境包,保证服务器的gcc和g++环境
yum -y install libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel

4.预编译,检查环境
./configure --prefix=/usr/local/php7 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

5.编译安装

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/
make ZEND_EXTRA_LIBS=‘-liconv‘
make install

6.配置相关php文件(/usr/local/php7是安装目录,区别原来的PHP版本)

cp php.ini-development /usr/local/php7/lib/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin/php7-fpm

7.设置php.ini文件

vim /usr/local/php7/lib/php.ini
cgi.fix_pathinfo=0

打开php配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的×××,所以此项应该去掉注释并设置为0

8.查看启动进程管理用户

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

vim /usr/local/php7/etc/php-fpm.d/www.conf
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user‘s group
;       will be used.
user = nobody
group = nobody

9.启动php-fpm服务

/usr/local/bin/php7-fpm
[[email protected] ~]# netstat -tunlp |grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      23384/php-fpm: mast

10.设置nginx调用PHP7

vim /usr/local/nginx/conf/vhost/linuxview.conf
location ~ \.php$ {
   #不能有下面这句 try_files ,不然报错500
   # try_files $uri /index.php =404;
   # fastcgi_split_path_info ^(.+\.php)(/.+)$;
   # root      html;
   #这句注意 后面是127.0.0.1,不然调用不了
   fastcgi_pass  127.0.0.1:9000;
   #fastcgi_pass  unix:/tmp/php-cgi.sock;
   fastcgi_index index.php;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

11.重加载nginx服务

nginx -s reload

nginx:这个便捷命令是/usr/local/nginx/sbin/nginx 的别名,
命令如下:建议写入环境变量文件。
alias nginx=/usr/local/nginx/sbin/nginx  

原文地址:http://blog.51cto.com/leoheng/2167109

时间: 2024-11-12 16:53:03

运维日常:Linux调用双版本PHP的相关文章

老男孩26期运维班linux基础知识大比拼即将开始

老男孩26期运维班linux基础知识大比拼 1 比赛说明 比赛时间:2015年11月12日下午15点 比赛地点:老男孩教育教室二 比赛人员:老男孩教育26期全体同学 奖项:团体奖(按组奖励共1-9组): 一等奖奖励300元人民币或每人老男孩老师新书一本和老师合影签名. 二等奖奖励200元人民币 三等奖奖励100元人民币 个人奖:3名,赠老男孩新书一本 惩罚:没有得奖的组,或者组内无人得奖的组,罚100元或派选代表表演一个节目(唱歌或其它) 比赛规则当场宣布: 主评委:老男孩老师,张导 辅助评委:

运维日常集合(个人向 坚持更新)

运维日常集合(个人向) 日常运维常用集合,分三部分 windows.linux.Python 得益于python工具便利性,使得运维的工作大大减少. Shell 清除其他终端 who //查看在线终端 pkill -9 -t pts/2 找出内存消耗的进程排序 ps aux --sort=-rss | head -n 4 找出CPU消耗的进程排序 ps aux --sort=-pcpu | head -4 持续 ping 并将结果记录到日志 ping api.jpush.cn | awk '{

【安全运维】linux系统加固(第二部分),经测试可行

前言 接续系统加固第一部分未完的内容,第二部分主要涉及关闭多余的服务,用户账户的安全策略,以及内核网络参数的优化等等. <修改系统默认的账户密码策略> 这是通过编辑  /etc/login.defs  文件相关内容实现的.和前面一样的道理,修改前需要备份,然后把"鸡蛋"放在多个"篮子"里: [[email protected] 桌面]# cp -p  /etc/login.defs /etc/login.defs_backup 使用 vim 文本编辑器编

利用alias命令别名对常用运维命令的调用 (给命令起别名)

利用alias命令别名对常用运维命令的调用 在~目录下,修改.bashrc,对进入ezsonar.对应log目录的命令进行别名 [[email protected] ~]# vi .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias l='ls -al' alias ez='cd /usr/local/ezsonar/' al

逆思维调用双版本PHP7和5

一.前言 1.前言 上一个博客是基于PHP5安装PHP7,调用双版本的PHP.现在由于项目环境的不一样,导致是最新版本的PHP7环境,部署老版本的项目,使用新版本的PHP去调用旧的PHP项目,会报错的.最明显的报错就是"no input file specified",每次遇到这个问题,首先想到的就是PHP版本的问题,然后再排其他的错.这次是在新环境中调用老版本的PHP,前提是保持原来的项目不受影响,所以为了不影响其他项目不受影响,优先考虑端口占用,而服务进程的管理者,服务器网络状态,

系统运维日常工作有哪些,应该具备哪些技能

一.日常工作内容: 1.看监控.网站流量,CDN流量,看邮件有没有普通业务监控报警,看邮件中有没其他需要做的工作 2.处理报警,查看报警的原因,和开发一起解决,并且尽量找出避免再次发生的方法,例如添加一些 定时清理脚本 3.处理发布,基本都是自动化,但是总有发布不成功或者需要回滚的时候,这时候就需要手工介入, 找到原因,并跟开发一起讨论最后是否撤销还是重上 4.日常一起能够自动化的工作尽量找到自动化的方法 5.配合开发搭建测试环境,线上环境,上线代码,以及日常开个权限 6.定期机房巡检 7.灾备

运维日常:快速解决Redis问题

一.问题的存在日常报错: 日常解决分析:日常报错,首先是看日志,这是都是教训总结出来的经验啊...好了,这次是PHP报错,"Redis" not found,要么Redis扩展没装,要么Redis版本不兼容,还要么找不到Redis的默认安装路径.经过排查之后,发现是没装Redis扩展,可能在源码编译的时候,没有加入Redis扩展选项. 备注:其实没装Redis扩展也没什么,也就有一些网页显示不出来,严重的可能认为代码有问题,并不是运维的锅,最后升级发酵变成技术部内讧.当然,一般出错肯定

运维、linux运维是什么?

从不知道运维是什么 到后来接触了linux运维 后来玩遍了运维常用的各种开源软件发现原来运维是这么回事 又到了后来,运维真的是我理解的这些吗?会软件,会配置,会部署.会调优,会处理故障...但是总觉得差了什么. 再后来感觉运维多没入门了,噢!我的天啊,运维到低是什么啊!!!!! 运维到底是什么啊! 运维到底是什么啊啊!! 是啥呢!!探索吧!骚年!

GTD180007:【运维】LINUX学习

Linux运维入门教程 --阿铭出品  https://ke.qq.com/course/71060#tuin=9a54a3fd10天学会Linux Shell编程 --阿铭出品 https://ke.qq.com/course/78728#tuin=9a54a3fd Linux架构师[京峰教育] https://ke.qq.com/course/173130?from=qqchat&ADUIN=2589238269&ADSESSION=1497457157&ADTAG=CLIEN