我在 MacOS 主机上运行 Multipass 实例,并将其用作 LAMP 服务器。Multipass 将 ~/Home 目录映射到 MacOS 用户目录,并且我希望在该目录中拥有 public_html 目录,这样我就可以从 MacOS 进行开发,并且更改可以反映在 Ubuntu LAMP 中。
好吧,我已通过运行sudo a2enmod userdir
并注释掉以下内容成功启用了 UserDir:
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
从/etc/apatche2/mods-enabled/php8.1.conf
并替换:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
和
export APACHE_RUN_USER=ubuntu
export APACHE_RUN_GROUP=ubuntu
在/etc/apache2/envvars
有了这些,我现在~/public_html
可以把 html 和 php 文件放进去,它工作正常,但如果我/etc/apache2/mods-enabled/userdir.conf
从编辑/home/*/public_html
它就/home/*/Home/public_html
不起作用!我得到了 403。
public_html及其内部文件的权限如下:
ubuntu@primary:~$ ls -la ~/Home/public_html/
total 12
drwxr-xr-x 1 ubuntu ubuntu 96 Jan 16 18:19 .
drwxr-xr-x 1 ubuntu ubuntu 1792 Jan 16 17:52 ..
-rwxr-xr-x 1 ubuntu ubuntu 17 Jan 16 18:19 test.php
我做错了什么?如何才能达到我在一开始解释的预期结果?
答案1
只需将您想要的任何目录符号链接回 ~/public_html 即可,如下所示:ln -s ~/Home/public_html/ ~/public_html/public_html
解决该问题。