在 Alibaba Cloud Linux(阿里云自研的基于 CentOS/RHEL 的 Linux 发行版)上部署网站,通常包括以下几个步骤。以下以部署一个常见的 Nginx + PHP + MySQL(或 MariaDB) 网站(如 WordPress、Laravel 或静态网站)为例,提供详细操作指南。
✅ 一、准备工作
-
购买并配置阿里云 ECS 实例
- 地域:选择靠近目标用户的位置
- 镜像:选择 Alibaba Cloud Linux 3.x(64位)
- 安全组:开放以下端口:
80(HTTP)443(HTTPS)22(SSH)3306(MySQL,如需远程连接,建议限制 IP)
-
连接到服务器
ssh root@你的ECS公网IP
✅ 二、更新系统并安装基础软件
# 更新系统
sudo dnf update -y
# 安装常用工具(可选)
sudo dnf install -y wget curl vim git
✅ 三、安装 Web 服务器(以 Nginx 为例)
# 安装 Nginx
sudo dnf install -y nginx
# 启动并设置开机自启
sudo systemctl enable nginx
sudo systemctl start nginx
# 检查状态
sudo systemctl status nginx
浏览器访问
http://你的公网IP,看到 Nginx 欢迎页表示成功。
✅ 四、安装数据库(以 MariaDB 为例)
# 安装 MariaDB
sudo dnf install -y mariadb-server mariadb
# 启动并设置开机自启
sudo systemctl enable mariadb
sudo systemctl start mariadb
# 安全初始化(设置 root 密码、删除匿名用户等)
sudo mysql_secure_installation
✅ 五、安装 PHP(以 PHP 8.1 为例)
Alibaba Cloud Linux 默认源可能不包含最新 PHP,建议添加 EPEL 和 Remi 源:
# 安装 EPEL 和 Remi 源
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# 启用 PHP 8.1 模块
sudo dnf module enable php:remi-8.1 -y
# 安装 PHP 及常用扩展
sudo dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl php-zip
# 启动并设置 php-fpm 开机自启
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
✅ 六、配置 Nginx 支持 PHP
编辑默认站点配置:
sudo vim /etc/nginx/conf.d/default.conf
替换内容如下(支持 PHP):
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存后测试配置并重启 Nginx:
sudo nginx -t
sudo systemctl restart nginx
✅ 七、测试 PHP 是否正常
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
浏览器访问:http://你的公网IP/info.php,看到 PHP 信息页面即成功。
✅ 八、部署你的网站
方式 1:部署静态网站
将 HTML 文件上传到 /usr/share/nginx/html/
sudo cp -r /path/to/your/site/* /usr/share/nginx/html/
方式 2:部署动态网站(如 WordPress)
cd /usr/share/nginx/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo mv wordpress/* ./
sudo chown -R nginx:nginx /usr/share/nginx/html
sudo chmod -R 755 /usr/share/nginx/html
然后通过浏览器访问进行安装。
✅ 九、配置数据库(创建网站用的数据库)
mysql -u root -p
CREATE DATABASE mywebsite;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON mywebsite.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
✅ 十、安全与优化建议
-
防火墙设置
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload -
设置文件权限
sudo chown -R nginx:nginx /usr/share/nginx/html sudo chmod -R 755 /usr/share/nginx/html -
配置 HTTPS(使用 Let’s Encrypt)
sudo dnf install -y certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com -
绑定域名
- 在阿里云 域名控制台 解析域名到 ECS 公网 IP
- 在 Nginx 中设置
server_name yourdomain.com;
✅ 常见问题排查
- Nginx 502 Bad Gateway:检查
php-fpm是否运行,端口是否匹配 - 无法访问:检查安全组、防火墙、SELinux(可临时关闭测试:
setenforce 0) - 权限问题:确保
/usr/share/nginx/html属于nginx用户
✅ 总结
| 组件 | 安装命令 |
|---|---|
| Nginx | dnf install nginx |
| MariaDB | dnf install mariadb-server |
| PHP 8.1 | dnf module enable php:remi-8.1 + 安装扩展 |
| php-fpm | dnf install php-fpm |
如果你使用的是 宝塔面板 或 AMH 等可视化工具,也可以一键部署,但建议初期掌握命令行方式,更利于理解和运维。
需要我为你生成一键部署脚本或针对特定网站(如 WordPress、Typecho、Node.js 等)的部署方案吗?欢迎继续提问!
PHPWP博客