我正在Nginx服务器上运行Laravel项目,在该项目中,我使用以下命令通过传递参数来调用python文件
$result = exec("python3 path/to/file.py $data");
在python文件中,有一行代码
font_file = base_path+'/fonts/LiberationMono-Bold.ttf'
cmd = ["ttf2cxf_stream",
"",
"-s","5.0",
font_file,"STDOUT"]
p = Popen(cmd, stdout=PIPE, stderr=PIPE)
这会导致一个错误,即无法打开该位置上的字体文件。该项目的所有者是ubuntu:www data,字体文件存在于该项目中。我也试着给它777许可,但仍然没有成功。
现在,当我在终端中运行相同的命令时
python3 path/to/file.py "data"
它成功运行,没有字体文件访问错误。可能是什么问题?
我在使用"ttf2cxf_stream"库打开font-ttf文件时也遇到过类似的问题。请检查/usr/bin
目录中是否存在ttf2cxf_stream
,如果不存在,请尝试从/usr/local/bin/
目录复制它,并查看是否可以通过PHP代码运行py文件。