我有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,而无需将同一文件复制到不同的位置!
答案 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