我有一个带有 Dreamhost 的虚拟专用服务器。我正在尝试创建一个我的所有域都可以访问的共享文件夹。在该文件夹中,我想放置 PHP 类,甚至是 javascript 之类的静态文件。
我已经创建了一个与我的域文件夹处于同一级别的目录。我想通过这样的方式调用文件... /home/username/shared/file.php
。然而这不起作用,我希望一些魔法(比如 .htaccess 可能)能让这项工作成功。
编辑:哎呀,好的,我可以使用上面的方法包含 PHP 文件。如何包含同一目录中的静态文件,如 Javascript、CSS、图像等?
这有效:
<?php include('/home/username/shared/file.php'); ?>
这不起作用:
<link rel="stylesheet" type="text/css" href="/home/username/shared/reset.css" media="screen" />
或者,我意识到我可以将静态文件放在域中,然后简单地指向它们,但我想知道如何使其他配置工作。
最佳答案
你应该高兴<link rel="stylesheet" type="text/css" href="/home/username/shared/reset.css" media="screen" />
不工作。如果是这样,您将面临很大的安全漏洞。
正确的方法是在文档根目录中为该共享目录创建一个符号库,或者使用别名。
符号链接(symbolic link)方法
在 shell 中运行以下命令:
ln -s /home/username/shared /home/target/
它将创建一个名为 /home/target/shared
的符号链接(symbolic link),指向/home/username/shared
。您可能需要添加 Options +FollowSymLinks
指令到您的服务器配置(或 .htaccess
文件)
别名方法
此方法需要更改您的服务器配置(例如httpd.conf)。添加 Alias
指令:
Alias /shared /home/username/target
注意:这仅用于通过服务器发出的请求(例如 http://example/shared/reset.css
),而不用于 PHP 文件。在 PHP 文件中,您必须使用完整路径 ( /home/username/shared/file.php
)
您选择哪种方法取决于您。后者更容易配置,因为您不必担心权限/所有权。如果您确实需要使用/home/target/shared/file.php
,则可以使用前者。 .
关于php - 如何在 Dreamhost 上为多个域创建共享文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882496/