在CentOS下配置PHP涉及多个要点,以下是一些关键步骤和配置项:
首先,需要安装PHP及其常用的扩展包。可以使用yum来安装:
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
编辑PHP的配置文件php.ini
,通常位于/etc/php.ini
或/etc/php.d/
目录下。以下是一些常见的配置项:
error_reporting
: 设置错误报告级别,例如error_reporting = E_ALL
。display_errors
: 设置是否显示错误信息,例如display_errors = On
。log_errors
: 设置是否将错误记录到日志文件,例如log_errors = On
。memory_limit
: 设置PHP脚本可以使用的最大内存,例如memory_limit = 256M
。upload_max_filesize
: 设置允许上传的最大文件大小,例如upload_max_filesize = 10M
。post_max_size
: 设置POST请求允许的最大数据量,例如post_max_size = 12M
。date.timezone
: 设置时区,例如date.timezone = "Asia/Shanghai"
。PHP-FPM(FastCGI Process Manager)是PHP FastCGI的进程管理工具,用于提高PHP的性能和稳定性。
sudo yum install php-fpm
编辑/etc/php-fpm.d/www.conf
文件,设置监听端口或套接字:
listen = 127.0.0.1:9000
或
listen = /run/php-fpm/php-fpm.sock
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Nginx和Apache都可以与PHP-FPM配合使用,处理PHP请求。
sudo yum install nginx
在/etc/nginx/conf.d/default.conf
或/etc/nginx/conf.d/php-fpm.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 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
sudo systemctl start nginx
sudo systemctl enable nginx
sudo yum install httpd httpd-devel
在/etc/httpd/conf/httpd.conf
中添加以下内容:
LoadModule php7_module modules/libphp7.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
sudo systemctl start httpd
sudo systemctl enable httpd
根据应用需求,安装并配置PHP扩展。例如,安装和配置Opcache扩展:
sudo yum install php-opcache
编辑php.ini
文件,启用并配置Opcache:
zend_extension = opcache.so
opcache.enable = 1
opcache.memory_consumption = 64
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 2
sudo systemctl restart php-fpm
确保防火墙和SELinux配置正确,以允许HTTP和HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
sudo setenforce 0
或
sudo semanage port -a -t http_port_t -p tcp 80
sudo semanage port -a -t http_port_t -p tcp 443
memory_limit
。upload_max_filesize
和post_max_size
。top
, htop
监控系统资源使用情况。通过以上步骤,可以在CentOS下配置一个高效且稳定的PHP环境。根据具体需求,可能还需要进行更多的优化和配置。