1. 更新系统包列表
在部署前,确保系统软件包为最新版本,避免兼容性问题:
sudo apt update && sudo apt upgrade -y
2. 安装Apache Web服务器
Apache是LAMP架构的核心Web服务器,负责处理HTTP请求:
sudo apt install apache2 -y
sudo systemctl start apache2 # 启动服务
sudo systemctl enable apache2 # 设置开机自启
验证安装:浏览器访问服务器IP,若看到Apache默认页面(如“It works!”),则说明安装成功。
3. 安装MySQL/MariaDB数据库
MySQL(或MariaDB,Debian默认替代)用于存储Web应用数据:
sudo apt install mysql-server -y
sudo systemctl start mysql && sudo systemctl enable mysql
安全加固:运行安全脚本,设置root密码、删除匿名用户、禁止远程root登录:
sudo mysql_secure_installation
按照提示完成配置(如设置强密码、移除测试数据库)。
4. 安装PHP及必要扩展
PHP是服务器端脚本语言,用于处理动态内容。安装PHP核心及常用扩展(如MySQL连接、GD图形处理):
sudo apt install php libapache2-mod-php php-mysql php-cli php-common php-curl php-gd php-json php-mbstring php-xml php-zip -y
sudo systemctl restart apache2 # 重启Apache以加载PHP模块
验证PHP:在/var/www/html创建info.php文件,内容为<?php phpinfo(); ?>,浏览器访问IP/info.php,若显示PHP信息页面,则说明安装成功。
5. 配置MySQL数据库
为Web应用创建专用数据库和用户(避免使用root账户):
sudo mysql -u root -p # 登录MySQL(输入root密码)
在MySQL命令行中执行:
CREATE DATABASE your_database; -- 创建数据库(替换your_database)
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password'; -- 创建用户(替换your_user、your_password)
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost'; -- 授权用户对数据库的所有权限
FLUSH PRIVILEGES; -- 刷新权限
EXIT; -- 退出MySQL
注意:将your_database、your_user、your_password替换为实际值,后续应用配置需使用这些信息。
6. 部署Web应用文件
将Web应用文件上传至Apache默认文档根目录(/var/www/html),或自定义目录(需配置虚拟主机):
scp -r /local/app/path user@server_ip:/var/www/html)。www-data)对应用目录有读写权限:sudo chown -R www-data:www-data /var/www/html # 更改所有者
sudo chmod -R 755 /var/www/html # 设置目录权限
IP/your_app(如IP/index.php),若应用正常加载,则说明部署成功。7. 配置虚拟主机(可选,多站点场景)
若需托管多个Web应用,可通过虚拟主机配置隔离:
your_app.conf):sudo nano /etc/apache2/sites-available/your_app.conf
your_app、/var/www/html/your_app、your_domain.com):<VirtualHost *:80>
ServerAdmin admin@your_domain.com
ServerName your_domain.com # 替换为域名或IP
DocumentRoot /var/www/html/your_app
<Directory /var/www/html/your_app>
Options Indexes FollowSymLinks
AllowOverride All # 允许.htaccess覆盖配置
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your_app_error.log
CustomLog ${APACHE_LOG_DIR}/your_app_access.log combined
</VirtualHost>
sudo a2ensite your_app.conf # 启用配置
sudo a2dissite 000-default.conf # 可选:禁用默认站点
sudo systemctl reload apache2 # 重载配置
8. 配置SSL证书(可选,启用HTTPS)
为提升安全性,建议使用Let’s Encrypt免费SSL证书启用HTTPS:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache # 自动配置SSL
按照提示选择域名、是否强制HTTPS(推荐),完成后Apache会自动配置SSL虚拟主机。验证:浏览器访问https://your_domain.com,若显示锁图标,则说明配置成功。
9. 常见问题排查
/var/www/html目录权限(应为www-data:www-data,权限755)。sudo apt install php-mysql)并重启Apache。sudo ufw allow 'Apache Full')。/var/log/apache2/error.log)定位具体问题。