CentOS 6.5 Web服务器搭建全攻略:从零开始到LNMP环境部署(附详细命令与排错指南)
** 本文是一份专为CentOS 6.5操作系统量身打造的Web服务器搭建终极指南,无论你是运维新手还是需要回顾经典环境的开发者,本文都将带你一步步完成从系统初始化到LNMP(Linux + Nginx + MySQL + PHP)生产环境部署的全过程,文中包含所有核心命令、配置文件详解和常见问题解决方案,助你快速搭建一个稳定、高效的Web服务器。

引言:为何选择 CentOS 6.5?
尽管CentOS 7/8已成为主流,但仍有大量企业级项目、老旧系统或特定软件依赖运行在CentOS 6.5这一经典版本之上,它以其极高的稳定性和对RHEL 6的完美兼容性,在特定领域占据着不可替代的地位,搭建一个基于CentOS 6.5的Web服务器,是许多运维工程师和开发者的必备技能。
本教程将采用当前业界非常流行的 LNMP 架构,因为它比传统的LAMP在高并发、静态资源处理方面更具优势,配置也更灵活。
第一部分:准备工作与系统初始化
在开始之前,请确保你有一台纯净安装的CentOS 6.5服务器,并且能够通过SSH(如PuTTY、Xshell)登录到系统,我们建议使用 root 用户进行操作,或在 sudo 环境下执行。
更新系统软件包

这是任何服务器部署的第一步,确保所有组件都是最新的,并修复潜在的安全漏洞。
# 检查网络连通性 ping -c 4 www.baidu.com # 更新所有已安装的软件包 yum update -y # 清理缓存 yum clean all
配置静态IP地址(推荐)
对于服务器来说,使用静态IP至关重要,编辑网络配置文件:
# 使用vi编辑器 vi /etc/sysconfig/network-scripts/ifcfg-eth0
根据你的网络环境,修改或添加以下内容:

DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.100 # 你的静态IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # DNS服务器 DNS2=114.114.114.114
保存文件后,重启网络服务使配置生效:
service network restart
配置防火墙与SELinux
CentOS 6.5默认启用防火墙和SELinux,这会影响Web服务的访问。
- 临时关闭(用于测试,不推荐生产环境)
# 关闭防火墙 service iptables stop # 关闭SELinux setenforce 0
- 永久配置(推荐生产环境)
为了安全,我们应该开放必要的端口(如80, 443)而不是直接关闭防火墙。
# 编辑防火墙规则 vi /etc/sysconfig/iptables
添加以下规则(允许HTTP和HTTPS流量):
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
保存文件后,重启防火墙:
service iptables restart
对于SELinux,我们可以在后续安装完Web服务后,使用 setsebool 命令来调整其策略,而不是直接关闭。
第二部分:LNMP环境核心组件安装
LNMP分别代表Linux(我们已准备好)、Nginx、MySQL和PHP,我们将按顺序逐一安装。
安装 Nginx
Nginx是一个高性能的HTTP和反向代理服务器。
添加EPEL仓库
EPEL (Extra Packages for Enterprise Linux) 提供了大量CentOS官方源中没有的软件包。
# 安装EPEL源 rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # 验证仓库是否添加成功 yum repolist
安装Nginx
yum install nginx -y
启动并设置开机自启
# 启动Nginx service nginx start # 设置开机自启 chkconfig nginx on
在浏览器中访问你的服务器IP地址 http://你的服务器IP,如果看到Nginx的欢迎页面,说明安装成功!
安装 MySQL (MariaDB)
CentOS 6.5的官方源中MySQL已被MariaDB取代,它是MySQL的一个完全兼容的分支,性能更优。
安装MariaDB服务器和客户端
yum install mariadb-server mariadb -y
启动并设置开机自启
# 启动MariaDB service mysqld start # 设置开机自启 chkconfig mysqld on
安全初始化设置
运行 mysql_secure_installation 脚本,它会引导你设置root密码、移除匿名用户、禁止root远程登录等,这些都是生产环境的安全最佳实践。
mysql_secure_installation
根据提示操作,建议为root设置一个强密码,并对所有选项都回答 Y (是)。
安装 PHP (PHP-FPM)
PHP-FPM (FastCGI Process Manager) 是一个PHP的FastCGI实现,被Nginx广泛用于处理动态内容。
安装PHP-FPM及相关扩展
我们需要安装PHP-FPM以及一些常用的PHP扩展,如 php-mysql, php-gd, php-mbstring 等。
yum install php-fpm php-mysql php-gd php-mbstring php-mcrypt php-xml -y
注意:php-mcrypt 在EPEL源中找不到,可能需要手动编译安装,但大多数情况下,上面的命令已足够。
启动并设置开机自启
# 启动PHP-FPM service php-fpm start # 设置开机自启 chkconfig php-fpm on
第三部分:配置Nginx支持PHP
所有组件都已安装,但Nginx还不知道如何将PHP请求交给PHP-FPM处理,我们需要修改Nginx的配置文件。
备份默认配置
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
编辑主配置文件
vi /etc/nginx/nginx.conf
在 http 块中,确保包含了 conf.d 目录下的所有配置文件:
http {
# ... 其他配置 ...
include /etc/nginx/conf.d/*.conf;
}
创建网站配置文件
在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,mywebsite.conf:
vi /etc/nginx/conf.d/mywebsite.conf
这是一个典型的LNMP配置:
server {
listen 80;
server_name localhost; # 修改为你的域名或IP
root /usr/share/nginx/html; # 网站根目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
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;
}
# deny access to .htaccess files
location ~ /\.ht {
deny all;
}
}
配置解析:
server_name: 你的域名或服务器IP。root: 网站文件存放的目录。location ~ \.php$: 这是一个正则表达式,用于匹配所有以.php结尾的URL。fastcgi_pass: 指向PHP-FPM监听的地址和端口(默认为127.0.0.1:9000)。fastcgi_param SCRIPT_FILENAME: 这是最关键的一行,它告诉PHP-FPM要执行的PHP脚本的完整路径。$document_root变量对应我们上面设置的root目录。
检查配置并重启Nginx
# 检查Nginx配置语法是否正确 nginx -t # 如果显示 syntax is ok 和 test is successful,则重启Nginx service nginx restart
第四部分:测试LNMP环境
为了验证Nginx、MySQL和PHP是否协同工作,我们需要创建一个测试文件。
创建PHP测试文件
在网站根目录 /usr/share/nginx/html/ 下创建一个名为 info.php 的文件:
vi /usr/share/nginx/html/info.php
<?php phpinfo(); ?>
保存文件。
在浏览器中访问
在浏览器中访问 http://你的服务器IP/info.php。
如果看到一个包含详细PHP配置信息的页面,说明LNMP环境搭建成功!页面中还应能看到 mysql 和 mysqli 等模块,证明PHP已成功连接到MySQL。
安全提示
测试完成后,为了安全,请立即删除 info.php 文件,因为它会暴露服务器大量敏感信息。
rm -f /usr/share/nginx/html/info.php
第五部分:常见问题与排错指南
Q1: 访问域名/IP显示403 Forbidden错误。
- 原因: 通常是文件或目录的权限问题。
- 解决: 确保网站根目录(如
/usr/share/nginx/html)和其内部文件的属主和属组是nginx用户。chown -R nginx:nginx /usr/share/nginx/html
Q2: 访问PHP文件时直接下载或显示源代码,而不是解析执行。
- 原因: Nginx没有将
.php文件正确地传递给PHP-FPM处理,通常是nginx.conf或网站配置文件中的location块配置错误。 - 解决: 仔细检查第三步中的Nginx配置,特别是
location ~ \.php$块和fastcgi_param SCRIPT_FILENAME指令是否正确无误。
Q3: PHP连接MySQL失败。
- 原因: PHP的MySQL模块未安装,或数据库用户名、密码、主机地址配置错误。
- 解决:
- 确认安装了
php-mysql包:yum list installed | grep php-mysql。 - 使用
mysql -u root -p命令登录数据库,检查用户权限和密码是否正确。
- 确认安装了
Q4: SELinux导致403错误。
- 原因: SELinux策略阻止了Nginx读写网站文件。
- 解决: 可以临时关闭SELinux
setenforce 0来验证,如果问题解决,则说明是SELinux策略问题,永久解决方案是使用setsebool命令调整布尔值,setsebool -P httpd_can_network_connect_db on setsebool -P httpd_execmem on
恭喜!你已经成功在CentOS 6.5系统上从零开始搭建了一个功能完备的LNMP Web服务器,本文涵盖了从系统初始化到环境部署,再到排错的全过程,为你打下了坚实的基础。
你可以将你的网站代码上传到 /usr/share/nginx/html 目录,并配置域名,开始你的Web服务之旅了,持续学习、定期备份数据和监控系统状态是成为一名优秀运维工程师的关键。
