资讯专栏INFORMATION COLUMN

lnmp 多个php版本共存

yeooo / 907人阅读

摘要:多个版本共存本例系统已通过安装好了,所以后面手动安装。但是为什么需要安装多个版本的发挥你的小宇宙想象一下吧。

lnmp 多个php版本共存

本例(ubuntu系统)已通过lnmp安装好php7.1了,所以后面手动安装php5.6.36。但是为什么需要安装多个版本的PHP?发挥你的小宇宙想象一下吧。

安装PHP5.6.36

下载php5.6.36

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

解压

tar zxvf ./php-5.6.36.tar.gz

配置

./configure 
--prefix=/usr/local/php56 
--with-config-file-path=/usr/local/php56/etc 
--with-config-file-scan-dir=/usr/local/php56/conf.d 
--enable-fpm 
--with-fpm-user=www 
--with-fpm-group=www 
--with-mysql=mysqlnd 
--with-mysqli=mysqlnd 
--with-pdo-mysql=mysqlnd 
--with-iconv-dir 
--with-freetype-dir=/usr/local/freetype 
--with-jpeg-dir 
--with-png-dir 
--with-zlib 
--with-libxml-dir=/usr 
--enable-xml 
--disable-rpath 
--enable-bcmath 
--enable-shmop 
--enable-sysvsem 
--enable-inline-optimization 
--with-curl 
--enable-mbregex 
--enable-mbstring 
--with-mcrypt 
--enable-ftp 
--with-gd 
--enable-gd-native-ttf 
--with-openssl 
--with-mhash 
--enable-pcntl 
--enable-sockets 
--with-xmlrpc 
--enable-zip 
--enable-soap 
--with-gettext 
--disable-fileinfo 
--enable-opcache 
--enable-intl 
--with-xsl

如果过程提示错误比如:freetype,就解决这些错误再重新执行配置

先搜索这个名字,看看安装包的具体名字是什么,然后再使用apt-get安装

apt-cache search freetype
apt-get install libfreetype6-dev

执行make

make

我出现了这种错误,recipe for target "sapi/cli/php" failed,解决方法是直接编辑makefile文件,搜索EXTRA_LIBS,在EXTRA_LIBS= 后面添加-liconv,如:EXTRA_LIBS = ..... -lcrypt -liconv,然后执行make clean,再执行一次make
最后就是make install了

make install
配置php5.6
cp /root/php-5.6.36/php.ini-development /usr/local/php56/etc/php.ini

打开并修改/usr/local/php56/etc/php.ini
查找 mysql.default_socket 改成

mysql.default_socket = /tmp/mysql.sock

查找 mysqli.default_socket 改成

mysqli.default_socket = /tmp/mysql.sock

查看php5.6版本

/usr/local/php56/bin/php -v

PHP 5.6.36 (cli) (built: May  1 2018 16:03:00) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
配置 php-fpm 服务

因为 PHP 7 的服务文件为 php-fpm.service 所以这里用 php56-fpm.service

cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php56-fpm.service

编辑php56-fpm.service,修改

PIDFile=${prefix}/var/run/php-fpm.pid
ExecStart=${exec_prefix}/sbin/php-fpm --nodaemonize --fpm-config ${prefix}/etc/php-fpm.conf

PIDFile=/usr/local/php56/var/run/php-fpm.pid
ExecStart=/usr/local/php56/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php56/etc/php-fpm.conf

/usr/local/php56/etc下添加文件php-fpm.conf
内容为

[global]
pid = /usr/local/php56/var/run/php-fpm.pid
error_log = /usr/local/php56/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php56-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

在/usr/local/php56/var/run中添加一个文件php-fpm.pid,内容为

3353

因为php7的pid为3352,所以这里用3353,这个随意,不要和别的软件冲突就行。

重新载入 systemd

systemctl daemon-reload

可以设置开机启动:

systemctl enable php56-fpm

立即启动 php-fpm

systemctl start php56-fpm

查看php5.6的状态

systemctl status php56-fpm
● php56-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php56-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-05-01 19:21:52 CST; 26s ago
 Main PID: 3353 (php-fpm)
   CGroup: /system.slice/php56-fpm.service
           ├─3353 php-fpm: master process (/usr/local/php56/etc/php-fpm.conf)                               
           ├─3373 php-fpm: pool www                                                                         
           ├─3374 php-fpm: pool www                                                                         
           ├─3375 php-fpm: pool www                                                                         
           ├─3376 php-fpm: pool www                                                                         
           ├─3377 php-fpm: pool www                                                                         
           ├─3378 php-fpm: pool www                                                                         
           ├─3379 php-fpm: pool www                                                                         
           ├─3380 php-fpm: pool www                                                                         
           ├─3381 php-fpm: pool www                                                                         
           └─3382 php-fpm: pool www                                                                         

May 01 19:21:52 iZ23mzd9hi4Z systemd[1]: Started The PHP FastCGI Process Manager.
May 01 19:22:05 iZ23mzd9hi4Z systemd[1]: Started The PHP FastCGI Process Manager.

查看php7的状态

systemctl status php-fpm
● php-fpm.service - LSB: starts php-fpm
   Loaded: loaded (/etc/init.d/php-fpm; bad; vendor preset: enabled)
   Active: active (exited) since Tue 2018-05-01 14:47:03 CST; 4h 35min ago
     Docs: man:systemd-sysv-generator(8)

May 01 14:47:01 iZ23mzd9hi4Z systemd[1]: Starting LSB: starts php-fpm...
May 01 14:47:03 iZ23mzd9hi4Z php-fpm[771]: Starting php-fpm  done
May 01 14:47:03 iZ23mzd9hi4Z systemd[1]: Started LSB: starts php-fpm.
配置不同的 nginx 站点使用不用的 PHP 版本

/usr/local/nginx/conf下添加一个文件名为enable-php56.conf
内容为

location ~ [^/].php(/|$)
    {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php56-cgi.sock;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

修改域名配置文件中的include enable-php.conf;include enable-php56.conf;

server
    {
        listen 80;
        ...
        include enable-php56.conf;
        ...
    }
测试一下

在各域名目录下添加一个info.php文件测试一下

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30719.html

相关文章

  • 虚拟机上Centos7开发环境搭建(编译安装LNMP,多版本PHP共存PHP扩展安装)

    摘要:安装系统本次安装的是的最小化版本,以下操作在用户下进行。在搭建完该环境后,笔者使用作为开发,配置使其可以直接调试虚拟机上的代码即开发环境下代码是运行在虚拟机上的。通过该方法,可以最大程度地确保开发环境与生产环境的一致性。 安装系统 本次安装的是Centos7.3的最小化版本,以下操作在root用户下进行。在搭建完该环境后,笔者使用phpstorm作为开发ide,配置phpstorm使其...

    zhangke3016 评论0 收藏0
  • NextCloud与Seafile对比使用-NextCloud各项全能 Seafile优势突出

    摘要:和是目前两款比较适合个人当成网盘或者同步云盘使用的程序,最近为了可以找到最适合自己的云盘程序,分别安装并试用了与。二应用平台两者旗鼓相当客户端,与都比较齐全,全平台支持。手机电脑端网页端等都可以正常使用。NextCloud和Seafile是目前两款比较适合个人当成网盘或者同步云盘使用的程序,最近为了可以找到最适合自己的云盘程序,分别安装并试用了NextCloud与Seafile。总得来说,N...

    番茄西红柿 评论0 收藏2637
  • WordPress建站:宝塔面板好用的Linux服务器面板安装教程

    摘要:一键配置环境网站数据库通过端轻松管理服务器。点击进入领取宝塔面板元礼包地址版请确保纯净系统安装支持,端管理,支持一键创建网站数据库安全管理,计划任务,文件管理,多版本共存及切换,一键开启环境。越来越多的人选择wordpress建站,个人站长其实门槛很低的,但是有些朋友觉得Linux服务器的各种命令脚本自己没法搭建环境。今天,小编给大家推荐一个不错的Linux面板工具,宝塔面板是一款使用方便、...

    番茄西红柿 评论0 收藏2637
  • php 程序员 命令行指南 持续总结更新 mac

    摘要:直接强制结束程序。在用挂起程序时,当想要结束这个程序,最好用。能够模拟在控制台结束程序的功能。 向 host 文件快速添加新网址配置 echo 127.0.0.1 your.domian.com | sudo tee -a /etc/hosts NGINX 配置 #nginx禁止访问.点号开头的文件 location ~* /.* { deny all; } #nginx 禁止访问.s...

    gyl_coder 评论0 收藏0

发表评论

0条评论

yeooo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<