在 CentOS 上通过 yum 搭建 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)环境是一种高效且便捷的方式,本文将详细介绍如何在 CentOS 7.x 系统上,通过 yum 包管理器来安装和配置 LNMP 环境,并包含一些常见问题的解答。
LNMP 环境搭建步骤
1. 安装 Nginx
确保你的系统已经安装了 EPEL Repo(Extra Packages for Enterprise Linux),这是 CentOS 官方的软件仓库,如果未安装,可以使用以下命令进行安装:
sudo yum install epelrelease y
安装 Nginx:
sudo yum install nginx y
启动 Nginx 并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
2. 安装 MySQL
为了安装 MySQL,你需要先添加 MariaDB 仓库(因为 CentOS 默认使用 MariaDB 作为 MySQL 的替代品):
sudo yum localinstall https://repo.mariadb.org/yum/centos/MariaDBfocalamd64mps.rpm
安装 MySQL 服务器:
sudo yum install mariadbserver y
启动 MariaDB 并设置开机自启:
sudo systemctl start mariadb sudo systemctl enable mariadb
运行安全脚本以设置 root 密码和其他安全选项:
sudo mysql_secure_installation
3. 安装 PHP
同样地,你可以通过 yum 来安装 PHP:
sudo yum install php y
为了支持 PHP 与 Nginx 的集成,还需要安装 PHPFPM:
sudo yum install phpfpm y
编辑 PHPFPM 配置文件/etc/phpfpm.d/www.conf
,将listen
指令的值改为/run/phpfpm/www.sock
,并保存退出。
4. 配置 Nginx 支持 PHP
编辑 Nginx 配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
),在 server 块中添加以下内容:
location ~ \.php$ { fastcgi_pass unix:/run/phpfpm/www.sock; fastcgi_index index.php; include fastcgi_params; }
保存并退出编辑器,重启 Nginx 和 PHPFPM 服务以使更改生效:
sudo systemctl restart nginx sudo systemctl restart phpfpm
至此,LNMP 环境已经成功搭建。
常见问题解答(FAQs)
问题 1:如何更改 PHP 版本?
答:要更改 PHP 版本,你可以使用 Remi's RPM Repository,它提供了多个 PHP 版本的软件包,添加 Remi 仓库:
sudo yum install http://rpms.remirepo.net/enterprise/remirelease7.rpm sudo yum install yumutils y
启用你想要的 PHP 版本(PHP 8.0):
sudo yumconfigmanager enable remiphp80
安装或升级到指定版本的 PHP:
sudo yum update php phpcommon phpfpm phpcli phpopcache y
问题 2:如何优化 Nginx 的性能?
答:优化 Nginx 性能的方法有很多,以下是一些常见的建议:
调整工作进程数:根据你的 CPU 核心数调整worker_processes
和worker_connections
的值。
开启缓存:配置静态文件缓存以减少服务器负载。
压缩传输:启用 gzip 压缩以减少传输的数据量。
调整超时时间:根据应用需求调整客户端和后端超时时间。
具体配置示例如下:
http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octetstream; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name your_domain; root /var/www/html; index index.php index.html index.htm; location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; log_not_found off; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/phpfpm/www.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } }
问题 3:如何备份和恢复 MySQL 数据库?
答:备份和恢复 MySQL 数据库是日常运维的重要任务之一,你可以使用mysqldump
工具来备份数据库,使用mysql
命令来恢复数据库。
备份数据库:
mysqldump u [username] p[password] [database_name] > [backup_file].sql
恢复数据库:
mysql u [username] p[password] [database_name] < [backup_file].sql
注意:在执行这些命令之前,请确保你已经有足够的权限来访问和操作相应的数据库,定期备份是非常重要的,以防数据丢失或损坏。
通过以上步骤和解答,你应该能够在 CentOS 上成功搭建 LNMP 环境,并解决一些常见的问题,如果你有任何疑问或需要进一步的帮助,请随时提问。