php动态更改post_max_size, upload_max_filesize等值

 

     在配置文件里 有些PHP 配置选项可以用int_set() 函数 直接在 项目里修改。但是有些值确不行。例如和上传文件有关的post_max_size和upload_max_filesize

int_set('post_max_size','1024M') 和 int_set('upload_max_filesize', '1024M') 都修改不了原值。

在PHP 文档有说明三个修改指令:

  • PHP_INI_PERDIR 可以在php.ini,httpd.conf,.htaccess 文件修改
  • PHP_INI_SYSTEM 可以在php.ini,httpd.conf 中修改
  • PHP_INI_ALL 只有修改范围是这个的才能用int_set 修改

如果想动态的修改不是PHP_INI_ALL 又是PHP_INI_PERDIR属性的正确方法是: 
在文件所在目录下的.htaccess 文件里写下这些修改配置项:

<!--lang:shell--><IFModule mod_php5.c>php_value upload_max_filesize 2000Mphp_value post_max_size 2500Mphp_value max_file_uploads 50</IFModule>

其中 post_max_size 大于 upload_max_filesize 为佳

.htaccess这个文件,这个文件是apache用的分布式配置文件

.htaccess必须以ASCII模式上传,而且给其可读权限。

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

</IfModule>

 

# BEGIN WordPress

<IfModule mod_rewrite.c> #如果mode_rewrite.c模块存在 则执行以下指令

RewriteEngine On  #开启rewriteEngine

RewriteBase /   #重写范围,这里/为本地顶级目录

RewriteRule ^index\.php$ – [L]  #重写规则

RewriteCond %{REQUEST_FILENAME} !-f  #重写条件,%{}中内容为apache定义的一系列返回参数

RewriteCond %{REQUEST_FILENAME} !-d  #重写条件,%{}中内容为apache定义的一系列返回参数

RewriteRule . /index.php [L]  #同样是重写规则

</IfModule>

# END WordPress

这是我们开启了固定链接功能之后,wordpress给我们加上的htaccess

#重写规则

^index\.php$是匹配正则表达式,只匹配了index.php

后面的短线 如果我没记错的话 就是指null

后面的L是结束符号,同等级的还有

[L](last):终止一系列的RewriteCondRewriteRule  

[R](redirect):触发一个显示的跳转,也可以指定跳转类型,如[R=301]  

[F](forbidden):禁止查看特定文件,apache会触发403错误

[NC](no case):表示忽略大小写

posted @ 2015-12-14 11:26  镜子-正衣冠-知得失  阅读(1102)  评论(0编辑  收藏  举报