Mysql 主题的ApacheFollowsymlinks,使用MacLion

Mysql 主题的ApacheFollowsymlinks,使用MacLion,mysql,apache,wordpress,symlink,Mysql,Apache,Wordpress,Symlink,我已经在我的Mac(lion)上本地安装了wordpress 启用vhost后,我在hosts文件中创建了一个条目,将“wordpress”指向127.0.0.1 我的vhosts.conf包含: <VirtualHost *:80> DocumentRoot "/Users/alex/Sites/wordpress" ServerName wordpress <Directory /> Options FollowSymL

我已经在我的Mac(lion)上本地安装了wordpress 启用vhost后,我在hosts文件中创建了一个条目,将“wordpress”指向127.0.0.1

我的vhosts.conf包含:

<VirtualHost *:80>
    DocumentRoot "/Users/alex/Sites/wordpress"
    ServerName wordpress
    <Directory />
            Options FollowSymLinks  
            AllowOverride None
    </Directory>
</VirtualHost>

DocumentRoot“/用户/alex/Sites/wordpress”
服务器名wordpress
选项如下符号链接
不允许超限
这是可行的,我可以访问默认的wordpress安装,没有问题

基本上,在我的wp content/themes文件夹中,我放置了一个符号链接(例如)
/用户/Alex/Projects/SomeTheme/

此文件夹包含我的主题文件

但是,它只是没有检测到主题(不会显示在WP admin中)
如果我将文件夹复制到wp content/themes,那么它可以工作。没有跟踪符号链接

在my/etc/apache2/users/alex.conf中,我有:

<Directory "/Users/alex/Sites/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

选项索引多视图跟随符号链接
不允许超限
命令允许,拒绝
通融

很明显,我在某个地方遗漏了一些东西….

Wordpress在使用符号链接时出现问题。这是由于PHP如何处理
\uuuu文件\uuuuu
魔法常量。在PHP中,
\uuuuuu FILE\uuuuu
返回运行它的文件的绝对路径。不幸的是,它在这个过程中忽略了符号链接。(即,虽然您可能通过
/opt/wordpress/instance/wp content/sym themes/pretty
访问文件,并且文件实际上位于
/opt/content/themes/pretty
中,但当调用
\uu file\uuuuuuuuuu
时,而不是返回
/opt/wordpress/instance/wp content/sym themes/pretty
,而不是wordpress所期望的返回
,而是打开
/opt/content/themes/pretty

Wordpress在其代码中大量使用了
\uuuuuuuuuuuuuuuuuuuuu
,还使用了
basename()
函数,用于将wordpress根目录与主题目录进行比较,以获取主题目录的名称,例如解析文件。由于PHP如何处理
\uuuuuu文件\uuuuuuuu
魔法常量,wordpress尝试匹配路径,但由于路径是两个不同的路径,因此它只会将一个路径附加到另一个路径,最终导致这是一条通往不存在的事物的道路


除非您计划执行大量代码管理,否则我强烈建议不要在wordpress结构中的任何位置使用符号链接。

wordpress在使用符号链接时存在问题。这是由于PHP如何处理
\uuuuuu文件\uuuuuuuu
魔法常量。在PHP中,
\uuuuuu文件\uuuuuuuuuu
返回它所运行的文件的绝对路径。不幸的是,我t在该过程中忽略符号链接。(即,虽然您可能通过
/opt/wordpress/instance/wp content/sym themes/pretty
访问文件,并且文件实际上位于
/opt/content/themes/pretty
中,但当调用
\uu file\uuuuuuuuuu
时,而不是返回
/opt/wordpress/instance/wp content/sym themes/pretty
,而不是wordpress所期望的返回
,而是打开
/opt/content/themes/pretty

Wordpress在其代码中大量使用了
\uuuuuuuuuuuuuuuuuuuuu
,还使用了
basename()
函数,用于将wordpress根目录与主题目录进行比较,以获取主题目录的名称,例如解析文件。由于PHP如何处理
\uuuuuu文件\uuuuuuuu
魔法常量,wordpress尝试匹配路径,但由于路径是两个不同的路径,因此它只会将一个路径附加到另一个路径,最终导致这是一条通往不存在的事物的道路


除非您计划执行大量代码管理,否则我强烈建议不要在wordpress结构中的任何位置使用符号链接。

正如@Drahkar所指出的,符号链接在wordpress中很难使用。要更改主题目录,请使用一个简单的插件:

add_filter('theme_root','sp8963532_theme_root');
函数sp8963532_主题_根()
{
返回'FULL_LOCAL_PATH_TO_YOUR_THEMES_DIRECTORY';
}
添加过滤器(“主题根uri”、“sp8963532主题根uri”);
函数sp8963532_主题_根_uri()
{
返回“URI到您的主题目录”;
}

将代码复制到一个文件中,并将文件放入
wp content/mu plugins/

正如@Drahkar所指出的,符号链接在WordPress中很难实现。要更改主题目录,请使用一个简单的插件:

add_filter('theme_root','sp8963532_theme_root');
函数sp8963532_主题_根()
{
返回'FULL_LOCAL_PATH_TO_YOUR_THEMES_DIRECTORY';
}
添加过滤器(“主题根uri”、“sp8963532主题根uri”);
函数sp8963532_主题_根_uri()
{
返回“URI到您的主题目录”;
}

将代码复制到一个文件中,然后将文件放入
wp content/mu plugins/

我认为servervault上的人可能会提供帮助..是的..我认为我在错误的网站上发布了此内容..可以移动吗?我认为servervault上的人可能会提供帮助..是的..我认为我在错误的网站上发布了此内容..可以移动吗?这不会重新发布解决缓存之类的问题。老实说,最好不要在Wordpress中使用符号链接。此解决方案是符号链接的替代方案。这里缓存不是问题。请看一个简单的例子。这不会解决缓存之类的问题。老实说,最好不要在Wordpress中使用符号链接。此解决方案是symli的替代方案缓存在这里不是问题。看一个类似的例子。