我有一个运行的服务器:PHP 版本 5.5.9-1 ubuntu 4.9
我想编辑“正确的”php.ini 文件,以便启用一些功能。首先我使用了:
root@server ~ # find / -name php.ini
/opt/psa/admin/conf/php.ini
/opt/plesk/php/5.3/etc/php.ini
/opt/plesk/php/5.5/etc/php.ini
/opt/plesk/php/5.4/etc/php.ini
/opt/plesk/php/5.6/etc/php.ini
/var/www/vhosts/system/mysiteyo/etc/php.ini
/etc/php5/cgi/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/psa-webmail/horde/horde/php.ini
/etc/psa-webmail/roundcube/php.ini
我从之前的帖子中了解到我应该编辑该/etc/php5/apache2/php.ini
文件。
我还创建了一个phpinfo();
脚本并从浏览器运行它。配置文件 Path@phpinfo 是,/etc/php5/cgi/php.ini
但加载的配置文件是:
/var/www/vhosts/system/mysiteyo/etc/php.ini
当我打开上述文件时,我看到了以下内容:
; ATTENTION! ;
; DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
; SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
所以我认为这个文件是以某种方式从其他 php.ini 文件之一生成的。
然后我将两个文件 (/etc/php5/cgi && /etc/php5/apache2) 重命名为php_tmp.ini
并加载我新修改的php.ini
文件。
之后我重新启动了 apache2:
root@server ~ # /etc/init.d/apache2 restart
尽管我重新运行phpinfo();
脚本,但我看不到任何变化。我用命令更改了找到的一半脚本find
,但我感觉我做的事情完全是错的。
如果我遗漏了什么或做错了什么,有人能告诉我吗?我认为这个自动生成的文件是问题所在,但我不知道它是从哪里生成的,以便编辑该文件。谢谢您的时间。
答案1
您已确定配置选项所来自的正确 php.ini 文件。它是 输出中显示的文件phpinfo()
,在您的情况下为/var/www/vhosts/system/mysiteyo/etc/php.ini
。
如果您修改该文件并重新启动 Apache,那么您应该在输出中看到您的更改phpinfo()
。
您的问题是该文件是自动生成的,因此您所做的任何更改都不会持久。您需要回答的问题是,是什么生成了该文件以及它是如何生成的?我猜您有某种形式的控制面板,例如创建该/var/www/vhosts/system/mysiteyo/etc/php.ini
文件的 cPanel 或 Plesk。
答案2
从目录名称可以清楚看出,该系统由 Plesk 管理。Plesk 管理每个域的所有不同 php.ini 设置。它还具有 php.ini 配置的继承模型,可以在管理员、租户(可以创建更多客户的用户)、订阅(划分客户资源分配份额)和域级别指定,尽管在更大程度上,域是订阅的一部分。
一旦你将系统交给像 Plesk 这样的程序,你就必须让它专门完成它的工作,否则你将进入一个痛苦的世界。
- 登录 Plesk
- 主页 -> 订阅 -> example.com -> 网站和域名 -> example.com -> PHP 设置
- 滚动到底部,您可以添加任何
php.ini
您喜欢的设置。 - 点击保存
现在您可以在 中看到更改/var/www/vhosts/system/example.com/etc/php.ini
。让 Plesk 为您管理配置的最好之处在于,Plesk 会为您管理一切!因此,如果您升级 PHP(使用 Plesk 软件管理器),它将更改所有核心 PHP 配置,然后重新应用所有特定更改。