目前,我已经安装了PHP 7.2,并且试图使spatie / image-optimizer正常工作,但是它以某种方式将我的文字路径视为不存在的路径。如果我给它以下路径:
/ data / www / 我的域 /images/thumbnails/700/615/detailed/1/83-221-343-V01.jpg
它将输出以下内容:
2018/07/13 14:44:26 [错误] 18931#18931:* 3749在stderr中发送的FastCGI:
“ PHP消息:PHP致命错误:未捕获的InvalidArgumentException:
/ data / www / 我的域 /images/thumbnails/700/615/detailed/1/83-221-343-V01.jpg
在
中不存在/ data / www / 我的域 /app/addons/theme/lib/vendor/spatie/image-optimizer/src/Image.php:14
但是,如果我检查目录,我可以确认文件是否具有正确的权限。
有什么想法吗?
答案 0 :(得分:2)
我只是看了Github上的Image类。这是引发异常的地方。
public function __construct(string $pathToImage)
{
if (! file_exists($pathToImage)) {
throw new InvalidArgumentException("`{$pathToImage}` does not exist");
}
$this->pathToImage = $pathToImage;
}
检查设置是否正确的一种好方法是使用realpath()
Realpath从相对路径创建绝对路径,如果该路径不存在,则返回false。
$path = __DIR__ .'/../../something'; // (imagine __DIR__ is /some/random/path to begin with)
echo $path; // outputs /some/something
您还可以通过输入以下内容来简单地在终端中签入:
ls /path/to/image.jpg
如果列出,它确实存在并且不应引发错误。
答案 1 :(得分:0)
切换到运行php的用户,然后尝试访问该文件。可能是因为您在访问文件的过程中缺少其中一个文件夹的执行权限。