设为首页 收藏本站
查看: 907|回复: 0

[经验分享] linux的PHP5和PHP7安装

[复制链接]

尚未签到

发表于 2018-12-12 14:01:40 | 显示全部楼层 |阅读模式
PHP5安装


  • PHP官网www.php.net
  • 当前主流版本为5.6/7.1
  • 进入存储源码包的目录:
    [root@gary-tao ~]# cd /usr/local/src
  • 下载php的源码包:
  地址:wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
  5.解压压缩包:

[root@gary-tao src]# tar -zxvf php-5.6.30.tar.gz
  6.进入安装目录:

[root@gary-tao src]# cd php-5.6.30
[root@gary-tao php-5.6.30]#
  7.安装php:

[root@gary-tao 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@gary-tao php-5.6.30]# echo $?  //安装完成没有错误用这个检查
0

  解释说明个别参数:

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


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



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



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



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



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



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



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

  8.编译安装

[root@gary-tao php-5.6.30]# make
[root@gary-tao php-5.6.30]# make install
[root@gary-tao php-5.6.30]# echo $?
0
  备注:Apache和php结合的通过图中的libphp5.so模块
DSC0007.png

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

[root@gary-tao 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@gary-tao 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@gary-tao 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@gary-tao php-5.6.30]# vim /usr/local/apache2.4/conf/httpd.conf  //这是apache的配置文件
DSC0008.png

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

[root@gary-tao php-5.6.30]# /usr/local/php/bin/php -i |less  //查看php的一些配置信息,包括编译参数。
phpinfo()
PHP Version => 5.6.30
System => Linux gary-tao 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@gary-tao php-5.6.30]# ls /usr/local/php/etc //查看模块下有没php.ini文件
pear.conf
[root@gary-tao php-5.6.30]# cp php.ini-production  /usr/local/php/etc/php.ini  //需要到源码包的参考文件复制到php的配置文件目录下
[root@gary-tao php-5.6.30]# /usr/local/php/bin/php -i |less  //查看php.ini是否有加载php.ini文件模块,如下图

DSC0009.png


PHP7安装


  • 进入源码包的目录:
    [root@gary-tao ~]# cd /usr/local/src/
      2.下载源码包:

  地址:wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
  3.解压压缩包:

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

  备注:如果没有安装bzip2压缩工具,请安装:yum install -y bzip2
  4.进入目录:

[root@gary-tao src]# cd php-7.1.6
[root@gary-tao php-7.1.6]#
  5.安装php7:

[root@gary-tao 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@gary-tao php-7.1.6]# make
[root@gary-tao php-7.1.6]# make install
  7.php7模块路径:

[root@gary-tao php-7.1.6]# ls /usr/local/apache2.4/modules/libphp7.so
/usr/local/apache2.4/modules/libphp7.so
  8.查看php7加载的模块(静态):

[root@gary-tao 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@gary-tao 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@gary-tao php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf
DSC00010.png

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

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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650620-1-1.html 上篇帖子: PHP对象的比较 下篇帖子: LAMP架构(PHP的安装解析)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表