Клиентский модуль Oracle Instant не обнаружен при запуске сценария PHP из служебного модуля systemd

Вы не можете экспортировать функцию или переменную в родительскую оболочку, вы можете экспортировать только в оболочку, в которой запущен скрипт, или в дочерние оболочки.

Чтобы скрипт изменил окружение вашей текущей оболочки, вам нужно запустить скрипт с source или . . Например, вместо запуска ./myscript.sh, вы запустите . ./myscript.sh

Это указывает вашей текущей оболочке запустить скрипт самостоятельно, а не порождать под-оболочку для его запуска... и таким образом позволяет скрипту изменить текущее окружение.

1
19.04.2018, 07:54
1 ответ

Как предложил мой Марк Стосберг, я добавил эту уникальную строку

Environment="LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2" "ORACLE_HOME=/opt/oracle/instantclient_12_2"

до /lib/systemd/system/phpsessionclean.service, в разделе [Сервис], затем перезагрузил сервис:systemctl reload phpsessionclean. Последующие прогоны не генерировали предупреждение, которое вы видели раньше. Я предполагаю, что необходима только одна из двух переменных, определенных там, но у меня нет времени проводить эксперимент.

1
27.01.2020, 23:43

Теги

Похожие вопросы