完全新手如何从零开始在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 oktest 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.phpindex.html)。

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

(0)
热舞的头像热舞
上一篇 2025-10-02 00:17
下一篇 2024-07-30 00:20

相关推荐

发表回复

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

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信