我系统中的多个php.ini文件

时间:2011-02-04 21:47:54

标签: user-agent php

我有Linux Ubuntu 10.10,当我在终端中运行以下内容时:

php -i | grep php.ini

我收到了配置文件=> /etc/php5/cli/php.ini

如果我在浏览器中使用phpinfo(),那么它将是:

  

加载配置文件/etc/php5/apache2/php.ini

这意味着根据php_sapi_name有不同的ini文件!!

现在的问题是如何为所有用户代理(浏览器,cli等)设置相同的php.ini,而无需将同一文件复制到不同的位置!

5 个答案:

答案 0 :(得分:2)

我不认为设置所有不同的php上下文使用相同的配置是一个好主意,但如果你真的想,你可以只有一个php.ini,其他所有其他都是符号链接。

我认为没有办法改变php的行为,因为它将包含哪个文件而不至少重新编译它。

答案 1 :(得分:1)

你可以使用符号链接。

ln -s /etc/php5/cli/php.ini  /etc/php5/apache2/php.ini

答案 2 :(得分:1)

如何用符号链接替换其中一个?

答案 3 :(得分:1)

您可以使用符号链接(Apache正在使用此技术用于站点可用和站点启用)。 所以导航到

cd /etc/php5/

并在那里复制你想要的php.ini文件,然后导航到cli /和apache2 / - 删除php.ini(mv或rm it),然后运行

cd /etc/php5/apache2
mv php.ini php.ini.bkp
ln -s php.ini ../php.ini

这将在/ etc / php5 / apache2 /和/ etc / php5 / cli / folders中为php.ini创建一个符号链接。

注意:拥有差异是一个好习惯。 php.ini文件,对于cli,有一些不可加载的扩展等等。 :)

答案 4 :(得分:1)

有时您可以拥有多个php.ini来管理不同的界面或网站 例如,通过在虚拟主机中设置PHPINIDir,您可以为服务器上托管的每个网站使用不同的php.ini

<VirtualHost 10.24.11.2:80>
ServerName foo.com
ServerAlias www.foo.com
PHPINIDir /var/www/html/foo
</VirtualHost>

但是,如果您只想为所有接口制作一个php.ini,唯一的方法是使用符号链接,如下所示:
ln -s /etc/php5/cli/php.ini /etc/php5/apache2/php.ini