Назад | Перейти на главную страницу

Изменить каталог модулей php

Я компилирую php и устанавливаю каталог моих модулей в / usr / lib64 / 20090626-zts

Я хотел бы изменить это на / usr / lib64 / php / modules, но не могу найти для этого вариант конфигурации.

Я могу изменить его в своем php.ini и переместить каталог, но когда я запускаю phpize и создаю новый модуль, он все равно помещает его в / usr / lib64 / 20090626-zts

Проверьте текущий каталог расширений с помощью:

php-config --extension-dir

и вы можете изменить его, установив extension_dir в php.ini:

extension_dir="/usr/lib64/php/modules"

Не забудьте перезапустить Apache.

Я бы предложил сделать / usr / lib64 / php / modules символической ссылкой на папку с идентификатором. Это предотвращает смешивание расширений из разных версий PHP в долгосрочной перспективе.

Кроме того: вы можете установить его, установив EXTENSION_DIR в качестве переменной среды перед запуском PHP configure. что-то вроде

 $ EXTENSION_DIR=/my/location ./configure --with-some-extension

Моя проблема не была идентична, но, поскольку этот вопрос был первым, на котором появились ответы, которые в конечном итоге оказались очень полезными, я добавлю свои комментарии.

Мне не удалось заставить PHP (под Centos7, работающим в контейнере докеров) использовать MySQL из-за конфигурации каталога, хотя я использовал предварительно созданные двоичные файлы и ничего не компилировал. Хотя различные модули pdo и mysqlnd.so и файлы .ini были установлены в моем контейнере (просто с использованием стандартных yum install php72 и все остальное, указанное в Мастер установки PHP), они не находились в местах по умолчанию, которые их искал PHP. Понятия не имею почему. Может это докеры какие то?

В любом случае, чтобы решить проблему, мне пришлось повторить extension_dir директива моему PHP.ini и ТАКЖЕ установите PHP_INI_SCAN_DIR переменная env. Это соответствующие команды из моего Dockerfile

ENV PHP_INI_SCAN_DIR=/etc/php.d/
RUN echo 'extension_dir = "/usr/lib64/php/modules"' >> /etc/opt/remi/php72/php.ini

Я надеюсь, что это не приведет к конфликтам модулей позже, как предупреждает @johanes.