如何在Ubuntu上配置Apache
首先更新系统软件包列表,然后通过apt
安装Apache2:
sudo apt update
sudo apt install apache2
安装完成后,Apache会自动启动。可通过以下命令验证服务状态:
sudo systemctl status apache2
若显示“active (running)”,则表示安装成功。此时在浏览器输入服务器IP地址,应能看到Apache默认欢迎页面。
若系统启用了ufw
防火墙,需允许HTTP(端口80)和HTTPS(端口443)流量通过:
sudo ufw allow 'Apache Full'
验证防火墙规则是否生效:
sudo ufw status
应显示“Apache Full”为“ALLOW”。
虚拟主机允许在同一台服务器上托管多个域名/网站。步骤如下:
在/etc/apache2/sites-available/
目录下新建配置文件(如example.com.conf
):
sudo nano /etc/apache2/sites-available/example.com.conf
添加以下内容(替换example.com
为你的域名,/var/www/example.com/public_html
为网站根目录):
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com # 可选:域名别名
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com/public_html # 将所有者设为当前用户
sudo chmod -R 755 /var/www/example.com # 设置目录权限
sudo a2ensite example.com.conf # 启用虚拟主机
sudo systemctl reload apache2 # 重载Apache使配置生效
若不再需要默认的Apache页面,可禁用000-default.conf
:
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
Apache的功能通过模块扩展,常见需启用的模块:
sudo a2enmod ssl
sudo a2enmod rewrite
启用模块后需重载Apache:
sudo systemctl reload apache2
安装Certbot工具:
sudo apt install certbot python3-certbot-apache
运行Certbot为域名配置SSL:
sudo certbot --apache -d example.com -d www.example.com
按提示操作(如确认域名所有权),Certbot会自动修改Apache配置并启用HTTPS。
若需自定义证书,可将私钥(apache.key
)和证书(apache.crt
)放置在/etc/apache2/ssl/
目录下,然后编辑虚拟主机配置文件(如example.com-ssl.conf
):
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/example.com/public_html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
</VirtualHost>
启用该配置并重载Apache:
sudo a2ensite example.com-ssl.conf
sudo systemctl reload apache2
在浏览器输入域名(如http://example.com
),应显示网站内容;若配置了SSL,输入https://example.com
应跳转至加密页面。
修改配置文件后,建议用以下命令检查语法是否正确:
sudo apache2ctl configtest
若显示“Syntax OK”,则表示配置无误。
Apache的日志文件位于/var/log/apache2/
目录,包括:
access.log
(记录用户访问信息)error.log
(记录服务器错误)tail
命令实时查看日志:sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/apache2/error.log
以上步骤覆盖了Ubuntu上Apache的基本配置流程,可根据实际需求扩展(如配置CGI、负载均衡、缓存等)。配置前建议备份原有文件,避免误操作导致服务中断。