IN WordPress, .php файлы в папке темы не запускаются, но возвращают ошибку 404

Я нахожусь в среде VPS, поэтому у меня есть root-доступ, кстати.

Поэтому взгляните на эти проблемы: http://www.sonikastudios.com/wp-content/themes/sonikas/scripts/timthumb.php?src=/wp-content/uploads/tedleescreenshot1.jpg&w=100&h=100&zc=1&q = 100

Это возвращает ошибку 404.

Однако, когда я перемещаю timthumb.php в корень сайта, он работает.

Я проверял разрешения файлов / папок, это не проблема. Кроме того, другое созданное PHP изображение, которое я использую для Captcha, делает то же самое …

По сути, это сводится к отсутствию .php-файлов, запущенных из папок. Однако это не проблема, потому что PHP-скрипты, которые у меня есть под / admin / на других сайтах, работают нормально.

Итак … что может вызвать это? Большинство статей в форуме, которые я прочитал, склоняются к проблеме mod_security, но я даже не знаю, с чего начать, поскольку я не эксперт по апачи.

Когда у вас есть root-доступ, попробуйте искать то, что происходит в журналах Apache. Чтобы выполнить последний запрос, вы можете использовать хвост.

Какую версию Apache вы используете? В моей конфигурации Apache 2.2 вы можете следить за журналом ошибок в терминале, вызывая:

tail -f /var/log/httpd/error_log 

Похоже, что в конфигурации Apache 2.2 по умолчанию есть журнал ошибок в /usr/local/apache2/logs/error_log , поэтому моя конфигурация не является значением по умолчанию.

Если у вас нет успеха в журнале ошибок, попробуйте также найти информацию в журнале доступа, местоположение по умолчанию в /usr/local/apache2/logs/access_log .

Такая же ошибка может произойти, когда файл сам по себе также доступен для записи. Убедитесь, что файл 644 и NOT 666!

WordPress, вероятно, использует некоторые правила mod_rewrite для отправки каждого запроса на index.php . И там он анализирует запрос и возвращает код статуса 404, если было запрошено одно из его внутренних компонентов.

Это проблема с файлом .htaccess, созданным WordPress. Он перенаправляет все запросы на ваш сайт, которые не являются wp-admin / или в вашем каталоге uploads, в файл index.php для WordPress (обработчик запроса, который запрашивает сообщения и т. Д.).

В моем случае следующие изменения PERMISSION решили проблему (Timthumb.php):

  1. PHP-скрипт должен быть "644" .
  2. Все родительские каталоги должны быть "755" ; Ни "775" ни "777" .