Ubuntu LAMP遠程訪問設置指南
LAMP(Linux + Apache + MySQL + PHP)是常見的Web開發環境,實現遠程訪問需分別配置Web服務、數據庫及網絡安全。以下是詳細步驟:
首先通過包管理器安裝Apache、MySQL、PHP及必要擴展:
sudo apt update && sudo apt upgrade -y # 更新系統
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql -y # 安裝LAMP組件
安裝完成后,Apache會自動啟動,可通過sudo systemctl status apache2驗證狀態。
默認情況下,Apache監聽所有網絡接口(0.0.0.0),但需確保配置文件未限制IP訪問:
sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>部分未添加Require local指令(若有則刪除),并添加Require all granted允許所有IP訪問:<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted # 允許所有IP訪問
</Directory>
sudo systemctl restart apache2
MySQL默認僅允許localhost連接,需修改配置并授權用戶:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1,將其注釋掉(#bind-address = 127.0.0.1)或改為0.0.0.0(允許所有IP連接)。sudo systemctl restart mysql
sudo mysql -u root -p
your_user、your_password替換為實際值,%表示允許所有IP):CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
192.168.1.100),將%改為對應IP:GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'192.168.1.100' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
exit。Ubuntu默認使用ufw(Uncomplicated Firewall)管理防火墻,需開放HTTP(80)、HTTPS(443)及SSH(22)端口:
sudo ufw allow 'Apache Full'
sudo ufw allow ssh
sudo ufw enable
sudo ufw status # 應顯示“Apache Full”和“SSH”為ALLOW
若需允許MySQL遠程連接(端口3306),可添加sudo ufw allow mysql,但建議通過SSH隧道訪問以提高安全性。為避免直接暴露MySQL到公網,建議通過SSH隧道加密數據庫連接:
your_user、your_server_ip替換為實際值):ssh -L 8080:localhost:80 -L 3307:localhost:3306 your_user@your_server_ip -N
此命令將:
http://localhost:8080;localhost:3307作為主機地址,your_user和your_password作為憑據。sudo apt update && sudo apt upgrade -y保持軟件最新;sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf ~/mysqld.cnf.bak);