机器详细信息:
- Ubuntu 20.04.3 LTS
- Apache2 2.4.41
- Mariadb 15.1(认为不相关)
我最近按照指南在一台新服务器上安装了 modoboa(邮件服务器)。默认设置使用 nginx 安装,最后确实成功了(至少页面mail.mysite.com
加载成功)。
禁用 nginx 并启用 apache2 后,我创建/etc/apache2/sites-enabled/modoboa.conf
了
<VirtualHost *:80>
ServerName mail.mysite.com
DocumentRoot /srv/modoboa/instance/
Alias /media/ /srv/modoboa/instance/media/
<Directory /srv/modoboa/instance/media>
Require all granted
</Directory>
Alias /sitestatic/ /srv/modoboa/instance/sitestatic/
<Directory /srv/modoboa/instance/sitestatic>
Require all granted
</Directory>
WSGIScriptAlias / /srv/modoboa/instance/instance/wsgi.py
# Pass Authorization header to enable API usage:
WSGIPassAuthorization On
</VirtualHost>
按照 certbot 命令生成以下内容:sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d mail.mysite.com
<IfModule mod_ssl.c>
SSLStaplingCache shmcb:/var/run/apache2/stapling_cache(128000)
<VirtualHost *:443>
ServerName mail.mysite.com
DocumentRoot /srv/modoboa/instance/
Alias /media/ /srv/modoboa/instance/media/
<Directory /srv/modoboa/instance/media>
Require all granted
</Directory>
Alias /sitestatic/ /srv/modoboa/instance/sitestatic/
<Directory /srv/modoboa/instance/sitestatic>
Require all granted
</Directory>
WSGIScriptAlias / /srv/modoboa/instance/instance/wsgi.py
# Pass Authorization header to enable API usage:
WSGIPassAuthorization On
SSLCertificateFile /etc/letsencrypt/live/mail.mysite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.mysite.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Header always set Strict-Transport-Security "max-age=31536000"
SSLUseStapling on
</VirtualHost>
</IfModule>
现在,当我尝试连接时mail.mysite.com
,只收到 403 禁止错误。查看后/var/log/apache2/error.log
我发现:
[Thu Aug 19 20:52:04.159144 2021] [core:notice] [pid 6213] AH00094: Command line: '/usr/sbin/apache2'
[Thu Aug 19 20:52:06.296969 2021] [authz_core:error] [pid 6216] [client 74.206.137.114:49866] AH01630: client denied by server configuration: /srv/modoboa/instance/instance/wsgi.py
环顾四周,我看到了类似的东西这个科幻问题按照这些,我确实将之前的设置更改Order deny,allow Allow from all
为上面显示的设置,但仍然出现相同的错误。
通过观察ls-ls /srv/
我看到的drwxr-xr-x 7 modoboa modoboa 4096 Aug 19 19:42 modoboa
内容,我相信 modoboa 可以很好地完成它自己的工作。
鉴于启用 nginx 后此方法有效,我感觉这与我的 apache2 配置有关,但我真的不知道是什么原因。如果有人对此事有所了解,我将不胜感激。
答案1
看起来你的 vhost 配置中缺少这个定义
<Directory /srv/modoboa/instance/instance>
Require all granted
</Directory>
我也不指望用户权限是 modoboa:modoboa,因为 apache 需要提供这些文件。你可以将它们更改为默认权限。
chown -R www-data:www-data /srv/modoboa