Установка SEO Wordpress (немногие другие, но не все плагины) дает следующую консольную ошибку:
GET http://craigmdennis.com/content/plugins/nfs/c08/h04/mnt/152547/domains/craigmdennis.com/html/content/plugins/wordpress-seo/js/wp-seo-admin-global.js?ver=1.2.5 404 (Not Found)
По некоторым причинам это перечисляет полный путь сервера после моего URL. Это кажется как будто /nfs/c08/h04/mnt/152547/domains/craigmdennis.com/html/content/plugins/
или http://craigmdennis.com/content/plugins/
не должен присутствовать в URL.
Вот структура каталогов (отметьте пользовательский каталог содержания):
wp/ content/ content/themes/ content/plugins/ .htaccess index.php wp-config.php
Я не выполняю MU. У меня также есть субдомен для медиа (не должен производить проблему, но я перечисляю ее для completedness),
Вот соответствующие части моего wp-config.php файла:
define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/wp'); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/content'); define('WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/content');
Кто-либо знает то, что продолжается здесь?Спасибо.
[РЕДАКТИРОВАНИЕ] я думаю, что оно связано с __FILE__
и не DOCUMENT_ROOT как плагины все использование __FILE__
получить имя каталога. Это обеспечивает /nfs/c08/h04/mnt/
вместо /home/
.
Когда я повторяю местоположение plugins_url (), я добираюсь /home/152547/domains/dev.craigmdennis.com/html/content/plugins
который корректен, но когда я передаю в ФАЙЛЕ в качестве параметра, я получаю вышеупомянутое /nfs/c08/h04/mnt/152547/domains/dev.craigmdennis.com/html/content/plugins/{plugin-folder}
.
Мог это быть чем-то, чтобы сделать с PHP разрешение псевдонимов для __FILE__
Это объяснило бы, почему это работает над моим локальным сервером (без псевдонимов) и не делает на Храме Медиа (который может исказить /nfs/c08/h04/mnt/
для /home/
Действительно ли это - проблема Wordpress или проблема о моем сервере?
Ошибка является результатом php __FILE__
разрешение любых псевдонимов или символьных ссылок на сервере.
Решение состоит в том, чтобы установить define('WP_CONTENT_DIR', dirname(__FILE__) . '/content');
таким образом, это - также абсолютный путь к файлу на сервере после разрешения псевдонимов.
См.: http://php.net/manual/en/language.constants.predefined.php#104842
Учитывая, что js местоположение определяется следующим образом:
$js_location = WPSEO_URL . 'js/wp-seo-admin-global.js'
где:
WPSEO_URL = WP_PLUGIN_URL . '/' . <WP_SEO_PLUGIN_PATH> . '/'
Я подозреваю, что проблема связана с деривацией <WP_SEO_PLUGIN_PATH>
. Это значение определяется кодом в функции plugins_url()
найденный в wp-includes\link-template.php
При отладке той функции она может привести к причине почему <WP_SEO_PLUGIN_PATH>
производит неправильное значение: 'nfs/c08/h04/mnt/152547/domains/craigmdennis.com/html/content/plugins/wordpress-seo'