在Apache 2.2下,我通常从/ tmp / checkouts开发Web应用程序。安装香草版Ubuntu 18.10的结果为me apache 2.4.34-1ubuntu2
。我正在使用2.4 Require指令:
Alias /tmp/checkouts /tmp/checkouts
<Directory /tmp/checkouts>
Options Indexes FollowSymLinks MultiViews
DirectoryIndex Overview index
AllowOverride All
Require all granted
</Directory>
,但始终得到“在此服务器上找不到请求的URL / tmp / checkouts /”。相同的指令在/ home / eric / checkouts中起作用。我能够进行视频结帐,并可以从/ home / checkouts,/ checkouts和/ t2 / checkouts提供服务,其中/ t2与/ tmp具有相同的权限。
我目前正在从/ t2服务,并且将/ tmp / checkouts符号链接到/ t2 / checkouts(因此不必重新编程手指)。我尝试进行交换,以使/ t2 / checkouts与/ tmp / checkouts符号链接,为两者都添加<Directory>
块,而/ t2 / checkouts块包括Options FollowSymLinks
,但在我的error.log中(使用LogLevel调试):Symbolic link not allowed or link target not accessible: /t2/checkouts
。
是否特别禁止从/ tmp提供apache2.4(的Ubuntu版本)?除了我的/etc/apache2
conf(以及与此文件的sites-enabled
符号链接)之外,sites-available
下的任何文件中都没有看到“ tmp”。我还确保在任何conf目录中都没有emacs丢包(~
文件)。
答案 0 :(得分:1)
系统单元/lib/systemd/system/apache2.service
配置有PrivateTmp=true
,security feature告诉systemd
在/tmp/systemd-private-59bcc3ad6775562f845953cf01624225-apache2.service-3Rtcsk/tmp
上安装隔离的目录,例如/tmp
apache2
进程及其子级的文件系统名称空间中。
将sudo ls /proc/$(cat /run/apache2/apache2.pid)/root/tmp
与sudo ls /tmp
进行比较。
我建议您选择其他位置。 /srv
中的某个地方很典型。