在 CentOS 上配置 PHP 环境,通常分为 安装 PHP + Web 服务器(Apache/Nginx)+ 数据库(可选)。下面我按常见场景一步步说明(以 CentOS 7 / 8 为主,CentOS 6 已停止维护,不建议使用)。
sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y yum-utils
sudo dnf install -y http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf install -y dnf-utils
# CentOS 7
sudo yum-config-manager --enable remi-php81
# CentOS 8
sudo dnf module reset php
sudo dnf module enable php:remi-8.1
sudo yum install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-opcache
查看版本:
php -v
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
编辑:
sudo vi /etc/nginx/conf.d/default.conf
示例配置:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location / {
index index.php index.html;
}
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;
}
}
重启 Nginx:
sudo systemctl restart nginx
测试:
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo yum install -y mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
初始化:
sudo mysql_secure_installation
php 模块已安装php-fpm 正在运行sudo chown -R nginx:nginx /usr/share/nginx/html
如果你告诉我:
我可以直接给你量身定制的配置方案。