我最初以为我遇到了这个问题:
https://stackoverflow.com/questions/28572629/a2ensite-site-does-not-exist-error-even-with-conf-file
但那对我没有帮助。
我在这里:
/etc/apache2/sites-enabled
我知道 a2ensite 的路径:
which a2ensite
/usr/sbin/a2ensite
我使用这个测试了配置文件:
apachectl configtest
我得到:
Syntax OK
我有这个文件:
ralph.stagingv2.example.conf
开头是:
ServerName ralph.stagingv2.example.com
DocumentRoot "/home/ralph/example/current/web"
DirectoryIndex index.php
我使用以下命令创建了 DocumentRoot:
mkdir -p /home/ralph/example/current/web
我将权限更改为我们在 AWS 上使用的用户:
chown -R ubuntu /home/ralph/
chgrp -R www-data /home/ralph/
但当我这样做时:
a2ensite ralph.stagingv2.example
我得到:
ERROR: Site ralph.stagingv2.example does not exist!
我错过了什么?
答案1
a2ensite
/etc/apache2/sites-enabled
是一个脚本,它创建指向 中的 .conf 文件的符号链接/etc/apache2/sites-available
。
为了正常工作,你的 .conf 文件必须位于“sites-available”目录中,即
/etc/apache2/sites-available/ralph.stagingv2.example.conf
您实际上不应该在/etc/apache2/sites-enabled
目录中“放置”任何配置文件。