I config / make / make install php в системе, где php уже установлен:
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-config-file-scan-dir=/opt/php/etc/php.d --enable-fpm --with-fpm-user=ec2-user --with-fpm-group=ec2-user --disable-debug --enable-exif --with-curl --with-mysql=mysqlnd --with-mysqli=mysqlnd --with- pdo-mysql=mysqlnd --with-zlib --enable-zip --enable-bcmath --enable-calendar --enable-ftp --with-mhash --with-openssl --with-mcrypt --enable-mbstring --enable- mbregex --with-gd --with-jpeg-dir --with-png-dir
(все нормально), однако, когда я набираю php -ini (внутри / opt / php / bin), я получаю старый материал:
> Configuration File (php.ini) Path: > /etc Loaded Configuration File: > /etc/php.ini Scan for additional .ini > files in: /etc/php.d Additional .ini > files parsed: /etc/php.d/apc.ini, > /etc/php.d/curl.ini, > /etc/php.d/fileinfo.ini, > /etc/php.d/json.ini, > /etc/php.d/mbstring.ini, > /etc/php.d/phar.ini,
почему / как я могу это исправить?
мой bashrc:
если [-d "/ opt / php / bin"] && [-d "/ opt / php / sbin"]; затем PATH = "$ path: / opt / php / bin: / opt / php / bin"
моя php-config выглядит нормально:
Usage: ./php-config [OPTION] Options: --prefix [/opt/php] --includes [-I/opt/php/include/php -I/opt/php/include/php/main -I/opt/php/include/php/TSRM -I/opt/php/include/php/Zend -I/opt/php/include/php/ext -I/opt/php/include/php/ext/date/lib] --ldflags [] --libs [-lcrypt -lz -lcrypt -lrt -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lcurl -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt ] --extension-dir [/opt/php/lib/php/extensions/no-debug-non-zts-20090626] --include-dir [/opt/php/include/php] --php-binary [/opt/php/bin/php] --php-sapis [cli fpm] --configure-options [--prefix=/opt/php --with-config-file-path=/opt/php/etc --with-config-file-scan-dir=/opt/php/etc/php.d --enable-fpm --with-fpm-user=ec2-user --with-fpm-group=ec2-user --disable-debug --enable-exif --with-curl --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --enable-zip --enable-bcmath --enable-calendar --enable-ftp --with-mhash --with-openssl --with-mcrypt --enable-mbstring --enable-mbregex --with-gd --with-jpeg-dir --with-png-dir] --version [5.3.5] --vernum [50305]
но … myphp.ini этого не делает, кажется, мой –with-config-file-path = PATH (Устанавливает путь поиска php.ini по умолчанию PREFIX / lib.) как-то не работает?
Вот что я сделал в подобной ситуации:
Контекст: PHP загружается как модуль Apache (например, DSO)
КАК Вкратце:
оболочка ENV
PHP_INI_SCAN_DIR=/pathtophpini export PHP_INI_SCAN_DIR
http.conf
# ... # DSO Modules: PHP as an Apache module SetEnv PHPRC /usr/pathtophpini SetEnv PHP_INI_SCAN_DIR /usr/pathtophpini LoadModule php5_module /pathtophpmod/libphp5.so PHPINIDir /pathtophpini # ...
Оболочка
/etc/init.d/apache2 restart
Затем я могу выбрать файл php.ini, который я хочу загрузить при запуске Apache.
В запросе PHP # 45114 jani@php.net пишет:
Я добавил 2 способа сделать это. Теперь вы можете использовать оба параметра -n и -c в параметрах командной строки (-n отключает каждую загрузку ini, -c позволяет загрузить указанный файл / из указанного пути) или установить переменную среды PHP_INI_SCAN_DIR в пустую (отключает сканирование) или указать на другой каталог.
Пример:
php -n -c /conf -r'phpinfo();'
Вывод:
... Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /conf/php.ini Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none) ...
Попробуйте команду, which -a
чтобы увидеть, какой исполняемый файл php находится в пути.
У меня теперь было 5.3.5. I wget-ed 5.3.6, настроить, сделать, сделать установку …
и настройки .ini были в порядке.