Ubuntu LAMP远程连接设置指南
LAMP(Linux+Apache+MySQL+PHP)是常见的Web开发环境,实现远程连接需分别配置Web服务、数据库及SSH访问,并确保网络安全。以下是详细步骤:
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql -y
Apache默认监听80(HTTP)和443(HTTPS)端口,需确保防火墙允许这些端口的流量,并配置虚拟主机以响应远程请求。
ufw(Ubuntu默认防火墙工具)允许HTTP/HTTPS流量:sudo ufw allow 'Apache Full' # 允许HTTP(80)和HTTPS(443)
sudo ufw enable # 启用防火墙
sudo ufw status # 验证规则(显示“Apache Full”为允许状态)
/etc/apache2/sites-available/000-default.conf),修改DocumentRoot(网站根目录)和ServerName(域名/IP):<VirtualHost *:80>
ServerName your_domain_or_ip # 替换为你的域名或服务器IP
DocumentRoot /var/www/html
<Directory "/var/www/html">
Require all granted # 允许所有IP访问
</Directory>
</VirtualHost>
重启Apache使配置生效:sudo systemctl restart apache2
MySQL默认仅允许localhost(本机)连接,需修改配置文件并授权远程用户。
/etc/mysql/mysql.conf.d/mysqld.cnf),找到bind-address行,将其注释掉或修改为0.0.0.0(允许所有IP连接):#bind-address = 127.0.0.1 # 注释掉此行
bind-address = 0.0.0.0 # 允许所有IP连接
重启MySQL服务:sudo systemctl restart mysql
your_user、your_password替换为实际用户名和强密码,%表示允许所有IP访问,建议替换为特定IP):CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION; -- 授予所有数据库权限
-- 更安全的做法:限制特定数据库(如`your_db`)
-- GRANT ALL PRIVILEGES ON your_db.* TO 'your_user'@'%';
FLUSH PRIVILEGES; -- 刷新权限使变更生效
退出MySQL:exit;
直接暴露MySQL端口(3306)存在安全风险,建议使用SSH隧道加密数据库连接。
sudo apt install openssh-server -y
sudo systemctl start ssh
sudo systemctl enable ssh # 设置开机自启
ssh -L 8080:localhost:3306 your_user@your_server_ip
输入SSH用户密码后,隧道建立。此时,本地应用程序可通过localhost:8080访问服务器上的MySQL数据库。http://your_server_ip),若看到Apache默认页面或你的网站内容,说明Web远程访问成功。your_user、your_password、your_server_ip):mysql -h your_server_ip -u your_user -p
输入密码后,若进入MySQL命令行,说明数据库远程访问成功。%允许所有IP访问,尽量指定特定IP(如公司/家庭IP)。/etc/ssh/sshd_config),将PermitRootLogin设置为no,重启SSH服务:sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart ssh
按照以上步骤配置后,你的Ubuntu LAMP环境即可实现安全的远程访问。