centos lnmp服务器配置指南
导读:CentOS LNMP 服务器配置指南 一 环境准备与版本建议 操作系统建议选择 CentOS 7/8(或兼容的 RHEL 7/8),自带 firewalld 作为防火墙;如使用 CentOS 6,其 EOL 已于 2020-11-30...
CentOS LNMP 服务器配置指南
一 环境准备与版本建议
- 操作系统建议选择 CentOS 7/8(或兼容的 RHEL 7/8),自带 firewalld 作为防火墙;如使用 CentOS 6,其 EOL 已于 2020-11-30 结束,官方源已下线,需额外处理源或优先升级系统。生产环境建议选择 Nginx + MySQL/MariaDB + PHP 7.4/8.x 的组合,以获得更好的性能与安全支持。
二 安装与配置步骤
- 更新系统与仓库
- 执行:
sudo yum update -y & & sudo yum install -y epel-release
- 执行:
- 安装与启动 Nginx
- 执行:
sudo yum install -y nginx & & sudo systemctl start nginx & & sudo systemctl enable nginx - 防火墙放行:
sudo firewall-cmd --permanent --zone=public --add-service=http & & sudo firewall-cmd --reload
- 执行:
- 安装与启动数据库(二选一)
- MariaDB(CentOS 7 默认):
sudo yum install -y mariadb-server mariadb & & sudo systemctl start mariadb & & sudo systemctl enable mariadb & & sudo mysql_secure_installation - MySQL(官方 YUM 仓库):
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm & & sudo yum install -y mysql-community-server & & sudo systemctl start mysqld & & sudo systemctl enable mysqld- 获取临时密码:
sudo grep 'temporary password' /var/log/mysqld.log - 运行安全脚本:
sudo mysql_secure_installation
- 获取临时密码:
- MariaDB(CentOS 7 默认):
- 安装与启动 PHP 与 PHP-FPM
- 执行:
sudo yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-bcmath php-zip - 启动:
sudo systemctl start php-fpm & & sudo systemctl enable php-fpm
- 执行:
- 配置 Nginx 与 PHP-FPM 联动(两种方式)
- TCP 方式(监听 127.0.0.1:9000):在
/etc/nginx/conf.d/default.conf的server块中加入index index.php index.html index.htm; 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; } - Unix Socket 方式(推荐,性能更好):在
/etc/php-fpm.d/www.conf中确保
在 Nginx 中改为:listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; - 检查并重载:
sudo nginx -t & & sudo systemctl reload nginx & & sudo systemctl reload php-fpm
- TCP 方式(监听 127.0.0.1:9000):在
- 验证
- 创建探针:
echo "< ?php phpinfo(); ?> " | sudo tee /usr/share/nginx/html/info.php - 浏览器访问:
http://服务器IP/info.php,看到 PHP 信息页即成功。
- 创建探针:
三 目录与权限建议
- 网站根目录建议使用 /var/www/html(SELinux 下需匹配上下文)或 /usr/share/nginx/html;确保运行 Nginx/PHP-FPM 的用户(常见为 nginx)对目录具备读取权限。
- 若使用 Unix Socket,确保
/var/run/php-fpm/目录存在且 php-fpm.sock 的属主/属组与权限配置正确(见上节)。 - 生产环境避免使用过旧版本(如 PHP 5.x/MySQL 5.6),以减少安全风险与兼容性问题。
四 常见问题与排查
- 80 端口被占用
- 排查:
sudo ss -tulpen | grep ':80' - 处理:停止占用进程或调整 Nginx 监听端口后重载服务。
- 排查:
- Nginx 启动报错 “the ‘ssl’ parameter requires ngx_http_ssl_module”
- 原因:编译 Nginx 时未包含 –with-http_ssl_module。
- 处理:重新编译 Nginx 并带上该模块,或安装包含 SSL 模块的版本。
- 访问 info.php 出现空白或下载
- 检查 Nginx
location ~ \.php$配置是否正确、SCRIPT_FILENAME是否指向实际文件路径、php-fpm是否运行、以及 SELinux/防火墙 是否放行。
- 检查 Nginx
- 数据库连接失败
- 确认 MySQL/MariaDB 已启动、端口 3306 放行、应用使用的用户名/密码/主机正确,并考虑运行
mysql_secure_installation后的权限设置。
- 确认 MySQL/MariaDB 已启动、端口 3306 放行、应用使用的用户名/密码/主机正确,并考虑运行
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lnmp服务器配置指南
本文地址: https://pptw.com/jishu/786037.html
