Alibaba Cloud Linux 如何部署网站?

Alibaba Cloud Linux(阿里云自研的基于 CentOS/RHEL 的 Linux 发行版)上部署网站,通常包括以下几个步骤。以下以部署一个常见的 Nginx + PHP + MySQL(或 MariaDB) 网站(如 WordPress、Laravel 或静态网站)为例,提供详细操作指南。


✅ 一、准备工作

  1. 购买并配置阿里云 ECS 实例

    • 地域:选择靠近目标用户的位置
    • 镜像:选择 Alibaba Cloud Linux 3.x(64位)
    • 安全组:开放以下端口:
      • 80(HTTP)
      • 443(HTTPS)
      • 22(SSH)
      • 3306(MySQL,如需远程连接,建议限制 IP)
  2. 连接到服务器

    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;

✅ 十、安全与优化建议

  1. 防火墙设置

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
  2. 设置文件权限

    sudo chown -R nginx:nginx /usr/share/nginx/html
    sudo chmod -R 755 /usr/share/nginx/html
  3. 配置 HTTPS(使用 Let’s Encrypt)

    sudo dnf install -y certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com
  4. 绑定域名

    • 在阿里云 域名控制台 解析域名到 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 等)的部署方案吗?欢迎继续提问!