ubuntu

如何在Ubuntu上配置Apache

小樊
36
2025-09-17 06:39:53
栏目: 智能运维

如何在Ubuntu上配置Apache

1. 安装Apache

首先更新系统软件包列表,然后通过apt安装Apache2:

sudo apt update
sudo apt install apache2

安装完成后,Apache会自动启动。可通过以下命令验证服务状态:

sudo systemctl status apache2

若显示“active (running)”,则表示安装成功。此时在浏览器输入服务器IP地址,应能看到Apache默认欢迎页面。

2. 配置防火墙

若系统启用了ufw防火墙,需允许HTTP(端口80)和HTTPS(端口443)流量通过:

sudo ufw allow 'Apache Full'

验证防火墙规则是否生效:

sudo ufw status

应显示“Apache Full”为“ALLOW”。

3. 配置虚拟主机(托管多网站)

虚拟主机允许在同一台服务器上托管多个域名/网站。步骤如下:

3.1 创建虚拟主机配置文件

/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>

3.2 创建网站根目录并设置权限

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  # 设置目录权限

3.3 启用虚拟主机与重载配置

sudo a2ensite example.com.conf  # 启用虚拟主机
sudo systemctl reload apache2   # 重载Apache使配置生效

3.4 (可选)禁用默认站点

若不再需要默认的Apache页面,可禁用000-default.conf

sudo a2dissite 000-default.conf
sudo systemctl reload apache2

4. 启用必要模块

Apache的功能通过模块扩展,常见需启用的模块:

4.1 启用SSL模块(用于HTTPS)

sudo a2enmod ssl

4.2 启用重写模块(用于URL重写,如WordPress)

sudo a2enmod rewrite

启用模块后需重载Apache:

sudo systemctl reload apache2

5. 配置SSL证书(加密HTTPS)

5.1 使用Let’s Encrypt获取免费证书

安装Certbot工具:

sudo apt install certbot python3-certbot-apache

运行Certbot为域名配置SSL:

sudo certbot --apache -d example.com -d www.example.com

按提示操作(如确认域名所有权),Certbot会自动修改Apache配置并启用HTTPS。

5.2 (可选)手动配置SSL

若需自定义证书,可将私钥(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

6. 测试配置

6.1 验证虚拟主机

在浏览器输入域名(如http://example.com),应显示网站内容;若配置了SSL,输入https://example.com应跳转至加密页面。

6.2 检查配置语法

修改配置文件后,建议用以下命令检查语法是否正确:

sudo apache2ctl configtest

若显示“Syntax OK”,则表示配置无误。

7. 日志管理

Apache的日志文件位于/var/log/apache2/目录,包括:

sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/apache2/error.log

以上步骤覆盖了Ubuntu上Apache的基本配置流程,可根据实际需求扩展(如配置CGI、负载均衡、缓存等)。配置前建议备份原有文件,避免误操作导致服务中断。

0
看了该问题的人还看了