【发布时间】:2018-01-22 13:30:33
【问题描述】:
我一直在使用一个名为 Unoconv 的库。 (请注意,在我本地的 ubuntu [virtualbox-homestead] 中,它按预期工作,但在 AWS 中却没有。)
$unoconv = Unoconv::create([
'unoconv.binaries' => '/usr/bin/unoconv',
]);
这就是我在 php.ini 中所说的。我可以确认/usr/bin/unoconv 存在。
最初的错误是:
异常:“Unoconv\Exception\RuntimeException” 文件:“/usr/bin/unoconv”
首先,我认为这是权限问题。所以我做了相应的调整:
My Homestead permissions: -rwxr-xr-x 1 root root 63243 Aug 18 2015 unoconv
My AWS permissions: -rwxr-xr-x 1 root root 63243 Aug 18 2015 unoconv
然后我将我的 AWS 组更改为:
-rwxr-xr-x 1 www-data www-data 63243 Aug 18 2015 /usr/bin/unoconv
然后我尝试编辑/etc/nginx/fastcgi_params 并添加了这一行:
// This existed, so I didn't touch it
fastcgi_param REDIRECT_STATUS 200;
// I added this line
fastcgi_param PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/node/bin
我的 nginx 看起来像这样:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
错误现在已更改为:
异常:“Unoconv\Exception\RuntimeException” 文件:“/var/www/my_proj/vendor/php-unoconv/php-unoconv/src/Unoconv/Unoconv.php” 线路:68 消息:“Unoconv 无法转码文件”
文件路径改变了。
最后,我尝试删除 fastcgi_param REDIRECT_STATUS 200;,但 nginx 不编译/抛出语法错误。
我不知道如何解决这个问题。
更新:
在/etc/init.d/php7.0-fpm 中,我可以看到PATH=/sbin:/usr/sbin:/bin:/usr/bin,但我不确定如何解决此问题。我应该使用/bin 而不是/usr/bin 吗?如果这样做,我会收到错误“找不到可执行文件,建议:/bin/unoconv”
还是权限问题?
【问题讨论】:
标签: amazon-web-services ubuntu nginx fastcgi fpm