Настроить PHP легко. Вы можете изменить практически любой аспект интерпретатора в файле конфигурации php.ini, например, изменить обработку ошибок, увеличить использование памяти и т. Д.
К сожалению, могут возникнуть проблемы, когда вы перемещаете свое приложение в среду живого хостинга или распространяете код среди клиентов. Интернет-провайдеры обычно блокируют файл конфигурации php.ini — особенно на виртуальном хостинге. Это может привести к сбою приложения.
К счастью, нет необходимости переходить на дорогой выделенный сервер. Два метода ниже позволяют вам переопределить настройки PHP в вашем приложении.
Директивы модуля Apache
Большинство интернет-провайдеров предоставляют хостинг веб-серверов Apache на платформах Linux или Unix. Надеемся, что они также предоставили привилегии «AllowOverride Options» или «AllowOverride All» в конфигурации Apache httpd.conf. Это позволяет вам создать файл .htaccess в корневой папке вашего приложения, переопределяя настройки Apache и PHP по умолчанию.
В .htaccess разрешены две PHP-директивы:
- php_flag <логическое-имя-флага> вкл | выкл
- php_value <имя-флага> <значение-флага>
php_flag должен использоваться для значений вкл / выкл, тогда как php_value может использоваться для любых других. Например, следующий файл .htaccess отключит глобальные переменные, установит максимальный размер загружаемого файла 20 МБ и позволит PHP-сценариям работать в течение 10 минут (600 секунд):
php_flag register_globals off
php_value upload_max_filesize 20M
php_value max_execution_time 600
Однако решение не будет работать во всех установках Apache или других веб-серверах, таких как IIS.
PHP Runtime Configuration
Более переносимым, независимым от сервера решением является функция ini_set в PHP. — это позволяет вам изменять настройки в вашем приложении во время выполнения. Функция принимает два аргумента: ini_set ( flag-name , flag-value ) , например
<?php
ini_set('register_globals', 0);
ini_set('upload_max_filesize', '20M');
ini_set('max_execution_time', 600);
?>
Логические значения, числа и строки могут использоваться взаимозаменяемо — PHP попытается привести значение к соответствующему типу.
Доступны несколько связанных функций:
ini_get ( flag-name )
Возвращает значение конфигурации. Я бы порекомендовал проверить изменения вашей конфигурации и принять соответствующие меры. Не думайте, что ini_get () всегда будет работать.
ini_get_all ([ расширение ])
Возвращает все значения конфигурации в виде ассоциативного массива. Необязательный параметр расширения возвращает параметры, специфичные для этого расширения, например, «allow_url_fopen».
get_cfg_var ( flag-name )
Возвращает исходное значение конфигурации из php.ini (не любые переопределения, установленные в .htaccess или ini_set).
ini_restore ( флаг-имя )
Возвращает опцию конфигурации к ее первоначальному значению.
Скоро: как работать с незагруженными расширениями PHP .
Конфигурация PHP когда-либо вызывала у вас проблемы при переносе приложения на другой сервер?