2012-03-16 160 views
9

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

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

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

然而,在这个位置编辑php.ini文件(并且当然重新启动Apache)时,这些更改并不反映在php设置以及phpinfo文件中。 例如:更改bcmath十进制数字,更改时区设置等。是否有另一个主要位置从Apache将选取设置文件。任何帮助将不胜感激。

+0

你能提一下你在你的系统中使用的包名吗? MAMP pro或XAMP? – 2012-03-16 07:19:58

+0

如何安装php和apache? – Magic 2012-03-16 07:24:29

+0

@jimca - 我没有使用任何软件包。我在osx上使用默认的php apache。 – 2012-03-16 07:41:32

回答

0

重新启动Apache服务器的服务小组将反映新的变化做出....

+0

我想你错过了括号内的部分。每次在编辑php.ini文件(从Internet和无线 - > Web共享 - >关闭并打开)后,我已经重新启动服务器。另一点是,如果我暂时将php.ini文件移出/ etc文件夹,php设置仍会在调用phpinfo文件时显示,但是这次加载的配置文件已更改。 – 2012-03-16 07:30:35

+0

我想如果我没有错,那么你的浏览器正在缓存页面。尝试删除缓存并重新加载页面...... – NarayaN 2012-03-16 07:33:49

+0

问题仍然存在。 – 2012-03-16 07:38:37

6

这是一个古老的职位,但我有这个问题,搜遍互联网也没有用,所以我在这里回答为后人。

我使用本机Mac OSX apache2与homebrew taps from josegonzales

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

您需要加载/卸载与PHP-FPM安装相关的plist文件。首先检查〜/ 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;} 
+0

对我不起作用 – user269867 2017-04-27 21:56:00

+0

后人感谢你一大堆@glassdimly!为我工作。 – a20 2017-05-13 06:18:57

+0

另外,很棒的网站@玻璃,非常好。 – a20 2017-05-13 06:42:33

1

Glassdimly的回答帮我解决这个问题。

问题:

  • '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加载新的功能到当前外壳

希望这有助于从未来的某个家伙拼命的Google用户!