热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux服务器安装php7_Linux安装PHP5与PHP7共存

在Linux下安装PHP5与PHP7共存。PHP5安装PHP官网www.php.net当前主流版本为5.67.1进入存储源码包的目录:[rootlinuxidc~]#

在Linux下安装PHP5与PHP7共存。

PHP5安装

PHP官网www.php.net

当前主流版本为5.6/7.1

进入存储源码包的目录:

[root@linuxidc ~]# cd /usr/local/src

下载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

cbca1b4f44359ac01419c7e54cc47bb4.png

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

6573384794edce9eeceec71a7eb89ba7.png

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

ca0470a7c0f329c1d3f24ef684888160.png

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

e1ef8b79eae469c087254486440bfe71.png

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

352ffb45e87aca880436223d05557fcd.png

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

c07ddbaed1dd4ed71c22d16146b3dee1.png

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

281bfc93a42fc04b43fcba5d07910fa5.png

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模块

9dd92bc8340d301514f37d58e4773ebf.png

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的配置文件

15aa3f30da933bbfb529589aca0e8916.png

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文件模块,如下图

1e35f55950d70fa92460259b22cb6d0f.png

PHP7安装

进入源码包的目录:

[root@linuxidc ~]# cd /usr/local/src/

2.下载源码包:

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

5f9420e0cf2837c38e9ccf5e21ede196.png

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

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

0b1331709591d260c1c78e86d0c51c18.png



推荐阅读
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在使用 PHP 通过 SSL 安全连接到 MySQLi 数据库服务器时,遇到了一些技术难题。我的环境包括一个 Web 服务器和一个数据库服务器,两者均使用 OpenSSL 生成了证书。尽管证书内容一致,但在尝试从 Web 服务器使用 `mysql` 命令进行连接时,仍然遇到了问题。为了确保连接的安全性和稳定性,需要进一步检查证书配置和 PHP 的 SSL 设置,以排除潜在的配置错误或兼容性问题。 ... [详细]
  • 在无网络环境下于CentOS 7系统中离线部署Nginx服务器
    nginx背景俄罗斯程序员IgorSysoev创建,于2004年NGINX首次发布,来解决C10K问题(10000并发客户端连接到单个服务器,导致服务器连接数过多崩溃的问题),是一 ... [详细]
  • openssh其他版本有漏洞,需要升级,本文以我升级的机器centos6为例一、准备工作1.1检查openssh版本查看系统版本catetcre ... [详细]
  • ICE(InternetCommunicationsEngine)是一个为现实中程序员而写的中间件平台。作为一个高性能的互联网通信平台,ICE包含了很多分层的服务和插 ... [详细]
  • CentOS7 安装RabbitMQ
    1安装编译工具yuminstall-ymakegccgcc-c++m4opensslopenssl-develncurses-develunixODBCunixODBC-devel ... [详细]
  • CentOS8.4 安装PHP7.4.25
    1、下载官网:https:www.php.netdownloads#cdmydata#wgethttps:www.php.netdistributionsphp ... [详细]
author-avatar
phpxiaohui
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有