完全新手如何从零开始在CentOS VPS上一步步搭建好个人网站?

在互联网的广阔天地中,拥有一个完全由自己掌控的网站是许多开发者和企业主的梦想,通过使用CentOS VPS(虚拟专用服务器)来建站,您不仅能获得极高的性能和稳定性,还能拥有对服务器环境的完全控制权,本教程将引导您一步步在CentOS系统上搭建一个安全、高效的网站环境,我们将采用业界流行的LEMP架构(Linux、Nginx、MariaDB、PHP),它以其轻量和高性能而著称。

完全新手如何从零开始在CentOS VPS上一步步搭建好个人网站?

准备工作与初始连接

在开始之前,请确保您已具备以下条件:

  1. 一台已购买并初始化的CentOS VPS(本教程基于CentOS 7/8编写,大部分步骤同样适用于CentOS Stream)。
  2. 一个SSH客户端,如Windows下的PuTTY或macOS/Linux系统自带的终端。
  3. 您VPS的IP地址、root用户的密码或SSH密钥。

我们需要通过SSH连接到您的服务器,打开您的终端或PuTTY,输入以下命令并将your_server_ip替换为您的VPS公网IP地址:

ssh root@your_server_ip

首次连接时,系统会提示您接受服务器的指纹,输入yes并回车,然后输入root密码即可成功登录。

系统基础配置

为了服务器的安全和稳定,进行基础配置是必不可少的第一步。

更新系统
登录后,首先执行系统更新,确保所有软件包都是最新版本。

yum update -y

创建非root用户
直接使用root用户进行日常操作存在安全风险,我们建议创建一个拥有sudo权限的新用户。

# 创建一个新用户,'webmaster'
adduser webmaster
# 为该用户设置密码
passwd webmaster
# 将新用户添加到 'wheel' 组,使其拥有sudo权限
usermod -aG wheel webmaster

之后,您可以使用 ssh webmaster@your_server_ip 命令登录新用户,并在需要管理员权限的命令前加上 sudo。

配置防火墙
CentOS默认使用firewalld作为防火墙管理工具,我们需要开启HTTP(80)和HTTPS(443)端口,以便用户能够访问网站。

# 启动 firewalld
sudo systemctl start firewalld
# 设置开机自启
sudo systemctl enable firewalld
# 永久开放HTTP和HTTPS服务
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重载防火墙规则使配置生效
sudo firewall-cmd --reload

安装LEMP环境

我们将安装构成LEMP架构的核心组件。

安装Nginx
Nginx是一款高性能的Web服务器,负责处理HTTP请求和提供静态文件。

sudo yum install nginx -y
# 启动Nginx
sudo systemctl start nginx
# 设置Nginx开机自启
sudo systemctl enable nginx

在浏览器中访问您的VPS IP地址,应该能看到Nginx的默认欢迎页面。

完全新手如何从零开始在CentOS VPS上一步步搭建好个人网站?

安装MariaDB
MariaDB是MySQL的一个流行分支,完全兼容且保持开源。

sudo yum install mariadb-server mariadb -y
# 启动MariaDB
sudo systemctl start mariadb
# 设置MariaDB开机自启
sudo systemctl enable mariadb

安装后,运行安全安装脚本来进行基础安全配置,如设置root密码、移除匿名用户等。

sudo mysql_secure_installation

按照提示操作,建议对所有问题都回答Y(是)。

安装PHP
PHP是处理动态内容的服务器端脚本语言,我们需要安装PHP本身以及一些常用扩展。

sudo yum install php-fpm php-mysqlnd php-json php-gd php-mbstring -y

我们需要配置PHP-FPM,使其与Nginx协同工作,编辑配置文件:

sudo vi /etc/php-fpm.d/www.conf

找到以下两行,将其用户和组从apache修改为nginx:

user = nginx
group = nginx

保存并退出(在vi中,按Esc,输入wq回车)。

然后启动并启用PHP-FPM:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

配置Nginx处理PHP请求

现在我们需要告诉Nginx如何将.php文件的处理请求转发给PHP-FPM。

为您的网站创建一个新的Nginx配置文件:

sudo vi /etc/nginx/conf.d/your_domain.conf

粘贴到文件中,记得将your_domain替换为您的实际域名或IP地址:

完全新手如何从零开始在CentOS VPS上一步步搭建好个人网站?

server {
    listen 80;
    server_name your_domain www.your_domain;
    root /usr/share/nginx/html;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

测试Nginx配置文件语法是否正确:

sudo nginx -t

如果显示syntax is ok和test is successful,则重启Nginx使配置生效:

sudo systemctl restart nginx

部署网站与启用HTTPS

部署网站文件
您可以通过SFTP(如FileZilla、WinSCP)工具,使用之前创建的webmaster用户登录服务器,将您的网站文件上传到/usr/share/nginx/html目录。

启用HTTPS(SSL证书)
为了数据传输安全,使用Let’s Encrypt提供的免费SSL证书是最佳选择。

首先安装Certbot:

sudo yum install epel-release -y
sudo yum install certbot python3-certbot-nginx -y

运行Certbot来自动获取并安装证书:

sudo certbot --nginx -d your_domain -d www.your_domain

按照提示输入您的邮箱并同意服务条款,Certbot会自动修改Nginx配置,启用HTTPS并设置自动续期。

至此,您已经成功在CentOS VPS上搭建了一个功能完善的网站,您的网站现在可以通过https://your_domain安全访问了。


相关问答FAQs

问题1:我忘记了MariaDB的root密码,该怎么办?
解答: 不要慌张,可以按照以下步骤重置:

  1. 停止MariaDB服务:sudo systemctl stop mariadb
  2. 以“跳过权限检查”模式安全启动MariaDB:sudo mysqld_safe --skip-grant-tables &
  3. 无密码登录:mysql -u root
  4. 切换到mysql数据库并更新密码(将'new_password'替换为您的强密码):
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    FLUSH PRIVILEGES;
    EXIT;
  5. 重启MariaDB服务:sudo systemctl restart mariadb,现在您可以使用新密码登录了。

问题2:我的网站无法访问,Nginx返回403 Forbidden错误,是什么原因?
解答: 403错误通常意味着权限问题,请按以下顺序排查:

  1. 文件权限: 确保网站文件及其目录的所有者是nginx用户和组,可以使用命令 sudo chown -R nginx:nginx /usr/share/nginx/html 来修正。
  2. SELinux上下文: CentOS的SELinux可能会阻止Nginx访问文件,运行命令 sudo setsebool -P httpd_can_network_connect 1 临时允许网络连接,或使用 sudo chcon -R -t httpd_sys_content_t /usr/share/nginx/html 为文件设置正确的SELinux安全上下文。
  3. Nginx配置: 检查index指令是否包含了您网站的默认首页文件(如index.php或index.html)。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

赞 (0)
爱国的头像爱国
CentOS 7如何安装部署ntopng,实现网络流量监控?
上一篇 2025-10-02 00:17
乌鲁木齐做网站价格从几百到上万,到底怎么收费的?
下一篇 2025-10-02 00:20

相关推荐

  • CentOS 6安装VNC后连接黑屏,如何解决?

    在CentOS 6系统中配置VNC服务器时,“黑屏”问题是常见故障之一,表现为连接后仅显示黑色背景或无法正常显示桌面环境,本文将从原因分析、解决步骤及优化建议等方面展开详细说明,帮助用户快速排查并解决问题,VNC黑屏的常见原因显示管理器冲突CentOS 6默认使用GDM(GNOME Display Manage……

    2025-10-22
    0028
  • 如何实现一个高效的分页条功能在HTML中?

    要在HTML中实现一个高效的分页条功能,可以使用CSS和JavaScript。使用HTML和CSS创建一个包含多个链接的分页条,然后使用JavaScript添加交互功能,如点击页码跳转到相应页面。

    2024-08-08
    0014
  • 服务器 权限 777_CentOS云服务器根目录设置成777权限怎么办?

    在CentOS云服务器中,如果不慎将根目录权限设置为777,可能导致系统服务异常。此时需立即采取行动恢复原有权限。下面,将为您提供具体的解决方案:,,1. **备份原有权限设置**, **使用getfacl工具**:利用getfacl命令备份根目录的原有权限设置。通过这个工具,可以详细查看并保存文件系统的访问控制列表(ACL)。,,2. **恢复原有权限配置**, **利用setfacl恢复**:根据先前备份的ACL信息,使用setfacl命令逐项恢复根目录及其子目录的权限。,,3. **检查SELinux状态**, **查看SELinux影响**:如果SELinux处于启用状态,它可能会阻止某些操作,即使权限已正确设置。使用/usr/sbin/sestatus v检查SELinux状态,并确保其不干扰权限恢复过程。,,4. **临时关闭SELinux**, **修改SELinux状态**:如果需要,可以临时关闭SELinux,以便排除其对权限恢复的干扰。使用setenforce 0临时关闭SELinux,但在完成权限恢复后应重新开启。,,5. **验证权限设置**, **确认权限正确性**:权限恢复后,通过命令ls l等检查根目录及其子目录的权限,确保一切恢复正常。,,6. **测试系统服务**, **检查服务运行状况**:在权限被正确恢复后,测试系统中的关键服务是否能够正常运行,例如网络服务、Web服务器等。,,为防止未来类似问题的发生,建议采取以下预防措施:,, 避免使用过于宽松的权限设置,如非必要,不要随意使用777权限。, 定期备份关键文件和目录的权限设置,以便在必要时快速恢复。, 加强对服务器操作人员的培训,提高他们对系统安全的认识和操作技能。,,如果在CentOS云服务器上不小心将根目录权限设置为了777,应立即采取行动,按照上述步骤进行恢复。采取必要的预防措施,减少未来此类事件的发生概率。

    2024-07-09
    0012
  • CentOS服务器PPTP VPN拨号失败,提示619错误怎么修?

    在CentOS系统中搭建PPTP VPN服务时,连接过程中遇到“619错误”是一个相当普遍且令人困扰的问题,这个错误提示通常意味着“到远程计算机的连接未建立,因此用于此连接的端口已关闭”,它表明客户端与服务器之间已经建立了初步联系,但在最终的认证和隧道建立阶段失败了,要彻底解决此问题,需要从服务器配置、防火墙设……

    2025-10-01
    009

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信