在 Debian 上部署 LAMP(Linux + Apache + MySQL/MariaDB + PHP)并上线一个网站,通常按下面步骤来做即可。以下以 Debian 11/12 为例。
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y
启动并设置开机自启:
sudo systemctl enable --now apache2
浏览器访问服务器 IP,看到 Apache 默认页即成功。
sudo apt install mariadb-server -y
初始化安全设置:
sudo mysql_secure_installation
登录数据库:
sudo mysql -u root -p
创建网站数据库和用户(示例):
CREATE DATABASE mydb CHARACTER SET utf8mb4;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
sudo apt install php libapache2-mod-php php-mysql -y
测试 PHP:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问:http://服务器IP/info.php
sudo mkdir -p /var/www/mywebsite
sudo chown -R www-data:www-data /var/www/mywebsite
将网站文件放入该目录(如使用 FTP / SCP / Git)。
新建配置文件:
sudo nano /etc/apache2/sites-available/mywebsite.conf
示例配置:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/mywebsite
<Directory /var/www/mywebsite>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用站点:
sudo a2ensite mywebsite.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
sudo a2enmod rewrite
sudo systemctl restart apache2
将域名 A 记录指向服务器公网 IP。
sudo ufw allow 80
sudo ufw allow 443
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d www.example.com
Require all granted 没配置libapache2-mod-php 已安装并重启 Apachelocalhost 限制如果你能说明:
我可以给你更精确的部署方案。