我已经在 Docker 容器中的 Debian Stretch 上从源代码编译了 PHP。
我已将此条目添加到我的 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
,它可以正常工作。
为什么会出现这种情况?如何在不指定完整路径的情况下使其工作?
答案1
您需要编辑环境变量以包含二进制文件所在的$PATH
位置。php
在你的 Dockerfile 中:
ENV PATH "$PATH:/usr/bin/php/bin"