CentOS环境下PHP编译安装与优化配置详解
CentOS作为一款稳定可靠的Linux发行版,广泛应用于服务器领域。PHP作为Web开发的核心语言之一,其性能和配置对Web应用的稳定性和效率至关重要。本文将详细介绍在CentOS环境下如何编译安装PHP,并进行优化配置,以确保PHP环境的高效运行。
一、准备工作
在开始编译安装PHP之前,我们需要做好以下准备工作:
更新系统软件包:
sudo dnf update -y
安装依赖包: 安装编译PHP所需的开发工具和库:
sudo dnf install epel-release -y
sudo dnf groupinstall "Development Tools" -y
sudo dnf install openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel libzip-devel -y
关闭SELinux: 为了避免SELinux带来的权限问题,建议暂时关闭SELinux:
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
关闭防火墙: 关闭firewalld防火墙,避免网络访问问题:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
二、下载PHP源码
前往PHP官方下载页面(php.net),选择适合的PHP版本下载。例如,下载PHP 7.4.33:
cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -zxvf php-7.4.33.tar.gz
cd php-7.4.33
三、编译安装PHP
配置编译选项:
运行./configure
脚本,指定安装路径和需要的功能模块。以下是一个常见的配置示例:
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-bz2 \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-zip \
--with-libxml-dir \
--with-mhash
编译和安装:
make && sudo make install
四、配置PHP
复制配置文件:
将源码中的php.ini
文件复制到安装目录:
sudo cp php.ini-production /usr/local/php/etc/php.ini
配置PHP-FPM: 编辑PHP-FPM配置文件:
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo vi /usr/local/php/etc/php-fpm.conf
修改以下配置:
user = www
group = www
listen = /tmp/php-cgi.sock
启动PHP-FPM:
sudo /usr/local/php/sbin/php-fpm
五、配置Web服务器
以Nginx为例,配置Nginx支持PHP:
安装Nginx:
sudo dnf install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx: 编辑Nginx配置文件,添加对PHP的支持:
sudo vi /etc/nginx/nginx.conf
在server
块中添加以下配置:
location ~ \.php$ {
root html;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
六、测试PHP
创建一个测试PHP文件:
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
七、优化配置
优化php.ini:
根据实际需求调整php.ini
中的配置,例如:
max_execution_time = 300
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
优化PHP-FPM: 调整PHP-FPM的进程管理方式和工作进程数:
sudo vi /usr/local/php/etc/php-fpm.conf
修改以下配置:
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
启用OPCache:
编辑php.ini
,启用并配置OPCache:
zend_extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
八、重启服务
重启PHP-FPM和Nginx服务,使配置生效:
sudo systemctl restart php-fpm
sudo systemctl restart nginx
总结
通过以上步骤,我们成功在CentOS环境下编译安装了PHP,并进行了优化配置。编译安装虽然过程较为复杂,但能够根据实际需求定制PHP的功能和性能,非常适合对性能要求较高的生产环境。希望本文能帮助你在CentOS上搭建一个高效稳定的PHP环境。