不使用宝塔面板配置阿里云服务器 Web 环境,完全可以通过命令行(SSH)手动安装和配置。这种方式更轻量、更安全,且能深入理解系统架构。以下是基于 CentOS 7/8 或 Ubuntu 20.04/22.04 的通用方案(以 LNMP/LAMP 为例),你可根据需求选择:
✅ 一、基础准备
-
登录阿里云 ECS
通过 SSH 客户端连接(如 Terminal / Xshell / PuTTY):ssh root@你的服务器IP -
更新系统并安装必要工具
# 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 -
开放安全组端口(在阿里云控制台操作)
确保以下端口已放行: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:部署应用 & 测试
- 上传代码(如 WordPress、Laravel 等)到
/var/www/example.com/public_html - 设置权限:
sudo chown -R www-data:www-data /var/www/example.com sudo chmod -R 755 /var/www/example.com - 访问
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.log、error.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 脚本?
欢迎告诉我你的具体需求,我可以提供定制化方案!
PHPWP博客