【发布时间】:2020-03-21 20:26:21
【问题描述】:
我正在尝试在 PHP 中使用 exec 命令,如下所示:
exec("msgfmt /locale/2019_11_26_17.po -o /locale/file.mo")
它不允许我这样做。但是,如果我使用终端运行此命令,它就可以工作。
请帮我找出问题所在?
谢谢你, 特鲁提
【问题讨论】:
-
您可能必须使用
msgfmt的绝对路径(您可以使用which msgfmt获得它)。并确保您被允许访问它。该命令将在运行 PHP 脚本的用户下运行,即如果脚本是从网站执行的,则用户将是www-data(假设网络服务器是 NGINX)。 -
它将用户显示为nobody。我们可以将其更改为 www-data 吗?
-
chown www-data:www-data some_file将文件所有者和组更改为www-data,如果这就是您的意思 -
我尝试使用 PHP chwon 函数更改所有者和组。但是,它不允许我这样做。它返回 false。
-
您需要在终端上使用
root用户或使用sudo。