Страница 1 из 1

(php.ini) Пути. Переопределение

Добавлено: 2010-06-02 8:27:48
ban

Код: Выделить всё

                    Options for php5 5.3.2

[X] CLI        Build CLI version
[X] CGI        Build CGI version
[X] APACHE     Build Apache module
[ ] DEBUG      Enable debug
[X] SUHOSIN    Enable Suhosin protection system
[ ] MULTIBYTE  Enable zend multibyte support
[X] IPV6       Enable ipv6 support
[ ] MAILHEAD   Enable mail header patch

========================================
/usr/ports/lang/php5
--------------------------------------
1       with-layout=GNU
2       with-config-file-scan-dir=/usr/local/etc/php
3       disable-all
4       enable-libxml
5       with-libxml-dir=/usr/local
6       with-pcre-regex=/usr/local
7       program-prefix=""
8       with-apxs2=/usr/local/sbin/apxs
9       with-regex=php
10      with-zend-vm=CALL
11      prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
PHP работает как модуль Apache.

ВОПРОС №1
Кто знает где может конкретно лежать php.ini, чтобы он был подхвачен при старте Apache? Не совсем понятно места расположения его расположений...

Согласно The configuration file и применительно только к UNIX, php.ini ищется в следующих местах и в заданном порядке:
1. SAPI модуль конкретное место (PHPIniDir директива Apache 2, ключь командной строки -c в
CGI и CLI, параметр php_ini в NSAPI, переменная окружения PHP_INI_PATH в THTTPD)
2. Переменная окружения PHPRC
3. Текущий рабочий каталог (кроме CLI)
4. Каталоги веб-серверов (для SAPI модулей)

5. Директория из параметра --with-config-file-path, заданного при компиляции
непонятные пункты 3 и 4 выделены жирным (херего знает где это)

В моем случае работает только:
- первый пункт (в настройках виртуального хоста задана директива PHPIniDir с путем до php.ini)
- и php.ini, который я положу в папку /usr/local/etc/php (этот путь соответствует параметру при сборке порта --with-config-file-scan-dir)

по всем остальным путям (куда тока я не пробовал пихать) файл php.ini не воспринимается никак...
мож у кого есть че на это сказать, полезного, чтобы понятно было куда надо пихать php.ini конкретно.

ВОПРОС №2
Можно ли отключить переопределение значений директив PHP?

Повторюсь. У меня есть два php.ini:
1) лежит в папке, заданной в настройках виртуального хоста директивой PHPIniDir (для задания параметров конкретно хосту)
2) /usr/local/etc/php/php.ini (искренне верую, что это мой глобальный php.ini)

Например, хочу в виртуальном хосте ограничить memory_limit до 18 метров (вместо 128 метров по умолчанию). Добавляю в php.ini, определенный директивой PHPIniDir:

Код: Выделить всё

memory_limit = 18M
перезагружаю Apache и на страничке с phpinfo() вижу, что memory_limit = 128M. Но если я закомментирую memory_limit в файле /usr/local/etc/php/php.ini, то заданные мной 18 метров примуться.

Я понимаю, что сначала грузится из PHPIniDir, потом /usr/local/etc/php/php.ini, можно ли отключить переопределения значений директив PHP?

===
сцукО, опятЬ письмо Татьяне получилось какое-то....

Re: (php.ini) Пути. Переопределение

Добавлено: 2010-06-02 10:10:58
_Менделеев
че-та меня осенило - ведь можно одним php.ini пользоваться
тогда оба вопроса становяца бессмысленными... дааааа... мда... мда...