对某些CMS或Framework的多个实例使用符号链接

时间:2016-05-25 17:42:28

标签: php linux wordpress nginx

我想以一种方式设置CMS的多个实例,这些实例符号链接到有问题框架的“静态”部分的资源。

在这种情况下,我尝试在Arch Linux上使用Wordpress 4.5.2,使用nginx 1.10.0php 7.0.6运行MariaDB 10.1.14。所以我想通过引用获得除wp-content/wp-config.php的内容之外的所有内容:

$ ls -l /usr/share/nginx/html/wdev/wptest
total 16
lrwxrwxrwx  1 psi psi    46 May 25 19:15 index.php -> /usr/share/nginx/html/wdev/wordpress/index.php
lrwxrwxrwx  1 psi psi    48 May 25 19:15 license.txt -> /usr/share/nginx/html/wdev/wordpress/license.txt
lrwxrwxrwx  1 psi psi    48 May 25 19:15 readme.html -> /usr/share/nginx/html/wdev/wordpress/readme.html
lrwxrwxrwx  1 psi psi    52 May 25 19:15 wp-activate.php -> /usr/share/nginx/html/wdev/wordpress/wp-activate.php
lrwxrwxrwx  1 psi psi    45 May 25 19:15 wp-admin -> /usr/share/nginx/html/wdev/wordpress/wp-admin
lrwxrwxrwx  1 psi psi    55 May 25 19:15 wp-blog-header.php -> /usr/share/nginx/html/wdev/wordpress/wp-blog-header.php
lrwxrwxrwx  1 psi psi    57 May 25 19:15 wp-comments-post.php -> /usr/share/nginx/html/wdev/wordpress/wp-comments-post.php
-rw-r--r--  1 psi http 3092 May 25 04:08 wp-config.php
drwxr-xr-x  4 psi psi  4096 May 25 19:15 wp-content
lrwxrwxrwx  1 psi psi    48 May 25 19:15 wp-cron.php -> /usr/share/nginx/html/wdev/wordpress/wp-cron.php
lrwxrwxrwx  1 psi psi    48 May 25 19:15 wp-includes -> /usr/share/nginx/html/wdev/wordpress/wp-includes
lrwxrwxrwx  1 psi psi    54 May 25 19:15 wp-links-opml.php -> /usr/share/nginx/html/wdev/wordpress/wp-links-opml.php
lrwxrwxrwx  1 psi psi    48 May 25 19:15 wp-load.php -> /usr/share/nginx/html/wdev/wordpress/wp-load.php
lrwxrwxrwx  1 psi psi    49 May 25 19:15 wp-login.php -> /usr/share/nginx/html/wdev/wordpress/wp-login.php
lrwxrwxrwx  1 psi psi    48 May 25 19:15 wp-mail.php -> /usr/share/nginx/html/wdev/wordpress/wp-mail.php
lrwxrwxrwx  1 psi psi    52 May 25 19:15 wp-settings.php -> /usr/share/nginx/html/wdev/wordpress/wp-settings.php
lrwxrwxrwx  1 psi psi    50 May 25 19:15 wp-signup.php -> /usr/share/nginx/html/wdev/wordpress/wp-signup.php
lrwxrwxrwx  1 psi psi    53 May 25 19:15 wp-trackback.php -> /usr/share/nginx/html/wdev/wordpress/wp-trackback.php
lrwxrwxrwx  1 psi psi    47 May 25 19:15 xmlrpc.php -> /usr/share/nginx/html/wdev/wordpress/xmlrpc.php

作为“控制组”,我有另一个实例testpress没有符号链接,基本上是cp -R /usr/share/nginx/html/wdev/wordpress/ /usr/share/nginx/html/wdev/testpress

现在testpress实例的行为和安装都很好,但wptest根本没有。到目前为止最引人注目的两个问题是:

  • 使用指向同一数据库的testpress wp-config.php时,它无法识别现有安装,但始终直接进入wp-admin/setup-config.php(安装程序)
  • 尝试安装时会打开数据库配置页面setup-config.php?step=1,但在setup-config.php?step=2之后使用nginx打印“发生错误。抱歉,您要查找的页面目前无法使用。请稍后再试。”但它在错误日志中没有产生任何输出(nginx和php)。

我可能应该放弃这个而不关心那几百MB混乱我的存储空间。但是我现在已经花了足够的时间对它感到非常恼火,因此任何有关排序的提示或想法都会受到超级赞赏。

到目前为止我唯一想到的是,使用像__FILE__这样的PHP魔术常量可能会在这样的环境中造成混乱。

1 个答案:

答案 0 :(得分:0)

好的,我的具体用例的答案是php解析了它的魔术常量的符号链接,因此define( 'ABSPATH', dirname(__FILE__) . '/' );中设置的wp-load.php变为/usr/share/nginx/html/wdev/wordpress/

最终会引用引用的代码库' dir作为工作目录,可以这么说。

这会打开follow up question.