【问题标题】:File php.ini configuration on Mac OS XMac OS X 上的文件 php.ini 配置
【发布时间】:2012-04-01 18:20:52
【问题描述】:

我在 Mac OS X 上的 PHP 配置文件 php.ini 遇到了一个奇怪的问题。我创建了一个 phpinfo 文件。在浏览器中调用它会显示 PHP 设置 -

配置文件(php.ini)路径:/etc

加载的配置文件:/private/etc/php.ini

然而,在此位置编辑 php.ini 文件(当然还要重新启动 Apache)后,更改不会反映在 PHP 设置和 phpinfo 文件中。

例如:更改 bcmath 十进制数字、更改时区设置等。Apache 是否会从另一个主要位置获取设置文件?

【问题讨论】:

  • 你能提到你在你的系统中使用的包名吗? MAMP 专业版还是 XAMP?
  • 如何安装php和apache?
  • @jimca - 我没有使用任何软件包。我在 osx 上使用默认的 php apache。
  • 考虑这一点 - 如果我暂时从 /etc 中删除 php.ini,然后重新启动 apache 并重新加载 phpinfo,php 设置仍会显示。这是否意味着 apache 仍然能够从某个地方读取 ini/configurations 文件。这可能在哪里?

标签: php macos apache


【解决方案1】:

Jeremy John's answer 帮我解决了这个问题。

问题:

  • 'Loaded configuration file'phpinfo() 输出中显示'/usr/local/etc/php/7.0/php.ini',而我的模块(imagick)没有被 PHP 加载。

  • 我尝试在 php.ini 主文件中手动包含我的模块并重新启动 Apache,但 'Loaded configuration file' 没有更新。

  • 我尝试杀死所有 Apache 实例并重新启动 Apache - 还是一样。

  • 我尝试将我的 php.ini 重命名为 php.ini_ 并重新启动 Apache,但 'Loaded configuration file' 仍然显示旧的 php.ini 文件。

解决方案:

  • 在阅读了 Glassdimly 上面的回答后,我尝试了以下步骤:

  • launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist

  • launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist

  • 然后繁荣 - 它奏效了!

  • 接下来我在~/.bash_profile中设置快捷功能:

     # restart php-fpm
     function restart_fpm(){
    
         plist=~/Library/LaunchAgents/homebrew.mxcl.php70.plist
    
         launchctl unload -w $plist
         launchctl load -w $plist
    
         echo "PHP 7 fpm restarted"
     }
    
  • source ~/.bash_profile 将新函数加载到当前 shell 中

【讨论】:

    【解决方案2】:

    我正在使用带有 Homebrew taps from josegonzales 的原生 Mac OS X Apache 2。

    引用我的系统管理员朋友的话,“答案应该在于重新启动 PHP-FPM 而不是 Apache。Apache 使用 mod_fastcgi 通过 PHP-FPM 运行 PHP 的端口或套接字连接到 PHP。”

    您需要加载/卸载与您的 PHP-FPM 安装关联的 p-list 文件。首先检查 ~/Library/LaunchAgents 不存在吗?我的位置在这里: /usr/local/Cellar/php53/5.3.26/homebrew-php.josegonzalez.php53.plist

    重启是这样的:

    launchctl unload -w /usr/local/Cellar/php53/5.3.26/homebrew-php.josegonzalez.php53.plist && launchctl load -w /usr/local/Cellar/php53/5.3.26/homebrew-php.josegonzalez.php53.plist;
    

    我将以下内容添加到我的 ~/.bash_profile 文件中,以便在重新启动 Apache 时可以重新启动 PHP-FPM。调用以下命令是“apachectlrestart”

    function apachectlrestart () { sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist && sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist && launchctl unload -w /usr/local/Cellar/php53/5.3.26/homebrew-php.josegonzalez.php53.plist && launchctl load -w /usr/local/Cellar/php53/5.3.26/homebrew-php.josegonzalez.php53.plist;}
    

    这是一个老帖子了,但是我遇到了这个问题,在网上搜了一圈无果,所以在这里回答一下。

    【讨论】:

    • 后人非常感谢@glassdimly!为我工作。
    • 另外,漂亮的网站@glassdimly,非常好。
    • 在所有对我有用的解决方案中。感谢您指出。
    【解决方案3】:

    从服务面板重新启动您的 Apache HTTP Server 服务器将反映您所做的新更改...

    【讨论】:

    • 我认为您错过了括号中的部分。每次从 - Internet 和无线 -> Web 共享 -> 关闭和打开编辑 php.ini 文件后,我已经重新启动服务器。另一点是,如果我暂时将 php.ini 文件移出 /etc 文件夹,调用 phpinfo 文件时仍会显示 php 设置,但是这次加载的配置文件已更改。
    • 我认为如果我没有错,那么您的浏览器正在缓存页面。尝试删除缓存并重新加载页面.....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2011-08-24
    • 2010-09-23
    • 2013-04-18
    • 2012-12-31
    • 2019-05-21
    • 1970-01-01
    相关资源
    最近更新 更多