php.ini не будет работать вне каталога public_html

#php

#php

Вопрос:

Просто очень быстрый вопрос о файле php.ini. Я создал свой собственный в своем файле php.ini, и он отлично работает, если я помещу его в свой каталог ‘public_html’. Однако проблема в том, что его, очевидно, можно просмотреть в браузере через HTTP-запросы.

Итак, я пытаюсь переместить его за пределы моего каталога ‘public_html’, однако, похоже, это не работает, когда вне моего ‘public_html’.

Я знаю, что, возможно, мог бы установить в my .htaccess следующее, чтобы избежать его чтения:

 <Files php.ini>
  Order allow,deny
  Deny from all
</Files>
  

Однако я не хочу этого делать, поскольку мой php.ini все еще может кэшироваться Google, если он находится в каталоге ‘public_html’. Есть ли какие-либо предложения, чтобы заставить его работать вне моего public_html?

Я использую сервер Apache. Спасибо за любые предложения

Комментарии:

1. Какой веб-сервер вы используете? Apache?

2. Директива deny остановит веб-сервер от обслуживания этого файла. Google не может обойти это.

3. Почему бы вам не поместить это в свой httpd.conf и не заблокировать весь доступ к php.ini?

4. У меня нет доступа к httpd.conf

Ответ №1:

Вы можете использовать PHPRC переменную среды … смотрите документацию:

http://www.php.net/manual/en/configuration.file.php

Ответ №2:

Он не может быть кэширован Google, если вы блокируете подобным образом в .htaccess

Комментарии:

1. Google не всегда прослушивает .htaccess просто кэширует то, что ему нравится, что я нашел

2. @daza: вы совершенно не правы. google не может определить, что веб-сервер НЕ отправляет

3. Хорошо, значит, ‘.htaccess’ тоже должен быть в каталоге public_html, я полагаю?

4. -1, извините, я ненавижу это делать, но я должен был. Я имею в виду, я единственный, кто считает, что наличие php.ini в папке, доступной через Интернет, совершенно нелепо? Это исправление, которое не решает реальную проблему: php.ini находится в веб-папке!

5. @stef: Вам свободно разрешено значение -1. Но вы поняли, что с этим .htaccess вы не оставляете php.ini открытым для общественности?

Ответ №3:

Два предложения:

  1. Убедитесь, что Apache может найти ваш php.ini (PHPINIDIR /path /где / находится / php.ini)
  2. Убедитесь, что файл доступен для чтения пользователю веб-сервера.

Комментарии:

1. Как я могу гарантировать, что Apache сможет найти мой php.ini, есть ли способ указать местоположение с помощью настройки или PHP-скрипта с использованием ini_set () и т.д.?

2. Вы можете проверить файлы журнала Apache, чтобы увидеть, отображается ли ошибка при запуске Apache. Однако, если вы укажете PHPINIDIR в файле httpd.conf, как указано выше, Apache должен искать в правильном месте.

Ответ №4:

Как получилось, что ваш php.ini оказался в папке, доступной веб-серверу? Я впервые слышу о такой ситуации.

Я долго думал о том, как вам удалось это сделать, и единственный ответ, который я придумал, заключается в том, что вы создали виртуальный хостинг в папке php. Если это так, создайте другой vhost по пути php.ini и удалите вредоносный vhost. Смотрите Этот пост для примеров.

Комментарии:

1. Извините, допустил ошибку в вопросе. Я не создавал свой сервер, я создал файл php.ini в моем каталоге public_html, вот как он туда попал