Ubuntu LAMP怎样配置虚拟主机
导读:Ubuntu LAMP 配置虚拟主机 一 准备与安装 更新系统并安装组件: sudo apt update sudo apt install apache2 mysql-server php libapache2-mod-php php...
Ubuntu LAMP 配置虚拟主机
一 准备与安装
- 更新系统并安装组件:
- sudo apt update
- sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
- 验证安装:
- 访问服务器 IP 或域名,看到 Apache 欢迎页即表示 Apache 正常。
- 创建测试文件 /var/www/html/info.php,内容:,访问 http://服务器IP/info.php 显示 PHP 信息页即表示 PHP 正常。
二 创建站点目录与权限
- 创建网站根目录(示例域名为 your_domain):
- sudo mkdir -p /var/www/html/your_domain
- 设置目录属主与权限(Apache 运行用户通常为 www-data):
- sudo chown -R www-data:www-data /var/www/html/your_domain
- sudo chmod -R 755 /var/www/html/your_domain
三 创建并启用虚拟主机
- 新建站点配置(/etc/apache2/sites-available/ 下创建文件 your_domain.conf):
- sudo nano /etc/apache2/sites-available/your_domain.conf
- 写入示例配置(按需替换域名与目录):
- <
VirtualHost *:80>
- ServerAdmin webmaster@your_domain
- ServerName your_domain
- ServerAlias www.your_domain
- DocumentRoot /var/www/html/your_domain
- <
Directory /var/www/html/your_domain>
- Options Indexes FollowSymLinks
- AllowOverride All
- Require all granted
- ErrorLog ${ APACHE_LOG_DIR} /your_domain_error.log
- CustomLog ${ APACHE_LOG_DIR} /your_domain_access.log combined
- <
VirtualHost *:80>
- 启用站点与可选禁用默认站点:
- sudo a2ensite your_domain.conf
- sudo a2dissite 000-default.conf(可选)
- 检查语法并重启 Apache:
- sudo apache2ctl configtest(出现 Syntax OK 再继续)
- sudo systemctl restart apache2
四 DNS 与防火墙
- 域名解析:在域名注册商将 your_domain 与 www.your_domain 的 A 记录指向服务器 公网 IP。
- 防火墙(若使用 UFW):
- sudo ufw allow ‘Apache Full’(同时放行 80/443)
五 可选启用 HTTPS 与常见问题
- 启用 HTTPS(Let’s Encrypt 免费证书):
- 安装 Certbot:sudo apt install certbot python3-certbot-apache
- 获取并自动配置证书:sudo certbot --apache -d your_domain -d www.your_domain
- 常见问题与要点:
- 目录权限与属主:确保 DocumentRoot 对 www-data 可读可执行,否则会出现 403 Forbidden。
- 启用重写模块:如需 .htaccess 或伪静态,启用 mod_rewrite:sudo a2enmod rewrite。
- 配置语法检查:每次修改后先执行 apache2ctl configtest,再重启服务,避免配置错误导致站点不可用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu LAMP怎样配置虚拟主机
本文地址: https://pptw.com/jishu/757260.html
