在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