Как заставить DOCUMENT_ROOT работать как на локальном хосте, так и на веб-хосте? - PullRequest
2 голосов
/ 13 июня 2009

У меня есть плагин WordPress, который я хотел бы работать как на локальном хосте, так и при развертывании без изменений, но я не могу установить местоположение для каталога с помощью одного оператора.

Я хотел бы сделать это:

$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache');

Пока это работает на веб-хостинге. На localhost выдает эту ошибку:

C:/xampp/htdocs/wp-content/cache/a547b8792c3144c98549be23ef1465e7.spc is not writeable

На локальном хосте мне нужно установить его так, чтобы он работал:

$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/mysite/wp-content/cache');

Конечно, должно быть что-то, что работает как на локальном хосте, так и на веб-хосте!

Спасибо.

Ответы [ 2 ]

3 голосов
/ 20 мая 2011

Похоже, OP заинтересован в предопределенных константах WP_CONTENT_DIR или WP_PLUGIN_DIR.

Это для установки Wordpress. Но для ситуаций без WP я нашел следующий фрагмент кода полезным:

$docroot = realpath((getenv('DOCUMENT_ROOT') && ereg('^'.preg_quote(realpath(getenv('DOCUMENT_ROOT'))), realpath(__FILE__))) ? getenv('DOCUMENT_ROOT') : str_replace(dirname(@$_SERVER['PHP_SELF']), '', str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__))));

Это в аналогичных ситуациях, когда я хотел, чтобы все работало как в среде localhost / dev, так и в среде сервера, где местоположения документирования различались. НО еще более важно то, что это работает в ситуациях, когда мне нужно запустить автономный файл PHP.

2 голосов
/ 13 июня 2009

Проверьте это Определение плагинов и каталогов контента WP уже имеет это.

...