#php #wordpress #include
#php #wordpress #включить
Вопрос:
Здесь полный новичок, так что принимайте это как хотите…
Я делаю обновление сайта прямо сейчас, и все работает нормально, за исключением…
У меня установлена WordPress в подкаталоге, и теперь, когда я запустил основной сайт, я получаю
include(/settings.php) [function.include]: failed to open stream: No such file or directory
и
include() [function.include]: Failed opening '/settings.php' for inclusion (include_path='.:')
при включении из подкаталога. Я играл с установкой разных include_path
настроек, я точно знаю, что файлы там есть (они включаются без проблем из корневого каталога), и я не менял никаких разрешений или чего-либо еще во время развертывания сайта.
Пожалуйста, дайте мне знать, если этот вопрос некорректен, или неуместен, или слишком расплывчат, или что у вас есть — первое сообщение после месяцев поиска в Google и сокрытия.
заранее спасибо!
Комментарии:
1. Черт возьми, совершенно очевидный, но в то же время на мгновение хитроумно ускользающий ответ заключался в том, что установка WordPress в своей великой мудрости устанавливает корневой каталог своих файлов в свой собственный корневой каталог, поэтому попытка изменить это устранила бы эту маленькую проблему, но, вероятно, полностью уничтожила бы все, что WP попытался бы сделать на моем сайте. Разбираюсь с этим в каждом конкретном случае, заставляя include переходить на шаг к root with ../
Ответ №1:
Вероятно, вы используете php в среде с привязкой к сети, поэтому корневой путь сервера не совпадает с корневым путем скрипта.
Что касается проблемы с областью видимости переменных, не могли бы вы опубликовать какой-нибудь пример кода?
Комментарии:
1. Проблема с областью видимости переменных не является проблемой. Хотя я хотел бы потратить время на выяснение, почему это произошло, на самом деле это часть остатков тестирования основного сайта в подкаталоге beta и может быть удалено теперь, когда я перешел на root для сайта. Крафт, уходи! Для потомков я включаю эти два файла в index.php , в таком порядке: header.php , и trace.php . header.php определяет
$linkHome
, trace.php ссылается на него, но выдаетUndefined variable: linkHome in....trace.php
2. Прохладный. Если вам понадобится помощь с проблемами области позже, я бы рекомендовал опубликовать другой вопрос с примером кода. Приветствия!
Ответ №2:
«/settings.php «указывает на корень вашего сервера. Это должно быть «settings.php «если это находится по тому же пути, и это должно быть в кавычках.
Приветствия
Комментарии:
1. он находится в корневом каталоге сервера, и ошибка удаляет из него кавычки. код include является
include( "/settings.php" );
2. О, хорошо. Вы пробовали менять разрешения на нем? Запустите chmod 755 /settings.php из консоли thr
3. хорошая идея, но… не сработало. та же ошибка. файлы нормально включаются, когда я включаю их из файла в корневом каталоге, но не из этого подкаталога
4. Можете ли вы попробовать это? die( file_get_contents( «/settings.php » ) ); это должно выдать вам содержимое файла.
5. Я предполагаю, что вы, возможно, используете php с chrooted, что означает, что он обрабатывает / как каталог, который на самом деле не является корневым каталогом вашего сервера. Вам нужно выяснить, так ли это
Ответ №3:
Я бы рекомендовал добавить define('WP_DEBUG', true);
в ваш wp-config.php файл и отчет с дополнительной информацией. Обязательно отменяйте это при получении информации для отладки, поскольку наличие этого на действующем сайте может представлять угрозу безопасности. Я просто просматриваю весь свой каталог WP для include( "/settings.php" );
и ничего не могу найти, что заставляет меня думать, что это может быть проблема с плагином, темой или другим пользовательским кодом. Вы могли бы устранить это, отключив все ваши плагины, проверив, работает ли сайт снова, а затем тщательно включая ваши плагины по отдельности, пока не найдете виновника.
Указывает ли полученное вами сообщение об ошибке на конкретный файл и номер строки? Это может помочь устранить проблему.
Комментарии:
1. о, это указывает именно на те строки в файлах, которые являются оскорбительными. это определенно мой пользовательский код — это часть того, как я интегрирую код блога с основным кодом моего сайта. вместо копирования файлов, составляющих оболочку для моего основного сайта, я включаю их из файлов WordPress. как указал Джуанд , в этой части моего сайта (вложенные папки WordPress) root не является корневым, и это, вероятно, установлено где-то глубоко в файлах конфигурации WP.
2. Я надеюсь, у вас все получилось! Я думал, что вы не знаете, откуда это берется, но, к сожалению, вы знаете, откуда это берется, и не знаете, как это исправить … это хуже всего. Удачи.