在某些文件中,我有以下几行内容:
require_once($_SERVER['DOCUMENT_ROOT'].'/../vendor/stripe/stripe-php/init.php');
通常一切都很好。现在,我正在运行一些排队的作业,并且看到以下错误:
无法打开所需的'/../vendor/stripe/stripe-php/init.php' (include_path ='。:/ usr / local / php5 / lib / php')在 /Library/WebServer/Documents/mysite/app/Somemodel.php:9
从工匠$_SERVER['DOCUMENT_ROOT']
开始执行的事情好像是空的。
我在与Sierra互访。也许我忽略了某些设置?
答案 0 :(得分:2)
排队的作业在后台运行,因此$_SERVER['DOCUMENT_ROOT']
为空,因为它是从Web服务器指令中检索到的路径
它也解释了为什么在运行Artisan CLI时它为空
您可以改为使用base_path
来请求文件
require_once base_path() . '/vendor/stripe/stripe-php/init.php';
这是工匠修补匠的区别
~/Sites/laravel (master ✗) ✹ ★ ᐅ tinker
Psy Shell v0.9.9 (PHP 7.3.9-1~deb10u1 — cli) by Justin Hileman
>>> require_once base_path() . '/vendor/stripe/stripe-php/init.php';
=> true
>>> require_once $_SERVER['DOCUMENT_ROOT'] . '/vendor/stripe/stripe-php/init.php';
PHP Fatal error: Failed opening required '/vendor/stripe/stripe-php/init.php' in Psy Shell code on line 1
>>> $_SERVER['DOCUMENT_ROOT']
=> ""
>>> base_path()
=> "/home/caddy/Sites/laravel"