在CentOS上安装PHP、MySQL和Nginx环境是一个常见且重要的任务,特别是在构建Web服务器时,本文将详细介绍如何在CentOS 7上安装和配置这些组件,包括必要的依赖项和步骤。
一、安装PHP
1. 安装EPEL源

需要安装EPEL(Extra Packages for Enterprise Linux)源,以便能够安装更高版本的PHP,执行以下命令:
- yum install y epelrelease
2. 安装REMI源
安装REMI源,这是一个提供最新PHP版本的仓库:
- yum install y http://rpms.remirepo.net/enterprise/remirelease7.rpm
3. 安装Yum源管理工具
为了方便切换PHP版本,需要安装yumutils:
- yum y install yumutils
4. 安装PHP 7.3

使用REMI源来安装PHP 7.3及其常用扩展:
- yum install y php73 php73phpfpm php73phpcli php73phpbcmath php73phpgd php73phpjson php73phpmbstring php73phpmcrypt php73phpmysqlnd php73phpopcache php73phppdo php73phppeclcrypto php73phppeclmcrypt php73phppeclgeoip php73phprecode php73phpsnmp php73phpsoap php73phpxmlll
5. 启动并设置开机自启动
启动PHPFPM服务,并设置为开机自启动:
- systemctl start php73phpfpm
- systemctl enable php73phpfpm
6. 验证安装
创建一个info.php
文件来验证PHP是否安装成功:
- echo "<?php phpinfo(); ?>" > /var/www/html/info.php
然后在浏览器中访问http://<your_server_ip>/info.php
,如果看到PHP信息页面,则表示安装成功。

二、安装Nginx
1. 配置Nginx源
添加Nginx官方仓库,以便获取最新的Nginx版本:
- rpm ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginxreleasecentos70.el7.ngx.noarch.rpm
2. 安装Nginx
执行以下命令来安装Nginx:
- yum install y nginx
3. 启动并设置开机自启动
启动Nginx服务,并设置为开机自启动:
- systemctl start nginx
- systemctl enable nginx
4. 配置防火墙
确保防火墙允许HTTP和HTTPS流量:
- firewallcmd permanent addservice=http
- firewallcmd permanent addservice=https
- firewallcmd reload
5. 验证安装
在浏览器中访问http://<your_server_ip>/
,如果看到Nginx的欢迎页面,则表示安装成功。
三、安装MySQL 8.0
1. 下载MySQL RPM包
从MySQL官网下载适用于CentOS 7的RPM包:
- wget https://dev.mysql.com/get/mysql80communityreleaseel73.noarch.rpm
2. 安装MySQL RPM包
执行以下命令来安装MySQL RPM包:
- rpm ivh mysql80communityreleaseel73.noarch.rpm
3. 安装MySQL服务器
使用以下命令来安装MySQL服务器:
- yum install y mysqlcommunityserver
4. 初始化数据库
运行以下命令来初始化MySQL数据库:
- mysqld initialize user=mysql
注意:如果提示缺少libaio库,请先安装它:
- yum install y libaio
然后再次运行初始化命令。
5. 启动并设置开机自启动
启动MySQL服务,并设置为开机自启动:
- systemctl start mysqld
- systemctl enable mysqld
6. 查看临时密码
查看MySQL的临时密码,通常可以在日志文件中找到:
- grep 'temporary password' /var/log/mysqld.log
7. 登录MySQL并修改密码
使用临时密码登录MySQL,并修改root用户的密码:
- mysql u root p
- ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!';
- FLUSH PRIVILEGES;
- EXIT;
8. 开放防火墙端口
确保防火墙允许MySQL流量:
- firewallcmd permanent addport=3306/tcp
- firewallcmd reload
问题1:如何更改PHP版本?
答:可以通过REMI源轻松切换PHP版本,要切换到PHP 7.4,执行以下命令:
- yumconfigmanager setenabled remiphp74
- yum update
然后重启PHPFPM服务:
- systemctl restart php74phpfpm
问题2:如何配置Nginx代理到PHPFPM?
答:编辑NGINX配置文件(例如/etc/nginx/nginx.conf
),添加以下内容:
- server {
- listen 80;
- server_name your_domain_or_ip;
-
- location / {
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
-
- location ~ \.php$ {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fastcgi_params;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_param PATH_INFO $fastcgi_script_name;
- }
- }
然后重启Nginx服务:
- systemctl restart nginx