Конфигурирование PHP

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 21:32, 2 марта 2009 (править)
Dmih (Обсуждение | вклад)

← К предыдущему изменению
Версия 21:39, 2 марта 2009 (править) (отменить)
Dmih (Обсуждение | вклад)

К следующему изменению →
Строка 10: Строка 10:
Известны три способа конфигурирования PHP. Известны три способа конфигурирования PHP.
-* собственный php.ini (PHP работает в режиме CGI/FastCGI) 
-В данном случае свой php.ini ничем не отличается по синтаксису от системного.<br /> 
-'''Пример:''' 
----- 
-<code>allow_url_fopen = On<br /> 
-post_max_size = 256M<br /> 
-Magic_Quotes_Gpc = on<br /> 
-register_globals = on<br /> 
-error_reporting = E_ALL & ~E_NOTICE</code> 
----- 
-* через файл конфигурации WEB-сервера Apache .htaccess (PHP работает в режиме модуля)+=== через файл конфигурации WEB-сервера Apache .htaccess (PHP работает в режиме модуля) ===
-Основное отличие от предыдущего способа в том, что все параметры прописываются в файле .htaccess, отсутствует знак '''=''' и каждому параметру PHP предшествует специальное слово: '''php_value''' или '''php_flag'''.+Параметры прописываются в файле .htaccess, отсутствует знак '''=''' и каждому параметру PHP предшествует специальное слово: '''php_value''' или '''php_flag'''.
# '''php_flag''' - указывается тогда, когда параметр PHP может принимать в качестве значения только '''истина''' или '''ложь''' ('''1''' или '''0''', '''true''' или '''false''', '''On''' или '''Off'''); # '''php_flag''' - указывается тогда, когда параметр PHP может принимать в качестве значения только '''истина''' или '''ложь''' ('''1''' или '''0''', '''true''' или '''false''', '''On''' или '''Off''');
# '''php_value''' - указывается во всех остальных случаях, например, когда параметр PHP принимает цифровое, строковое значение; # '''php_value''' - указывается во всех остальных случаях, например, когда параметр PHP принимает цифровое, строковое значение;
Строка 35: Строка 25:
-* через функцию PHP ''ini_set()''+=== через функцию PHP ''ini_set()'' ===
Вызов данной функции удобно располагать в каком-нибудь конфигурационном скрипте, например, там где прописаны параметры к БД. Вызов данной функции удобно располагать в каком-нибудь конфигурационном скрипте, например, там где прописаны параметры к БД.
Подробнее см. описание данной функции на сайте разработчиков [http://php.net/ini_set ''ini_set()'']. Подробнее см. описание данной функции на сайте разработчиков [http://php.net/ini_set ''ini_set()''].
-В зависимости от используемого типа WEB-сервера ([http://ru.wikipedia.org/wiki/IIS IIS] / [http://ru.wikipedia.org/wiki/Apache Apache]), а также платформы ([http://ru.wikipedia.org/wiki/Windows Windows] / [http://ru.wikipedia.org/wiki/UNIX UNIX]), изменение конфигурации PHP может происходить тем или иным способом.+=== собственный php.ini (PHP работает в режиме CGI/FastCGI) ===
 +В данном случае свой php.ini ничем не отличается по синтаксису от системного.<br />
 +'''Пример:'''
 +----
 +<code>allow_url_fopen = On<br />
 +post_max_size = 256M<br />
 +Magic_Quotes_Gpc = on<br />
 +register_globals = on<br />
 +error_reporting = E_ALL & ~E_NOTICE</code>
 +----
-== IIS/Windows ==+ 
 +== Как и где менять ==
 + 
 + 
 +=== Windows / IIS ===
В такой конфигурации PHP работает только как CGI приложение. В такой конфигурации PHP работает только как CGI приложение.
* через собственный php.ini (изменения в него может вносить только [http://www.1gb.ru/about_support.php тех. поддержка хостинга]); * через собственный php.ini (изменения в него может вносить только [http://www.1gb.ru/about_support.php тех. поддержка хостинга]);
* через функцию ''ini_set()''; * через функцию ''ini_set()'';
-== Apache/Windows ==+ 
 +=== Windows / Apache ===
На данной платформе PHP всегда работает как модуль к WEB-серверу Apache. На данной платформе PHP всегда работает как модуль к WEB-серверу Apache.
Строка 54: Строка 58:
Изменения вступают в силу сразу. Изменения вступают в силу сразу.
-== Apache/UNIX==+ 
 +=== UNIX / Apache ===
На данной платформе PHP может работать в трех режимах, нужный режим, равно как и тип используемого сервера можно выбрать в разделе личного кабинета /Управление сайтами и серверами/. На данной платформе PHP может работать в трех режимах, нужный режим, равно как и тип используемого сервера можно выбрать в разделе личного кабинета /Управление сайтами и серверами/.
-=== CGI ===+ 
 +==== UNIX / Apache - mod_php ====
 +* полностью аналогично '''Apache/Windows''';
 + 
 + 
 +==== UNIX / Apache - CGI ====
* через собственный конфигурационный файл, расположенный в .php/php.ini в корне вашего домашнего каталога; * через собственный конфигурационный файл, расположенный в .php/php.ini в корне вашего домашнего каталога;
---- ----
Строка 67: Строка 77:
Изменения вступают в силу сразу в обоих случаях. Изменения вступают в силу сразу в обоих случаях.
-=== FastCGI ===+ 
 +==== UNIX / Apache - FastCGI ====
* полностью аналогично '''CGI''', за исключением того, что изменения сделанные с помощью собственного php.ini вступают в силу в течение 1-3 часов (в зависимости от как скоро будет перезапущено FastCGI приложение); * полностью аналогично '''CGI''', за исключением того, что изменения сделанные с помощью собственного php.ini вступают в силу в течение 1-3 часов (в зависимости от как скоро будет перезапущено FastCGI приложение);
Строка 73: Строка 84:
<code>killall -q php >/dev/null 2>&1</code> <code>killall -q php >/dev/null 2>&1</code>
-=== mod_php === 
-* полностью аналогично '''Apache/Windows'''; 
== Ссылки == == Ссылки ==

Версия 21:39, 2 марта 2009

Конфигурирование PHP - это полное изменение или дополнение системных настроек интерпретатора PHP.



Внимание! На хостинге 1Gb.ru конфигурация PHP настроена таким образом, чтобы максимально обеспечить режим совместимости со всеми популярными скриптами и зачастую нет необходимости изменять предустановленные параметры.



Содержание

Общие сведения

Известны три способа конфигурирования PHP.


через файл конфигурации WEB-сервера Apache .htaccess (PHP работает в режиме модуля)

Параметры прописываются в файле .htaccess, отсутствует знак = и каждому параметру PHP предшествует специальное слово: php_value или php_flag.

  1. php_flag - указывается тогда, когда параметр PHP может принимать в качестве значения только истина или ложь (1 или 0, true или false, On или Off);
  2. 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().


собственный php.ini (PHP работает в режиме CGI/FastCGI)

В данном случае свой php.ini ничем не отличается по синтаксису от системного.
Пример:


allow_url_fopen = On
post_max_size = 256M
Magic_Quotes_Gpc = on
register_globals = on
error_reporting = E_ALL & ~E_NOTICE



Как и где менять

Windows / IIS

В такой конфигурации PHP работает только как CGI приложение.


Windows / Apache

На данной платформе PHP всегда работает как модуль к WEB-серверу Apache.

  • через файл .htaccess;
  • через функцию ini_set();

Изменения вступают в силу сразу.


UNIX / Apache

На данной платформе PHP может работать в трех режимах, нужный режим, равно как и тип используемого сервера можно выбрать в разделе личного кабинета /Управление сайтами и серверами/.


UNIX / Apache - mod_php

  • полностью аналогично Apache/Windows;


UNIX / Apache - CGI

  • через собственный конфигурационный файл, расположенный в .php/php.ini в корне вашего домашнего каталога;

Внимание! Собственный php.ini полностью перезаписывает системные настройки, т.о. указав в нем всего лишь одну директиву, вы сбросите в значения по-умолчанию и все остальные (это повлечет за собой отключение Zend Optimizer, ionCube и т.п.). Поэтому, вы можете скопировать в свой каталог .php общесистемный файл из /etc/php/php.ini и внести в него необходимые изменения.


  • через функцию ini_set();

Изменения вступают в силу сразу в обоих случаях.


UNIX / Apache - FastCGI

  • полностью аналогично CGI, за исключением того, что изменения сделанные с помощью собственного php.ini вступают в силу в течение 1-3 часов (в зависимости от как скоро будет перезапущено FastCGI приложение);

Примечание. Можно ускорить вступление изменений в силу выполнив команду в шелл:
killall -q php >/dev/null 2>&1


Ссылки

Личные инструменты