如果你是用独立服务器,又或者 VPn 、 vps 之类的,那么我教你优化 php.ini
注意:任何修改先做文件备份!!
首先打开你的 php.ini
想知道这个文件在哪的话,把下面代码复制到新建的文件里面,再重命名为:discuz.php 当然,我的网站 www.weixiaoduo.com 使用的是 discuz,这个文件名是我随便改的,这个不重要!
[code]<?php
phpinfo();
?>[/code]
用你的网站地址运行,查找 Loaded Configuration File,就显示你的 php.ini 的位置。
ctrl+f 查找:disable_functions
找到后在=后面添加
(这里都是禁止在 php 里面执行的函数) 代码: 复制内容到剪贴板
exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,
symlink,link,leak,fsockopen,proc_open,popepassthru,chroot,scandir,
chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen
上面内容请放到一行。因为保持帖子的整体效果作了换行
一般后台只用加: 复制内容到剪贴板
disable_functions = system,passthru,shell_exec,com,exec,shell
查找:display_errors
如果是 On 的话改成 Off
查找:magic_quotes_gpc
如果是 Off 的话改成 On
查找:register_globals
如果是 On 的话改成 Off
查找:open_basedir
后面增加
/www/:/tmp/
这里是限制 php 可以访问的目录,后面一定要加上/,否则如果有/wwwabcd 这个目录也会被访问得到
多个目录用英文: 分隔。如果不添加/tmp/的话 Discuz! 的上传功能就无法使用
注意:以上内容在 php.ini 的开头会有相关设置的提示,请按 ctrl+x 查找下一个,不要直接在上面修改
------------------------------
对 php.ini 优化
GD 库的支持
;extension=php_gd2.dll
将前面的冒号去掉,
output_buffering = Off
输出缓存允许你甚至在输出正文内容之后发送 header(标头,包括 cookies) 行其代价是输出层减慢一点点速度。你可以使用输出缓存在运行时打开输出缓存, 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。
output_handler = ; 你可以重定向你的脚本的所有输出到一个函数,
那样做可能对处理或以日志记录它有用。
例如若你将这个 output_handler 设为 ob_gzhandler, 则输出会被透明地为支持 gzip 或 deflate 编码的浏览器压缩。
设一个输出处理器自动地打开输出缓冲。
找到这个
output_buffering = Off
修改为
On
注意,不要设置数值,只需要设置为 On 即可。
相应的,你还可以在你的 discuz 后台,打开 gzip 支持,也是优化的一项内容。
有些朋友为了安全,还启用了 php 的安全模式,这个也是一办法
另外有些朋友需要使用全局变量和 MAGIC,这是一些 php 程序的必备条件,discuz2.0 也需要
可以打开,不过安全性能将降低,方法很简单。
register_globals = Off ;
将其修改为 On 即可.
一些朋友经常反映无法上传较大的文件或者后台备份数据经常超时
max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒
max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒
memory_limit = 8M ; 这个是脚本运行最大消耗的内存,也可以自己加大
upload_max_filesize = 2M ; 上载文件的最大许可大小 ,自己改吧,一些图片论坛需要这个更大的值
如果:
php 报错显示 PHP has encountered an Access Violation at XXXXXX 解决办法
很多人说,是 php 版本的问题,其实不然,可以从四个地方来看这个问题
1,是否 zend 所需的 dll 文件所在目录给的权限不够,必须有读取和运行的权限
2,是否使用的 2003,设置过应用池,比如池中限制了什么什么,调整一下再试试看,是否好了,呵呵
3,php.ini 有两个地方没有设置,而且一些程序必须用到的
将;upload_tmp_dir 该行的注释符,使该行在 php.ini 文档中起作用。
upload_tmp_dir 是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,
例如:upload_tmp_dir = d:upload 当然,此时你的 d:upload 目录必须有读写权限。
这里我设置为
upload_tmp_dir = c: emp
出现这样的错误语句一般是因为你的 php.ini 中关于 session.save_path 一项没有设置好,
解决的方法是将 session.save_path 和 session.cookie_path 设置置为
session.save_path = c: emp
session.cookie_path = c: emp(我没有修改这项,我发现修改后的验证玛不能用)
然后在 c: 目录下建立一个 temp 目录
完成以上我教你的,那么,重启你的 php 吧,最直接的方法就是重启服务器。
好了,完成一切!