Being able to put php directives in httpd.conf and have them work on a per-directory or per-vitual host basis is just great. Now there's another aspect which might be worth being aware of:
A php.ini directive put into your apache conf file applies to php when it runs as an apache module (i.e. in a web page), but NOT when it runs as CLI (command-line interface).
Such feature that might be unwanted by an unhappy few, but I guess most will find it useful. As far as I'm concerned, I'm really happy that I can use open_basedir in my httpd.conf file, and it restricts the access of web users and sub-admins of my domain, but it does NOT restrict my own command-line php scripts...Како да ги промените поставките за конфигурација
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Како да ги промените поставките за конфигурација
Референца за `configuration.changes.php` со подобрена типографија и навигација.
Како да ги промените поставките за конфигурација
Стартување на PHP како Apache модул
Кога користите PHP како Apache модул, можете исто така да ги промените поставките за конфигурација користејќи директиви во датотеките за конфигурација на Apache (на пр. httpd.conf) и .htaccess датотеки. Ќе ви требаат „AllowOverride Options“ или „AllowOverride All“ привилегии за да го направите тоа.
Постојат неколку Apache директиви кои ви дозволуваат да ја промените PHP конфигурацијата од датотеките за конфигурација на Apache. За список на кои директиви се
INI_ALL, INI_PERDIR, или INI_SYSTEM, погледнете го
Список на php.ini директиви appendix.
-
php_valuenamevalue -
Ја поставува вредноста на наведената директива. Може да се користи само со
INI_ALLandINI_PERDIRдирективи од типот. За да избришете претходно поставена вредност, користетеnoneкако вредност.Забелешка: Не користете
php_valueза поставување на булови вредности.php_flag(види подолу) треба да се користи наместо тоа. -
php_flagnameon|off -
Се користи за поставување на булова конфигурациска директива. Може да се користи само со
INI_ALLandINI_PERDIRдирективи од типот. -
php_admin_valuenamevalue -
Ја поставува вредноста на наведената директива. Ова не може да се користи in .htaccess датотеки. Било кој тип на директива поставен со
php_admin_valueне може да биде надминат од .htaccess or ini_set(). За да избришете претходно поставена вредност, користетеnoneкако вредност. -
php_admin_flagnameon|off -
Се користи за поставување на булова конфигурациска директива. Ова не може да се користи in .htaccess датотеки. Било кој тип на директива поставен со
php_admin_flagне може да биде надминат од .htaccess or ini_set().
Example #1 Apache configuration example
<IfModule mod_php5.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule> <IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule>
Пример #1 Пример на конфигурација на Apache
httpd.conf PHP константите не постојат надвор од PHP. На пример, во E_ALL or E_NOTICE
не можете да користите PHP константи како error_reporting
за да го поставите
0директивата бидејќи тие нема да имаат значење и ќе се проценат на php.ini
. Користете ги соодветните вредности на битни маски наместо тоа. Овие константи може да се користат во
Промена на PHP конфигурацијата преку регистарот на Windows
HKLM\SOFTWARE\PHP\Per Directory ValuesКога работите со PHP на Windows, вредностите на конфигурацијата може да се менуваат по директориум со помош на регистарот на Windows. Вредностите на конфигурацијата се чуваат во клучот на регистарот c:\inetpub\wwwroot , во подклучовите што одговараат на имињата на патеките. На пример, вредностите на конфигурацијата за директориумот HKLM\SOFTWARE\PHP\Per Directory
Values\c\inetpub\wwwrootби биле зачувани во клучот
INI_USER . Поставките за директориумот би биле активни за секоја скрипта што работи од овој директориум или која било негова поддиректорија. Вредностите под клучот треба да го имаат името на директивата за конфигурација на PHP и вредноста на низата. PHP константите во вредностите не се парсираат. Сепак, само вредностите на конфигурацијата што може да се менуваат во INI_PERDIR може да се постават на овој начин,
вредностите не може, бидејќи овие вредности на конфигурацијата се читаат повторно за секое барање.
Други интерфејси кон PHP ini_set()Без оглед на тоа како го стартувате PHP, можете да менувате одредени вредности во времето на извршување на вашите скрипти преку ini_set() . Погледнете ја документацијата на
страницата за повеќе информации. phpinfo() Ако ве интересира комплетна листа на поставките за конфигурација на вашиот систем со нивните тековни вредности, можете да ја извршите ini_get() or get_cfg_var().
Белешки од корисници 2 забелешки
If a directive has beeen set many times in different places, the precedence is as follows in descending order
php-fpm php_*[foo] = bar
command line argument -d foo=bar
environment variable foo=bar and referenced as ${foo} in php.ini
php.ini foo=bar