CentOS 安装 PHP7.4.X
概述
昨天一个朋友问到我,我们有没有安装PHP环境,我说公司环境就是LAMP,开发都是PHP,看似简单的环境部署,让我一时口诉也无法理清,还是写一篇文档记录一下,方便日后发给有需要的人。
本篇文档中分别演示生产环境中源码编译PHP环境和YUM源安装PHP环境,并优化php-fpm配置文件。
编译前准备
更新系统软件包,安装编译相关依赖
警告:下面这些依赖必须全部装上,不然编译会报错。
安装高版本libzip
一、编译安装源码
访问PHP官网下载PHP源码
访问PHP官网下载最新稳定版源码安装包:
在Linux下安装PHP,源代码方式安装,总需要配置很多参数。这里列出常用配置参数,并详细用中文解释说明了。
给大家一些参考:
--prefix=/usr/local/PHP #php 安装目录
--with-apxs2=/usr/local/apache/bin/apxs #表示使用apache2.0以上版本,apxs表示使用的apache1.0版本 --with-fpm-user=www #指定所属用户 --with-fpm-grop=www #指定所属组
--with-config-file-path=/usr/local/PHP/etc #指定php.ini位置
--with-MySQL=/usr/local/mysql #mysql安装目录,对mysql的支持
--with-MySQLi=/usr/local/mysql/bin/mysql_config #mysqli文件目录,优化支持
--enable-safe-mode #打开安全模式
--enable-ftp #打开ftp的支持
--enable-zip #打开对zip的支持
--with-bz2 #打开对bz2文件的支持
--with-jpeg-dir #打开对jpeg图片的支持
--with-png-dir #打开对png图片的支持
--with-freetype-dir #打开对freetype字体库的支持
--without-iconv #关闭iconv函数,种字符集间的转换
--with-libXML-dir #打开libxml2库的支持
--with-XMLrpc #打开xml-rpc的c语言
--with-zlib-dir #打开zlib库的支持
--with-gd #打开gd库的支持,7.4 后不再支持这种写法,所以需要改为 --enable-gd
--enable-gd-native-ttf #支持TrueType字符串函数库
--with-curl #打开curl浏览工具的支持
--with-curlwrappers #运用curl工具打开url流
--with-ttf #打开freetype1.*的支持,可以不加了
--with-xsl #打开XSLT 文件支持,扩展了libXML2库,需要libxslt软件
--with-gettext #打开gnu 的gettext 支持,编码库用到
--with-pear #打开pear命令的支持,PHP扩展用的
--enable-calendar #打开日历扩展功能
--enable-mbstring #多字节,字符串的支持
--enable-bcmath #打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets #打开 sockets 支持
--enable-exif #图片的元数据支持
--enable-magic-quotes #魔术引用的支持
--disable-rpath #关闭额外的运行库文件
--disable-debug #关闭调试模式
--with-mime-magic=/usr/share/file/magic.mime #魔术头文件位置
CGI方式安装才用的参数
--enable-fpm #打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
--enable-fastCGI #支持fastcgi方式启动PHP
--enable-force-CGI-redirect #同上 ,帮助里没有解释
--with-ncurses #支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库
--enable-pcntl #freeTDS需要用到的,可能是链接mssql 才用到
mhash和mcrypt算法的扩展
--with-mcrypt #算法
--with-mhash #算法
--with-gmp
--enable-inline-optimization
--with-openssl #openssl的支持,加密传输时用到的
--enable-dbase
--with-pcre-dir=/usr/local/bin/pcre-config #perl的正则库案安装位置
--disable-dmalloc
--with-gdbm #dba的gdbm支持
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte #支持zend的多字节
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap
编译PHP的时候慎用 –with-curlwrappers参数
1、编译
在这里可以用各种各样的参数来自定义 PHP,例如启动哪些扩展功能包的支持等。用./configure --help
命令可以列出当前可用的所有参数。
2、编译依赖及模块问题解决
PHP7.4版本,需要对扩展与依赖作出改变,如如常见的GD库扩展,--with-gd就要改成--enable-gd。这些都好说,不好说的是依赖的问题。
Linux安装软件,导致无法安装的原因绝大多数都是依赖包的问题,我安装的是PHP7.4.1,以下就是所遇到的问题及对应的解决方法:
问题一:error: Package requirements (sqlite3 > 3.7.4) were not met
解决方法:
问题二:error: Package requirements (oniguruma) were not met
解决方法:
如果这两个包安装不了,安装如下依赖库
注意:
编译安装(或升级PHP7.4)所遇到的主要就是这两个问题,对于其他的报错,都是依赖的问题,根据对应的提示安装相应的依赖就行了。
以下是预编译完成后PHP所无法识别的扩展,也就是,这些扩展在预编译的时候就不要选上了:
【警示】以下是不可用选项
出现如下截图表示编译成功
3、安装
编译成功然后再安装
二、配置PHP环境变量
1、使环境变量生效
2、检查是否安装成功
输入php -v
检查是否安装成功,环境变量并生效。
三、配置PHP-FPM
把所需的几个配置文件放到需要的位置
1、启动PHP-FPM
2、检测端口是否监听,PHP默认端口是9000
四、添加PHP官方YUM源
下面演示YUM安装PHP7版本
1、安装前准备
更新系统软件仓库不更新内核,安装开发工具包
2、添加epel第三方依赖库,安装YUM源
3、安装PHP相关依赖库和模块
五、检查YUM安装是否成功
安装完,执行如下命令:
六、优化PHP
1、调整PHP-FPM文件
2、调整PHP.ini文件
隐藏后端使用的真正脚本类型,扰乱入侵者的渗透思路,另外,切记不要把敏感数据直接明文存在session中,有泄露风险。
修改完配置文件需要重新启动才可以生效
七、其他
其他低版本相对优化及安装访问如下文章:
最后更新于