【问题标题】:How to run msgfmt using exec in php?如何在 php 中使用 exec 运行 msgfmt?
【发布时间】: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

标签: php exec msgfmt


【解决方案1】:

试试看:

exec("msgfmt /locale/2019_11_26_17.po -o /locale/file.mo");

"

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2015-04-03
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多