在服务器运维的领域中,搭建稳定高效的Web环境是基础技能,LNMP架构,即Linux、Nginx、MySQL和PHP的组合,因其高性能和低资源消耗而广受欢迎,本文将详细阐述如何在CentOS 6.4系统上,利用yum包管理器来部署一套完整的LNMP环境。

重要前提:关于CentOS 6.4的警告
在开始之前,必须强调一点:CentOS 6.4是一个非常古老的操作系统版本,其官方支持早已终止(End-of-Life, EOL),这意味着它不再接收任何安全更新和官方维护,使用它将面临严重的安全风险,本文档仅出于技术学习和特定环境维护的目的提供操作指南,对于任何新的生产项目,强烈建议使用现代的、受长期支持的Linux发行版,如CentOS Stream、AlmaLinux或Rocky Linux。
由于官方源已不可用,我们的第一步是将其替换为CentOS的归档源。
准备工作:配置Yum源
CentOS 6的官方yum仓库已经迁移至vault.centos.org,我们需要修改/etc/yum.repos.d/CentOS-Base.repo文件,将其指向归档地址。
打开终端,执行以下命令备份原文件并替换内容:
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup sed -i "s/mirrorlist/#mirrorlist/g" /etc/yum.repos.d/CentOS-Base.repo sed -i "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-Base.repo
修改完成后,清理yum缓存并重建:
yum clean all yum makecache
yum应该可以正常工作了。
安装Nginx
CentOS 6的官方源中不包含Nginx,我们需要借助EPEL(Extra Packages for Enterprise Linux)仓库。
安装EPEL源:
yum install epel-release -y
安装Nginx:
yum install nginx -y
启动与配置:
启动Nginx服务并设置其开机自启:
service nginx start chkconfig nginx on
配置防火墙:
CentOS 6默认使用iptables,需要开放80(HTTP)和443(HTTPS)端口:iptables -I INPUT -p tcp --dport 80 -j ACCEPT iptables -I INPUT -p tcp --dport 443 -j ACCEPT service iptables save service iptables restart
在浏览器中访问服务器的IP地址,应该能看到Nginx的默认欢迎页面。
安装MySQL
在CentOS 6中,我们通常安装的是MySQL 5.1版本,尽管版本较旧,但对于基础学习环境已足够。
安装MySQL服务端与客户端:
yum install mysql mysql-server -y
启动与配置:
启动MySQL服务并设置开机自启:service mysqld start chkconfig mysqld on
安全初始化:
运行MySQL自带的安全脚本,设置root密码、移除匿名用户等:/usr/bin/mysql_secure_installation
按照提示操作即可,建议全部选择“Y”(是)。
安装PHP及组件
CentOS 6官方源提供的PHP版本是5.3,为了获得稍新一些的PHP版本(如5.6),我们可以使用Remi仓库,这里以安装PHP 5.6为例。
安装Remi源:
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
启用Remi的PHP 5.6仓库:
编辑/etc/yum.repos.d/remi.repo文件,将[remi]和[remi-php56]节点下的enabled=0改为enabled=1。安装PHP-FPM及常用扩展:

yum install php php-fpm php-mysql php-gd php-xml php-mbstring -y
配置PHP-FPM:
编辑PHP-FPM的配置文件/etc/php-fpm.d/www.conf,将其运行用户和组由apache改为nginx,以便与Nginx协同工作。;user = apache user = nginx ;group = apache group = nginx启动与配置:
启动PHP-FPM服务并设置开机自启:service php-fpm start chkconfig php-fpm on
整合Nginx与PHP
最后一步是配置Nginx,使其能够将.php文件的请求转发给PHP-FPM处理。
编辑Nginx的默认配置文件/etc/nginx/conf.d/default.conf,找到location ~ .php$部分,并修改为如下内容:
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} 修改完成后,重启Nginx以使配置生效:
service nginx restart
测试LNMP环境
在Nginx的网站根目录(/usr/share/nginx/html)下创建一个index.php文件:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php
再次在浏览器中访问服务器IP,如果看到PHP的详细信息页面,那么恭喜你,CentOS 6.4上的LNMP环境已经成功搭建。
为了方便查阅,以下是核心服务的配置文件和命令摘要:
| 服务 | 配置文件路径 | 启动命令 | 开机自启命令 |
|---|---|---|---|
| Nginx | /etc/nginx/nginx.conf | service nginx start | chkconfig nginx on |
| MySQL | /etc/my.cnf | service mysqld start | chkconfig mysqld on |
| PHP-FPM | /etc/php-fpm.d/www.conf | service php-fpm start | chkconfig php-fpm on |
相关问答FAQs
解答: 这个错误出现的原因是CentOS 6的官方生命周期已经结束,其原有的软件源镜像地址已经失效,yum无法从这些失效的地址下载软件包信息,解决方法就是本文第一部分提到的,必须手动修改/etc/yum.repos.d/CentOS-Base.repo文件,将其中的mirrorlist注释掉,并启用指向CentOS归档服务器的baseurl,完成修改后,执行yum clean all和yum makecache重建缓存,即可解决此问题。
问题2:配置完成后,访问PHP页面出现 “502 Bad Gateway” 错误,该如何排查?
解答: “502 Bad Gateway”错误通常意味着Nginx作为网关,无法从后端服务(这里是PHP-FPM)获得有效的响应,排查步骤如下:
- 检查PHP-FPM是否运行: 执行
service php-fpm status或ps aux | grep php-fpm,确认PHP-FPM进程正在运行,如果没有,请使用service php-fpm start启动它。 - 检查Nginx配置: 确认
/etc/nginx/conf.d/default.conf中fastcgi_pass指令的地址和端口(如0.0.1:9000)与PHP-FPM监听的地址和端口一致,可以查看PHP-FPM的配置文件www.conf中的listen参数。 - 检查防火墙和SELinux: 确保本地防火墙没有阻止Nginx(通常是80端口)和PHP-FPM(通常是9000端口)之间的通信,在CentOS 6上,SELinux有时也会导致权限问题,可以临时尝试
setenforce 0来排查是否为SELinux所致(但这仅为临时排查手段,生产环境需正确配置SELinux策略)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复