CentOS 安装 PHP7.4.X

博客作者:联系请点击,搬运不易,希望请作者喝咖啡,可以点击联系博客作者

概述

昨天一个朋友问到我,我们有没有安装PHP环境,我说公司环境就是LAMP,开发都是PHP,看似简单的环境部署,让我一时口诉也无法理清,还是写一篇文档记录一下,方便日后发给有需要的人。

本篇文档中分别演示生产环境中源码编译PHP环境和YUM源安装PHP环境,并优化php-fpm配置文件。

编译前准备

更新系统软件包,安装编译相关依赖

yum --exclude=kernel* update -y
yum groupinstall -y 'Development Tools'
yum install -y epel-release
yum install -y wget openssl-devel bzip2-devel libffi-devel  sqlite-devel vim gpm-libs oniguruma oniguruma-devel libsodium libsodium-devel xz-devel libxml2-devel libcurl-devel
yum install -y bash-completion bash-completion-extras libicu-devel libjpeg libjpeg-devel  nss_ldap cmake  boost-devel libevent libevent-devel gd gd-devel openjpeg-devel 
yum install -y libgcrypt-devel libpng-devel libgpg-error-devel libxslt-devel cmake libmcrypt-devel libmcrypt  recode-devel recode  

安装高版本libzip

yum remove  -y libzip-devel
yum install -y http://rpms.remirepo.net/enterprise/7/remi/x86_64//libzip5-1.5.2-1.el7.remi.x86_64.rpm
yum install -y http://rpms.remirepo.net/enterprise/7/remi/x86_64//libzip5-devel-1.5.2-1.el7.remi.x86_64.rpm  

一、编译安装源码

访问PHP官网下载PHP源码

访问PHP官网下载最新稳定版源码安装包:

wget https://www.php.net/distributions/php-7.4.1.tar.gz
tar -zvxf php-7.4.1.tar.gz && cd php-7.4.1/
mkdir -p /usr/local/php-7.4.1 && useradd -s /sbin/nologin www

1、编译

在这里可以用各种各样的参数来自定义 PHP,例如启动哪些扩展功能包的支持等。用./configure --help命令可以列出当前可用的所有参数。

./configure \
--prefix=/usr/local/php-7.4.1 \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-config-file-path=/usr/local/php-7.4.1/etc \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir \
--enable-pdo \
--with-zlib \
--enable-xml \
--enable-session \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--enable-pcntl \
--enable-ftp \
--with-zip \
--with-ffi \
--with-zlib-dir \
--with-openssl \
--enable-gd \
--with-openssl \
--with-mhash \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--with-gettext \
--enable-fileinfo \
--enable-opcache \
--enable-maintainer-zts \
--with-xsl \
--with-sodium \
--enable-tokenizer

2、编译依赖及模块问题解决

PHP7.4版本,需要对扩展与依赖作出改变,如如常见的GD库扩展,--with-gd就要改成--enable-gd。这些都好说,不好说的是依赖的问题。

Linux安装软件,导致无法安装的原因绝大多数都是依赖包的问题,我安装的是PHP7.4.1,以下就是所遇到的问题及对应的解决方法:

问题一:error: Package requirements (sqlite3 > 3.7.4) were not met

解决方法:

yum install -y sqlite-devel

问题二:error: Package requirements (oniguruma) were not met

解决方法:

yum install -y oniguruma  oniguruma-devel
yum -y install epel-release

出现如下截图表示编译成功

3、安装

编译成功然后再安装

make && make install

二、配置PHP环境变量

vim /etc/profile             #打开profile文件增加如下,然后使文件生效
PATH=/usr/local/php-7.4.1/bin:/usr/local/php-7.4.1/sbin:$PATH

1、使环境变量生效

source /etc/profile

2、检查是否安装成功

输入php -v检查是否安装成功,环境变量并生效。

三、配置PHP-FPM

[root@php php-7.4.1]# pwd
/root/php-7.4.1

把所需的几个配置文件放到需要的位置

cp php.ini-production /usr/local/php-7.4.1/etc/php.ini
cp /usr/local/php-7.4.1/etc/php-fpm.conf.default /usr/local/php-7.4.1/etc/php-fpm.conf
cp /usr/local/php-7.4.1/etc/php-fpm.d/www.conf.default /usr/local/php-7.4.1/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

1、启动PHP-FPM

/etc/init.d/php-fpm start        #启动
/etc/init.d/php-fpm restart      #重新启动
/etc/init.d/php-fpm reload       #重新加载
/etc/init.d/php-fpm stop         #停止
/etc/init.d/php-fpm status       #查看状态

2、检测端口是否监听,PHP默认端口是9000

ss -ntulp | grep php-fpm

四、添加PHP官方YUM源

下面演示YUM安装PHP7版本

1、安装前准备

更新系统软件仓库不更新内核,安装开发工具包

yum --exclude=kernel* update -y
yum groupinstall -y 'Development Tools'

2、添加epel第三方依赖库,安装YUM源

yum -y install epel-release yum-utils
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

3、安装PHP相关依赖库和模块

yum install -y --enablerepo=remi --enablerepo=remi-php74 mod_php php-gd* php php-opcache php-mbstring  php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-fpm
yum install -y --enablerepo=remi --enablerepo=remi-php74 php-cli php-redis php-pecl-mcrypt php-process  php-devel php-pear
 
yum install -y vim libevent-devel libmcrypt-devel libxml2 libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libxslt libxslt-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib  openssl openssl-devel pcre pcre-devel zlib zlib-devel wget net-tools
 

五、检查YUM安装是否成功

安装完,执行如下命令:

php --version                      #查看版本
php -m                             #查看安装模块,需要用到的模块,没有安装的需要YUM安装
systemctl enable --now php-fpm     #设置开机启动,并启动。
ss -ntulp | grep php-fpm

六、优化PHP

1、调整PHP-FPM文件

vim /etc/php-fpm.conf

log_level = error						# 指定要记录的php-fpm日志级别
rlimit_files = 32768        # 为主进程设置打开文件的限制,虚拟机无法设置。
events.mechanism = epoll    # 指定事件驱动模型

2、调整PHP.ini文件

vim /etc/php.ini
error_reporting = E_WARING & ERROR	  #设置php的错误报告级别,只需要报告警告和错误即可
error_log = /var/log/php_errors.log	  #指定php错误日志存放位置
log_errors_max_len = 2048 	          #指定php错误日志的最大长度
expose_php = off		                  #隐藏php的详细版本号
session.name = JSESSIONID	            #表示jsp程序,php的则是PHPSESSID

修改完配置文件需要重新启动才可以生效

systemctl restart php-fpm

七、其他

其他低版本相对优化及安装访问如下文章:

最后更新于

这有帮助吗?