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

Ошибка разрешения от супервизора, когда не указан полный путь PHP

Я скомпилировал PHP из исходников на Debian Stretch в контейнере докера.

Я добавил эту запись в свою конфигурацию Supervisor:

command=/bin/sh -c 'QUEUE=orders/create APP_INCLUDE=/var/www/html/jobs/OrdersCreate.php php /var/www/html/includes/vendor/resque/php-resque/resque.php >> /var/www/log/OrdersCreate.log 2>&1'
autostart=true
autorestart=true
priority=11
stdout_events_enabled=true
stderr_events_enabled=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

Он регистрирует ошибку:

/bin/sh: 1: php: Permission denied.

Если я добавлю полный путь к PHP /usr/bin/php/bin/php, он отлично работает.

Почему это так и как заставить его работать без указания полного пути?

Вам нужно отредактировать $PATH переменная среды, чтобы включить местоположение, которое php двоичный файл существует в.

В вашем Dockerfile:

ENV PATH "$PATH:/usr/bin/php/bin"