在godaddy的虚拟主机上搭建PHP网站的时候发现一个问题,管理界面的PHP设置里并没有地方给你去改PHP的主要参数。
上图中可以看到,参数显示都是默认。实际情况,我们是需要调整这些参数的,比如upload_max_filesize默认的只有10M,明显不够用。
于是我们得想办法修改到php的配置。但是在虚拟主机的环境下,修改php.ini好像不太可能,godaddy也不会让你这么做,毕竟大家公用的环境。
查找下官方文档,可以看到这样的帮助。
根据官方文档的帮助,我们可以在httpdocs目录下找到 .user.ini文件,并在其中加入php的配置,五分钟后。网站的PHP配置就生效了。
生效后,我发现到以前一个没有注意到的点。php的master value还是10M,但是local value变成了配置的64M。
虽然PHP开发做了好几年了,但是这个细节我以前真的没有注意到。
是只有godaddy这样的配置,还是PHP自己有这样的配置方式呢。带着这样的疑问,我打开了我本地的PHPINFO。
本地的phpinfo也有两列,只是两列是一样的。并且跟godaddy上面的配置一样,有一项user_ini.filename 值也是.user.ini
我尝试着在网站目录下加上.user.ini文件,并配置upload_max_filesize的值为64M,看下是否会生效。
重启过apache后,再次访问phpinfo。.user.ini中的配置并没有生效。百思不得其解。
在PHP官方文档中,终于找到了答案。
这个配置只有在 CGI/FastCGI SAPI 这几种模式下才会有用。我本地的PHP 是作为一个module在Apache里面加载的。
官网说如果是以Apache module的方式跑,可以在.htaccess里配置。还有这种操作?不试试怎么知道。
upload_max_filesize=64M
post_max_size=64M
当我把这两行配置放到根目录下的.htaccess的时候,悲剧发生了。
难道官网也能忽悠人。
继续GOOGLE。。
这篇文章解决了我的困惑。在.htaccess里面需要这样设置。
php_value upload_max_filesize 64M
php_value post_max_size 64M
不用重启apache,直接刷新页面。php local value就变了。
很多细微的地方,深究一下还是挺多知识可以补充的。