阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux安装PHP5与PHP7共存

472次阅读
没有评论

共计 7441 个字符,预计需要花费 19 分钟才能阅读完成。

在 Linux 下安装 PHP5 与 PHP7 共存。

PHP5 安装

  1. PHP 官网 www.php.net
  2. 当前主流版本为 5.6/7.1
  3. 进入存储源码包的目录:
    [root@linuxidc ~]# cd /usr/local/src
    
  4. 下载 php 的源码包:

地址:wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

5. 解压压缩包:

[root@linuxidc src]# tar -zxvf php-5.6.30.tar.gz

6. 进入安装目录:

[root@linuxidc src]# cd php-5.6.30
[root@linuxidc php-5.6.30]#

7. 安装 php:

[root@linuxidc php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif  // 安装 PHP
[root@linuxidc php-5.6.30]# echo $?  // 安装完成没有错误用这个检查 
0

解释说明个别参数:

--prefix:指定安装目录。
--with-apxs2:Apache 的工具,指定工具的地址,可以帮我们自动配置一些模块, 不用人工干涉。
--with-config-file-path:指定配置文件的路径。
--with-mysql:指定 mysql 路径。

安装报错:

  • 缺少 libxml2 这个库,安装命令:yum install -y libxml2-devel

Linux 安装 PHP5 与 PHP7 共存

  • 缺少 openssl 库,安装命令:yum install -y openssl-devel

Linux 安装 PHP5 与 PHP7 共存

  • 缺少 bzip2 包,安装命令:yum install -y bzip2-devel

Linux 安装 PHP5 与 PHP7 共存

  • 缺少 jpeglid 包, 安装命令:yum install -y libjpeg-devel

Linux 安装 PHP5 与 PHP7 共存

  • 缺少 libpng 包,安装命令:yum install -y libpng-devel

Linux 安装 PHP5 与 PHP7 共存

  • 缺少 freetype 包,安装命令:yum install -y freetype-devel

Linux 安装 PHP5 与 PHP7 共存

  • 缺少 libmcrypt 包,安装命令:yum install -y libmcrypt-devel,如果你没有安装 epel-release 这个扩展源,就需要先安装这个扩展源,因为 libmcrypt 是在这个扩展源里面,安装扩展源命令:yum install -y epel-release

Linux 安装 PHP5 与 PHP7 共存

8. 编译安装

[root@linuxidc php-5.6.30]# make
[root@linuxidc php-5.6.30]# make install 
[root@linuxidc php-5.6.30]# echo $?
0

备注:Apache 和 php 结合的通过图中的 libphp5.so 模块

Linux 安装 PHP5 与 PHP7 共存

9. 查看 php 加载的模块(都是静态的):

[root@linuxidc php-5.6.30]# /usr/local/php/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

10.PHP 是做为 apache 的模块存在,查看模块:

[root@linuxidc php-5.6.30]# /usr/local/apache2.4/bin/httpd -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 218.93.250.18. Set the'ServerName' directive globally to suppress this message
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 mpm_event_module (static)
 authn_file_module (shared)
 authn_core_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_user_module (shared)
 authz_core_module (shared)
 access_compat_module (shared)
 auth_basic_module (shared)
 reqtimeout_module (shared)
 filter_module (shared)
 mime_module (shared)
 log_config_module (shared)
 env_module (shared)
 headers_module (shared)
 setenvif_module (shared)
 version_module (shared)
 unixd_module (shared)
 status_module (shared)
 autoindex_module (shared)
 dir_module (shared)
 alias_module (shared)
 php5_module (shared)
[root@linuxidc php-5.6.30]# ls -l /usr/local/apache2.4/modules/libphp5.so   // 模块文件
-rwxr-xr-x 1 root root 37752872 12 月 18 17:09 /usr/local/apache2.4/modules/libphp5.so

解释说明:
php5_module (shared):这个说明 PHP 是作为 httpd 扩展模块的形式存在的, 那如果 apache 要想执行 php 的脚本,它就需要依赖借助于这个模块文件,如果把这个.so 文件删除,那 apache 就不支持 php 了,这个模块非常重要。

11. 这个 httpd 的配置文件里就多了一行 php 模块,被注释掉的就是没有用的模块,如果想用,把 #号去掉就可以了,随用随取:

[root@linuxidc php-5.6.30]# vim /usr/local/apache2.4/conf/httpd.conf  // 这是 apache 的配置文件 

Linux 安装 PHP5 与 PHP7 共存

12. 把 php 的参考配置文件复制到 php 的配置文件目录下:

示例如下:

[root@linuxidc php-5.6.30]# /usr/local/php/bin/php -i |less  // 查看 php 的一些配置信息,包括编译参数。


phpinfo()
PHP Version => 5.6.30

System => Linux linuxidc 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64
Build Date => Dec 18 2017 17:05:31
Configure Command =>  './configure'  '--prefix=/usr/local/php' '--with-apxs2=/usr/local/apache2.4/bin/apxs' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-pdo-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif'
Server API => Command Line Interface
Virtual Directory Support => enabled
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
PHP API => 20131106
PHP Extension => 20131226
Zend Extension => 220131226
Zend Extension Build => API220131226,TS
PHP Extension Build => API20131226,TS
Debug Build => no
Thread Safety => enabled
Zend Signal Handling => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => provided by mbstring
IPv6 Support => enabled
DTrace Support => disabled

Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies


 _______________________________________________________________________


Configuration

bz2
[root@linuxidc php-5.6.30]# ls /usr/local/php/etc // 查看模块下有没 php.ini 文件 
pear.conf 
[root@linuxidc php-5.6.30]# cp php.ini-production  /usr/local/php/etc/php.ini  // 需要到源码包的参考文件复制到 php 的配置文件目录下 
[root@linuxidc php-5.6.30]# /usr/local/php/bin/php -i |less  // 查看 php.ini 是否有加载 php.ini 文件模块,如下图 

Linux 安装 PHP5 与 PHP7 共存


PHP7 安装

  1. 进入源码包的目录:
    [root@linuxidc ~]# cd /usr/local/src/
    

    2. 下载源码包:

地址:wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

3. 解压压缩包:

[root@linuxidc src]#  tar jxvf php-7.1.6.tar.bz2

备注:如果没有安装 bzip2 压缩工具,请安装:yum install -y bzip2

4. 进入目录:

[root@linuxidc src]# cd php-7.1.6
[root@linuxidc php-7.1.6]#

5. 安装 php7:

[root@linuxidc php-7.1.6]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc  --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

6. 编译安装:

[root@linuxidc php-7.1.6]# make
[root@linuxidc php-7.1.6]# make install

7.php7 模块路径:

[root@linuxidc php-7.1.6]# ls /usr/local/apache2.4/modules/libphp7.so
/usr/local/apache2.4/modules/libphp7.so

8. 查看 php7 加载的模块(静态):

[root@linuxidc php-7.1.6]# /usr/local/php7/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

9. 查看 apache 加载了几个 php, 通过修改配置文件来指定使用 php5 还是 php7 模块,不要的就注释掉:

示例如下:

[root@linuxidc php-7.1.6]# /usr/local/apache2.4/bin/apachectl -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 218.93.250.18. Set the'ServerName' directive globally to suppress this message
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 mpm_event_module (static)
 authn_file_module (shared)
 authn_core_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_user_module (shared)
 authz_core_module (shared)
 access_compat_module (shared)
 auth_basic_module (shared)
 reqtimeout_module (shared)
 filter_module (shared)
 mime_module (shared)
 log_config_module (shared)
 env_module (shared)
 headers_module (shared)
 setenvif_module (shared)
 version_module (shared)
 unixd_module (shared)
 status_module (shared)
 autoindex_module (shared)
 dir_module (shared)
 alias_module (shared)
 php5_module (shared)
 php7_module (shared)
[root@linuxidc php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf

Linux 安装 PHP5 与 PHP7 共存

10. 把 php7 的参考配置文件复制到 php7 的配置文件目录下:

[root@linuxidc php-7.1.6]# cp php.ini-production  /usr/local/php7/etc/php.ini

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150007.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7441字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7994383
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...