Могу ли я использовать .ini для файла конфигурации в PHP?
Вопрос
Мой друг попросил меня обновить приложение PHP, которое использует его компания. Я обнаружил, что приложение использует расширение .ini для файла конфигурации БД. Файл содержит адрес хоста DB, имя пользователя и пароль !! Проблема в том, что я могу получить доступ к файлу на веб-браузерах.
Я пытаюсь понять, почему. Есть ли какие -либо конкретные причины использовать обычный файл PHP с расширением .ini ??? Я просто не понимаю.
Решение
Читаемость - одна из основных причин, по которой я использовал File -File для конфигураций сценариев PHP в прошлом. Люди, которые не являются программистами, сталкивались с файлом INI, по крайней мере, один раз и могут понять, что намного проще, чем даже простой файл PHP.
Проблема файлов INI, читаемых всеми, может быть предотвращена конфигурацией на стороне сервера или, даже лучше, просто добавив одну строку кода в строку комментариев в верхней части файла.
Таким образом, PHP выведет «прямой доступ», запрещенный », когда файл будет доступен через браузер, а файл INI будет продолжать функционировать, как и раньше.
Другие советы
Вы можете использовать Zend_config_ini. Анкет Это удобно и легко. Просто не размещайте файлы конфигурации, где любой пользователь может достичь его (например, public_html).
Файлы INI-это лишь один из способов борьбы с конфигурацией, возможно, разработчик поступил на фоне разработчиков Windows и использовал все, с чем он был знаком :). Кроме того, PHP предлагает удобный способ анализа файлов INI через parse_ini_file функция
Вы захотите убедиться, что файл .ini не доступен из Интернета. Переместите его ниже докровута, чтобы ваш скрипт PHP все еще мог получить к нему доступ, но случайные браузеры не могут.
Для того, что это стоит, PHP традиционно использовал php.ini
Для настройки PHP. Так что, может быть, это какая -то наследие?
Похоже, это просто желание бывшего программиста использовать другой тип файла для конфигурации. Если для этого файла нет другого использования, переименовать его в *.php и забудьте об этом. Если нет, настройте WebServer, чтобы проанализировать INI как PHP или, лучше, перенесите его в каталог, не доступный от веб-сервера.