凌峰创科服务平台

CentOS6.5 Web服务器如何搭建与配置?

CentOS 6.5 Web服务器搭建全攻略:从零开始到LNMP环境部署(附详细命令与排错指南)

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

CentOS6.5 Web服务器如何搭建与配置?-图1
(图片来源网络,侵删)

引言:为何选择 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 环境下执行。

更新系统软件包

CentOS6.5 Web服务器如何搭建与配置?-图2
(图片来源网络,侵删)

这是任何服务器部署的第一步,确保所有组件都是最新的,并修复潜在的安全漏洞。

# 检查网络连通性
ping -c 4 www.baidu.com
# 更新所有已安装的软件包
yum update -y
# 清理缓存
yum clean all

配置静态IP地址(推荐)

对于服务器来说,使用静态IP至关重要,编辑网络配置文件:

# 使用vi编辑器
vi /etc/sysconfig/network-scripts/ifcfg-eth0

根据你的网络环境,修改或添加以下内容:

CentOS6.5 Web服务器如何搭建与配置?-图3
(图片来源网络,侵删)
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环境搭建成功!页面中还应能看到 mysqlmysqli 等模块,证明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模块未安装,或数据库用户名、密码、主机地址配置错误。
  • 解决:
    1. 确认安装了 php-mysql 包:yum list installed | grep php-mysql
    2. 使用 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服务之旅了,持续学习、定期备份数据和监控系统状态是成为一名优秀运维工程师的关键。


分享:
扫描分享到社交APP
上一篇
下一篇