Ubuntu系统部署CMS建站,环境搭建完整教程
在 Ubuntu 系统上部署 CMS 建站,核心是搭好 LNMP(Linux + Nginx + MySQL + PHP)环境,再上传 CMS 程序并完成安装向导。
本文面向零基础用户,从系统准备到网站可访问,给出每一步命令和验证方法,照着做就能跑通。
先确认系统版本和权限
开始前,用 SSH 登录服务器,确认系统版本和当前用户权限。
lsb_release -a
whoami
建议使用 Ubuntu 20.04 或 22.04 LTS,这两个版本软件源稳定、社区支持好。
如果不是 root 用户,后续命令前加 sudo。
同时放行防火墙的 80 和 443 端口:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
如果服务器在云平台,还需在控制台安全组里放行相同端口。这一步漏掉,后面网站肯定打不开。
安装 Nginx 并验证默认页
Nginx 负责处理网页请求,是 CMS 对外访问的入口。
sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl status nginx
状态显示 active (running) 表示启动成功。
浏览器访问服务器公网 IP,看到 Nginx 欢迎页即正常。
若访问超时,先检查安全组和 ufw status。
安装 MySQL 并创建数据库
CMS 的数据(文章、用户、配置)都存在 MySQL 里。
sudo apt install mysql-server -y
sudo mysql_secure_installation
安全脚本中建议设置 root 密码、移除匿名用户、禁止 root 远程登录。
完成后登录并建库:
sudo mysql -u root -p
在 MySQL 提示符下执行:
CREATE DATABASE cms_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cms_user'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON cms_db.* TO 'cms_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
数据库名、用户名、密码要记牢,安装 CMS 时会用到。
字符集用 utf8mb4 可以正常存储中文和 emoji。
安装 PHP 及 CMS 所需扩展
PHP 负责运行动态代码,不同 CMS 对版本要求不同,建议先查官方文档。
以 PHP 8.1 为例:
sudo apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip -y
sudo systemctl enable php8.1-fpm
安装后创建一个 PHP 探针文件验证:
sudo nano /var/www/html/info.php
写入 ,保存后访问
php phpinfo(); ?
>http://服务器IP/info.php,能看到 PHP 信息页即成功。验证完记得删除该文件,避免泄露环境信息。
配置 Nginx 站点并上传 CMS
假设域名为 example.com,CMS 程序放在 /var/www/cms。
sudo mkdir -p /var/www/cms
sudo chown -R www-data:www-data /var/www/cms
将 CMS 压缩包上传到该目录并解压,然后新建 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/cms.conf
写入以下内容(按实际路径调整):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/cms;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}
启用站点并重载 Nginx:
sudo ln -s /etc/nginx/sites-available/cms.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
nginx -t 显示 syntax is ok 和 test is successful 才算配置正确。
运行安装向导与目录权限
浏览器访问域名,按 CMS 安装向导填写数据库信息(数据库名 cms_db、用户 cms_user、密码、主机 localhost)。
若提示无法写入配置文件,给 CMS 目录临时写权限:
sudo chown -R www-data:www-data /var/www/cms
sudo find /var/www/cms -type d -exec chmod 755 {} \;
sudo find /var/www/cms -type f -exec chmod 644 {} \;
安装完成后,建议把安装目录删除或改名,防止被重新安装。
常见报错与避坑清单
- 访问显示 502 Bad Gateway:PHP-FPM 没启动或 socket 路径不匹配。执行
sudo systemctl restart php8.1-fpm,并核对 Nginx 配置中的fastcgi_pass路径。 - 提示数据库连接失败:检查用户名、密码、主机是否为
localhost,以及 MySQL 用户是否授权。 - 页面样式丢失或 404:CMS 通常需要伪静态规则,确认 Nginx 中已配置
try_files,并在 CMS 后台开启对应伪静态。 - 上传图片失败:多为目录权限问题,重新执行上面的权限命令。
- 中文乱码:建库时字符集必须为
utf8mb4。
验证部署是否成功
完成以上步骤后,访问 http://example.com,能看到 CMS 首页即部署成功。
再登录后台发布一篇测试文章,确认数据库读写正常。
若准备上线,建议用 certbot 申请免费 SSL 证书,将站点切换为 HTTPS。
整个 Ubuntu 系统部署 CMS 建站的环境搭建流程到此结束,后续可按需优化缓存和备份策略。