Конфигурирование PHP
Материал из 1GbWiki.
Версия 11:34, 28 февраля 2013 (править) Renton (Обсуждение | вклад) (→UNIX / Apache - CGI) ← К предыдущему изменению |
Текущая версия (08:49, 15 февраля 2018) (править) (отменить) Renton (Обсуждение | вклад) (→Собственный php.ini (если PHP работает в режиме CGI/FastCGI)) |
||
(29 промежуточных версий не показаны.) | |||
Строка 12: | Строка 12: | ||
- | === | + | === Через .htaccess (если PHP работает в режиме модуля к Apache) === |
Параметры прописываются в файле .htaccess, отсутствует знак '''=''' и каждому параметру PHP предшествует специальное слово: '''php_value''' или '''php_flag'''. | Параметры прописываются в файле .htaccess, отсутствует знак '''=''' и каждому параметру PHP предшествует специальное слово: '''php_value''' или '''php_flag'''. | ||
- | + | * '''php_flag''' - указывается тогда, когда параметр PHP может принимать в качестве значения только '''истина''' или '''ложь''' ('''1''' или '''0''', '''true''' или '''false''', '''On''' или '''Off'''); | |
- | + | * '''php_value''' - указывается во всех остальных случаях, например, когда параметр PHP принимает цифровое, строковое значение; | |
'''Пример:''' | '''Пример:''' | ||
- | + | ||
- | + | php_flag allow_url_fopen On | |
- | php_value post_max_size 256M | + | php_value post_max_size 256M |
- | php_flag register_globals Off | + | php_flag register_globals Off |
- | php_value error_reporting 'E_ALL & ~E_NOTICE'</ | + | php_value error_reporting 'E_ALL & ~E_NOTICE' |
- | + | <br /> | |
- | + | <br /> | |
- | + | ||
- | === | + | === Через функцию PHP ''ini_set()'' === |
Вызов данной функции удобно располагать в каком-нибудь конфигурационном скрипте, например, там где прописаны параметры к БД. | Вызов данной функции удобно располагать в каком-нибудь конфигурационном скрипте, например, там где прописаны параметры к БД. | ||
Подробнее см. описание данной функции на сайте разработчиков [http://php.net/ini_set ''ini_set()'']. | Подробнее см. описание данной функции на сайте разработчиков [http://php.net/ini_set ''ini_set()'']. | ||
+ | |||
+ | '''Пример:''' | ||
- | + | ini_set('display_errors', '1'); | |
- | === | + | <br /> |
- | + | <br /> | |
+ | |||
+ | === Собственный php.ini (если PHP работает в режиме CGI/FastCGI) === | ||
'''Пример:''' | '''Пример:''' | ||
- | ---- | ||
- | <code>allow_url_fopen = on<br /> | ||
- | post_max_size = 256M<br /> | ||
- | magic_quotes_gpc = on<br /> | ||
- | magic_quotes_runtime = off<br /> | ||
- | register_globals = on<br /> | ||
- | error_reporting = E_ALL & ~E_NOTICE</code> | ||
- | ---- | ||
- | + | allow_url_fopen = on | |
- | + | post_max_size = 256M | |
+ | magic_quotes_gpc = on | ||
+ | magic_quotes_runtime = off | ||
+ | register_globals = on | ||
+ | error_reporting = E_ALL & ~E_NOTICE | ||
+ | |||
+ | Собственный php.ini не дополняет настройки системного php.ini, поэтому прописав в своем php.ini только одну строку, все остальные параметры будут сброшены в значение по умолчанию. Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог и уже в него вносить изменения. Скопировать правильный php.ini можно такой командой в консоли SSH: | ||
+ | $ <nowiki>cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -m 1 -o \"[[:digit:]]\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/php.ini ~/.php/</nowiki> | ||
+ | <br /> | ||
+ | <br /> | ||
== Как и где менять == | == Как и где менять == | ||
Строка 66: | Строка 71: | ||
- | ==== UNIX / Apache - mod_php ==== | + | ===== UNIX / Apache - mod_php ===== |
* через файл .htaccess; | * через файл .htaccess; | ||
* через функцию ''ini_set()''; | * через функцию ''ini_set()''; | ||
- | Изменения вступают в силу сразу. | ||
- | + | Изменения вступают в силу сразу. | |
- | + | ||
<br /> | <br /> | ||
- | ---- | ||
- | '''Внимание!''' Собственный php.ini полностью перезаписывает системные настройки, указав в нем всего лишь одну директиву, вы сбросите все установки PHP в исходное состояние, например, это повлечет за собой отключение Zend Optimizer, ionCube и т.п.). Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог (см. выше). | ||
- | ---- | ||
<br /> | <br /> | ||
+ | |||
+ | ===== UNIX / Apache - CGI/FastCGI ===== | ||
* через функцию ''ini_set()''; | * через функцию ''ini_set()''; | ||
+ | * через собственный php.ini, расположенный в ~/.php/php.ini | ||
+ | <br /> | ||
- | + | '''ВНИМАНИЕ!''' Собственный php.ini полностью перезаписывает системные настройки, указав в нем всего лишь одну директиву, вы сбросите все установки PHP в исходное состояние, например, это повлечет за собой отключение Zend Optimizer, ionCube и т.п.). Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог и в него вносить изменения. Скопировать можно такой командой: | |
+ | $ <nowiki>cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/php.ini ~/.php/</nowiki> | ||
- | + | <br /> | |
- | + | Изменения вступают в силу '''в течение 15 минут'''. | |
+ | <br /> | ||
+ | <br /> | ||
+ | ''Примечание''. Можно ускорить вступление изменений в силу выполнив команду в шелле: | ||
+ | $ killall -9 php php-cgi | ||
+ | <br /> | ||
- | + | ===== PROSTO.1Gb.ru ===== | |
- | + | * через функцию ini_set(); | |
- | + | ||
- | + | ||
- | ==== PROSTO.1Gb.ru ==== | + | |
- | + | ||
- | + | Далеко не все параметры можно изменить через <code>ini_set</code>, поэтому если настройки тарифного плана Вам не подходят, то необходимо установить тариф обычного хостинга.<br /> | |
+ | |||
+ | Также посмотрите эту статью [[Эмуляция auto prepend file на prosto.1gb.ru]] | ||
+ | <br /> | ||
+ | == См. также == | ||
+ | * [[Юникс шелл]] | ||
== Ссылки == | == Ссылки == | ||
- | * [http://ru.php.net/manual/en/ini.list.php Список параметров PHP] - документация на сайте разработчиков. | + | * [http://www.1gb.ru/default.aspx?ti=6&hti=36 Проблема тайм-аута при http upload] (рус.) - статья в базе знаний хостинга 1Gb.ru. |
+ | * [http://www.1gb.ru/default.aspx?ti=6&hti=23 Конфигурирование PHP через .htaccess] (рус.) - статья в базе знаний хостинга 1Gb.ru. | ||
+ | * [http://ru.php.net/manual/en/ini.list.php Список параметров PHP] (англ.) - документация на сайте разработчиков. | ||
[[Категория:Программирование]] | [[Категория:Программирование]] | ||
Строка 102: | Строка 115: | ||
[[Категория:WEB-сервер IIS]] | [[Категория:WEB-сервер IIS]] | ||
[[Категория:WEB-сервер Apache]] | [[Категория:WEB-сервер Apache]] | ||
+ | [[Категория:PHP]] |
Текущая версия
Конфигурирование PHP - это полное изменение или дополнение системных настроек интерпретатора PHP.
Внимание! На хостинге 1Gb.ru конфигурация PHP настроена таким образом, чтобы максимально обеспечить режим совместимости со всеми популярными скриптами и зачастую нет необходимости изменять предустановленные параметры.
Содержание |
[править] Общие сведения
Известны три способа конфигурирования PHP.
[править] Через .htaccess (если PHP работает в режиме модуля к Apache)
Параметры прописываются в файле .htaccess, отсутствует знак = и каждому параметру PHP предшествует специальное слово: php_value или php_flag.
- php_flag - указывается тогда, когда параметр PHP может принимать в качестве значения только истина или ложь (1 или 0, true или false, On или Off);
- php_value - указывается во всех остальных случаях, например, когда параметр PHP принимает цифровое, строковое значение;
Пример:
php_flag allow_url_fopen On php_value post_max_size 256M php_flag register_globals Off php_value error_reporting 'E_ALL & ~E_NOTICE'
[править] Через функцию PHP ini_set()
Вызов данной функции удобно располагать в каком-нибудь конфигурационном скрипте, например, там где прописаны параметры к БД. Подробнее см. описание данной функции на сайте разработчиков ini_set().
Пример:
ini_set('display_errors', '1');
[править] Собственный php.ini (если PHP работает в режиме CGI/FastCGI)
Пример:
allow_url_fopen = on post_max_size = 256M magic_quotes_gpc = on magic_quotes_runtime = off register_globals = on error_reporting = E_ALL & ~E_NOTICE
Собственный php.ini не дополняет настройки системного php.ini, поэтому прописав в своем php.ini только одну строку, все остальные параметры будут сброшены в значение по умолчанию. Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог и уже в него вносить изменения. Скопировать правильный php.ini можно такой командой в консоли SSH:
$ cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -m 1 -o \"[[:digit:]]\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/php.ini ~/.php/
[править] Как и где менять
[править] Windows / IIS
В такой конфигурации PHP работает только как CGI приложение.
- через собственный php.ini (изменения в него может вносить только тех. поддержка хостинга);
- через функцию ini_set();
[править] Windows / Apache
На данной платформе PHP всегда работает как модуль к WEB-серверу Apache.
- через файл .htaccess;
- через функцию ini_set();
Изменения вступают в силу сразу.
[править] UNIX / Apache
На данной платформе PHP может работать в трех режимах, нужный режим, равно как и тип используемого сервера можно выбрать в разделе личного кабинета /Управление сайтами и серверами/.
[править] UNIX / Apache - mod_php
- через файл .htaccess;
- через функцию ini_set();
Изменения вступают в силу сразу.
[править] UNIX / Apache - CGI/FastCGI
- через функцию ini_set();
- через собственный php.ini, расположенный в ~/.php/php.ini
ВНИМАНИЕ! Собственный php.ini полностью перезаписывает системные настройки, указав в нем всего лишь одну директиву, вы сбросите все установки PHP в исходное состояние, например, это повлечет за собой отключение Zend Optimizer, ionCube и т.п.). Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог и в него вносить изменения. Скопировать можно такой командой:
$ cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/php.ini ~/.php/
Изменения вступают в силу в течение 15 минут.
Примечание. Можно ускорить вступление изменений в силу выполнив команду в шелле:
$ killall -9 php php-cgi
[править] PROSTO.1Gb.ru
- через функцию ini_set();
Далеко не все параметры можно изменить через ini_set
, поэтому если настройки тарифного плана Вам не подходят, то необходимо установить тариф обычного хостинга.
Также посмотрите эту статью Эмуляция auto prepend file на prosto.1gb.ru
[править] См. также
[править] Ссылки
- Проблема тайм-аута при http upload (рус.) - статья в базе знаний хостинга 1Gb.ru.
- Конфигурирование PHP через .htaccess (рус.) - статья в базе знаний хостинга 1Gb.ru.
- Список параметров PHP (англ.) - документация на сайте разработчиков.