不使用宝塔面板如何配置阿里云服务器的Web环境?

不使用宝塔面板配置阿里云服务器 Web 环境,完全可以通过命令行(SSH)手动安装和配置。这种方式更轻量、更安全,且能深入理解系统架构。以下是基于 CentOS 7/8Ubuntu 20.04/22.04 的通用方案(以 LNMP/LAMP 为例),你可根据需求选择:


✅ 一、基础准备

  1. 登录阿里云 ECS
    通过 SSH 客户端连接(如 Terminal / Xshell / PuTTY):

    ssh root@你的服务器IP
  2. 更新系统并安装必要工具

    # CentOS
    sudo yum update -y && sudo yum install -y vim curl wget git net-tools
    
    # Ubuntu
    sudo apt update && sudo apt upgrade -y && sudo apt install -y vim curl wget git net-tools
  3. 开放安全组端口(在阿里云控制台操作)
    确保以下端口已放行:

    • 80(HTTP)
    • 443(HTTPS)
    • 22(SSH,默认已开)
    • (可选)3306(MySQL,若需远程访问)

✅ 二、推荐方案:LNMP(Linux + Nginx + MySQL + PHP)

步骤 1:安装 Nginx

# CentOS
sudo yum install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

# Ubuntu
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

验证安装:

curl http://localhost
# 应看到 "Welcome to nginx!" 页面

💡 提示:Nginx 主配置文件位于 /etc/nginx/nginx.conf,站点配置在 /etc/nginx/conf.d/ 下。


步骤 2:安装 MySQL / MariaDB

方案 A:MariaDB(轻量兼容,推荐)

# CentOS
sudo yum install -y mariadb-server mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation  # 设置 root 密码等

# Ubuntu
sudo apt install -y mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation

方案 B:MySQL 官方源(如需新版特性)

# Ubuntu 示例(参考 https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/)
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_*.deb
sudo apt update
sudo apt install -y mysql-server

创建数据库与用户(进入 MySQL):

mysql -u root -p
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
EXIT;

⚠️ 生产环境建议限制 'myuser'@'localhost' 而非 %,避免远程暴力破解。


步骤 3:安装 PHP & 扩展(以 PHP 8.2 为例)

# CentOS 8+(使用 Remi 源)
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum module reset php -y
sudo yum module enable php:remi-8.2 -y
sudo yum install -y php-fpm php-mysqlnd php-gd php-curl php-mbstring php-xml php-zip

# Ubuntu 22.04
sudo apt install -y php8.2-fpm php8.2-mysql php8.2-gd php8.2-curl php8.2-mbstring php8.2-xml php8.2-zip

启动 PHP-FPM:

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

🔍 检查版本:php -v;查看 FPM 状态:systemctl status php-fpm


步骤 4:配置 Nginx 支持 PHP

创建站点配置(例如 example.com):

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com  # Ubuntu
# CentOS 可能是 nginx:nginx 或 apache:apache,根据实际调整

编辑站点配置:

sudo nano /etc/nginx/sites-available/example.com
# 或使用 conf.d 目录下的 .conf 文件

内容示例(简化版):

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/public_html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ .php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # 路径可能不同,用 ls /run/php/ 确认
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
    }

    # 禁止访问敏感文件
    location ~ /. {
        deny all;
    }
}

启用站点:

# Ubuntu 示例
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default  # 移除默认站

# CentOS 直接放入 conf.d
sudo cp /etc/nginx/sites-available/example.com /etc/nginx/conf.d/example.com.conf

测试配置并重载:

sudo nginx -t
sudo systemctl reload nginx

步骤 5:部署应用 & 测试

  1. 上传代码(如 WordPress、Laravel 等)到 /var/www/example.com/public_html
  2. 设置权限:
    sudo chown -R www-data:www-data /var/www/example.com
    sudo chmod -R 755 /var/www/example.com
  3. 访问 http://你的域名http://服务器IP 查看效果

✅ 三、进阶优化(生产必备)

🔐 1. 配置 HTTPS(Let’s Encrypt)

# 安装 Certbot
sudo yum install -y certbot python3-certbot-nginx  # CentOS
# 或
sudo apt install -y certbot python3-certbot-nginx  # Ubuntu

# 自动申请证书
sudo certbot --nginx -d example.com -d www.example.com

✅ 自动完成:修改 Nginx 配置、续期脚本、强制 HTTPS 跳转。


🛡️ 2. 防火墙加固(firewalld / ufw)

# CentOS(firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# Ubuntu(ufw)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

📊 3. 日志监控

  • Nginx 日志:/var/log/nginx/access.logerror.log
  • PHP-FPM 日志:/var/log/php-fpm/error.log
  • 可结合 fail2ban 防暴力破解:
    sudo yum install -y fail2ban  # CentOS
    sudo apt install -y fail2ban  # Ubuntu
    sudo systemctl enable fail2ban

✅ 四、替代方案对比

方案 优点 缺点 适用场景
LNMP(手动) 轻量、可控、安全 需熟悉命令 生产环境、学习、定制需求高
LAMP(Apache+PHP) PHP 生态兼容好 资源占用略高 传统 CMS(如旧版 WordPress)
Docker 部署 隔离、易迁移、版本管理灵活 学习曲线稍陡 微服务、多项目隔离
Cloud-init + Ansible 自动化批量部署 需脚本能力 大规模服务器集群

💡 想进一步简化?可用 Ansible 编写 Playbook 一键部署 LNMP 环境。


需要我为你生成:

  • ✅ 针对 WordPress 的完整手动部署脚本?
  • Laravel 项目的优化配置(队列、缓存、队列 worker)?
  • Docker Compose 方式部署 LNMP 的 docker-compose.yml
  • ✅ 自动化备份 + SSL 续期的 Cron 脚本?

欢迎告诉我你的具体需求,我可以提供定制化方案!