ubuntu lamp中如何配置虚拟主机
Ubuntu LAMP环境中配置虚拟主机的详细步骤
1. 准备基础环境(LAMP堆栈)
在配置虚拟主机前,需确保已安装**Apache(Web服务器)、MySQL(数据库)、PHP(脚本语言)**组成的LAMP环境。若未安装,可通过以下命令快速部署:
sudo apt update &
&
sudo apt upgrade -y # 更新系统包
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql -y # 安装LAMP组件
安装完成后,MySQL会提示设置root密码(务必牢记),并通过sudo mysql_secure_installation
命令完成安全配置(如删除匿名用户、禁止root远程登录等)。
2. 启用Apache必要模块
虚拟主机功能依赖vhost_alias
模块,若需支持URL重写(如WordPress等CMS的伪静态),还需启用rewrite
模块:
sudo a2enmod vhost_alias rewrite # 启用虚拟主机和重写模块
sudo systemctl restart apache2 # 重启Apache使模块生效
3. 创建虚拟主机配置文件
虚拟主机配置文件需存放在/etc/apache2/sites-available/
目录下(每个域名对应一个.conf
文件)。例如,为example.com
创建配置文件:
sudo nano /etc/apache2/sites-available/example.com.conf
在文件中添加以下内容(按需修改域名、目录路径等信息):
<
VirtualHost *:80>
ServerAdmin webmaster@example.com # 管理员邮箱(用于错误日志通知)
ServerName example.com # 主域名
ServerAlias www.example.com # 别名(可选,如www前缀)
DocumentRoot /var/www/example.com # 网站根目录(需自定义)
<
Directory /var/www/example.com>
Options Indexes FollowSymLinks # 允许目录列表和符号链接
AllowOverride All # 允许.htaccess文件覆盖配置(关键:支持WordPress等框架)
Require all granted # 允许所有用户访问
<
/Directory>
ErrorLog ${
APACHE_LOG_DIR}
/example.com_error.log # 错误日志路径
CustomLog ${
APACHE_LOG_DIR}
/example.com_access.log combined # 访问日志格式(combined包含Referer、User-Agent等信息)
<
/VirtualHost>
4. 创建网站根目录并设置权限
配置文件中指定的DocumentRoot
目录需手动创建,并设置正确的所有权(Apache默认以www-data
用户运行):
sudo mkdir -p /var/www/example.com # 创建网站根目录(-p参数递归创建父目录)
sudo chown -R $USER:$USER /var/www/example.com # 将目录所有者设为当前用户(方便上传文件)
sudo chmod -R 755 /var/www/example.com # 设置目录权限(755:所有者可读写执行,其他用户可读执行)
5. 启用虚拟主机并禁用默认站点
使用a2ensite
命令启用新创建的虚拟主机配置,若无需默认站点(000-default.conf
),可禁用它:
sudo a2ensite example.com.conf # 启用虚拟主机
sudo a2dissite 000-default.conf # 可选:禁用默认站点(避免端口冲突)
sudo systemctl restart apache2 # 重启Apache使配置生效
6. 配置DNS解析
为了让域名指向服务器IP,需在域名注册商的管理面板中添加A记录(将域名解析到服务器公网IP):
- 记录类型:
A
- 主机名:
@
(代表主域名)或www
(代表www前缀) - 值:服务器公网IP(如
123.45.67.89
) - TTL:默认(通常为3600秒)
7. 配置防火墙(可选但推荐)
若使用UFW
(Ubuntu默认防火墙),需允许HTTP(80端口)和HTTPS(443端口)流量:
sudo ufw allow 'Apache Full' # 允许HTTP和HTTPS流量
sudo ufw enable # 启用防火墙(若未启用)
sudo ufw status # 查看防火墙状态(确认规则已添加)
8. 测试虚拟主机
在浏览器中访问http://example.com
(或www.example.com
),若看到网站内容(如默认的index.html
或index.php
),则配置成功。
若需验证PHP是否正常工作,可在网站根目录创建info.php
文件:
echo "<
?php phpinfo();
?>
" | sudo tee /var/www/example.com/info.php
访问http://example.com/info.php
,若显示PHP信息页面,则说明PHP配置正确。
9. 可选:配置SSL证书(强制HTTPS)
为提升网站安全性,建议使用Let’s Encrypt免费证书配置SSL。安装Certbot工具并获取证书:
sudo apt install certbot python3-certbot-apache -y # 安装Certbot
sudo certbot --apache -d example.com -d www.example.com # 获取证书(自动配置Apache)
按照提示完成证书安装后,Apache会自动将HTTP请求重定向到HTTPS(需确保ServerName
和ServerAlias
已正确配置)。
通过以上步骤,即可在Ubuntu LAMP环境中成功配置虚拟主机,支持多个域名共用同一服务器资源。每个虚拟主机可独立配置文档根目录、日志文件、权限等参数,满足多网站托管需求。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp中如何配置虚拟主机
本文地址: https://pptw.com/jishu/730535.html