在CentOS中配置PHP环境是一个涉及多个步骤的过程,包括安装必要的软件包、配置PHP及其模块、设置Web服务器以及进行性能和安全优化。以下是一些最佳实践:
首先,确保你的CentOS系统是最新的,并安装EPEL仓库:
sudo yum update -y
sudo yum install epel-release -y
然后,使用yum安装PHP及其常用模块:
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-pear php-bcmath -y
编辑PHP的配置文件 /etc/php.ini
:
sudo vi /etc/php.ini
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M
date.timezone = Asia/Shanghai
编辑PHP-FPM的配置文件 /etc/php-fpm.d/www.conf
:
sudo vi /etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock
user = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
修改Nginx配置文件:
编辑 /etc/nginx/conf.d/default.conf
或创建新的配置文件:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重启Nginx服务:
sudo systemctl restart nginx
启用PHP模块:
sudo yum install php-mysqlnd -y
sudo systemctl restart httpd
配置Apache:
编辑 /etc/httpd/conf.d/php.conf
或创建新的配置文件:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
重启Apache服务:
sudo systemctl restart httpd
启用OPCache:安装并启用OPCache以缓存编译后的PHP字节码,提高执行速度。
sudo yum install php-opcache -y
echo "opcache.enable=1" | sudo tee /etc/php.d/opcache.ini
sudo systemctl restart php-fpm
优化数据库查询:确保数据库查询是高效的,使用索引和预编译查询等方法。
文件操作优化:减少文件I/O操作,使用文件缓存存储不经常变动的数据。
关闭不必要的端口:使用firewalld关闭不必要的端口。
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
更改SSH端口:将SSH端口改为10000以上。
禁用危险函数:在php.ini中禁用可能被恶意利用的函数,如system, exec, shell_exec等。
保护会话和限制文件访问:使用open_basedir限制PHP脚本可以访问的目录。
open_basedir = /var/www/html:/tmp
创建一个名为 info.php
的文件在你的Web服务器的根目录下,内容如下:
<?php
phpinfo();
?>
然后在浏览器中访问 http://your_server_ip/info.php
,如果看到PHP信息页面,说明你的PHP环境已经配置成功。
以上步骤涵盖了在CentOS上配置PHP环境的基本流程,包括安装、配置、性能优化以及安全配置。根据具体需求,可能还需要进行其他配置。