第二节,基础设置及优化
关键字 my.ini php.ini eaccelerator 穆亦风
一,Mysql的进一步设置及优化。
登录数据库
“命令提示字符”窗口录入,
录入cd C:\mysql\bin 并按下回车键,将目录切换为 cd C:\mysql\bin
再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
修改密码
C:\mysql\bin提示符下录入:
格式:mysqladmin –u用户名 -p旧密码 password 新密码
例如:给root加个密码ab12。键入以下命令:
mysqladmin -uroot password ab12
建立数据库
格式:create database 库名;
例如:建立新数据库discuz
在MYSQL的提示符下:mysql> 录入 create database discuz;
显示数据库
格式:show databases;
注意是databases而不是database
建立新用户
格式:grant all privileges on 数据库.* to 用户名@登录主机 identified by "密码";
例如:增加一个用户test密码为1234,让他只可以在localhost上登录,并可以对数据库discuz进行所有的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),
在MYSQL的提示符下:mysql> 录入grant all privileges on discuz.* to test@localhost identified by "1234";
通过以上操作,你建立一个新的数据库 discuz,并增加了一个名为test对discuz数据库有所有操作权限。
注意:以上仅仅是简单的Mysql操作命令,如果你需要了解更加详细的资料,请查阅Mysql相关操作说明文档。
点击
《MySQL管理员指南》
首先,在上一节,我们安装的mysql,实际上没有设置root帐号的密码,这是极不安全的
下载 phpMyAdmin-2.7.0-pl1.zip 将子目录 phpMyAdmin-2.7.0-pl1 修改为 任意名称,复制到您的网站根目录
这个目录的名称最好复杂,不易被猜解,防止他人使用
然后修改config.default.php
找到
复制内容到剪贴板
代码:
$cfg['PmaAbsoluteUri'] = '';修改为
复制内容到剪贴板
代码:
$cfg['PmaAbsoluteUri'] = 'http://test.muzone.cn/89xd983s';即您的网站网址及phpmyadmin具体所在目录
找到
复制内容到剪贴板
代码:
$cfg['blowfish_secret'] = '';修改为
复制内容到剪贴板
代码:
$cfg['blowfish_secret'] = 'muzone';
这个地方的值主要用作与加密您的cookie,可以任意设置
找到
复制内容到剪贴板
代码:
$cfg['Servers'][$i]['auth_type'] = 'config';修改为
复制内容到剪贴板
代码:
$cfg['Servers'][$i]['auth_type'] = 'cookie';此处为关键修改,设置完后,只有输入正确的帐号和密码才可以管理您的mysql
全部修改完毕,保存后,通过您的phpmyadmin 访问并管理您的mysql
第一次登陆,由于我们没有设置root的密码,所以帐号填 root 密码空,即可登陆
进入后第一件事情,就是修改root帐号的密码
登陆以后,点权限,修改root帐号,点最后的编辑按钮
设置密码,如图
密码设置成功后,需要重新登陆,至此,便可以对mysql进行各种管理,phpmyadmin的操作网上有很多教程
我这里就不详细讲了
至于 my.ini的设置,我们将在下一节详细讲解
二,安装 Eaccelerator 加速及缓存软件
安装 Eaccelerator 加速及缓存软件,可以加速php文件的读取和运行速度,并将一些mysql查询及php文件缓存起来
减轻服务器的负担,从而达到对论坛的大幅度加速和负载能力的提高,这个软件我在许多大站上作过试验
效果非常显著!其效果可询问若干长期由我维护的大论坛站长。
安装eaccelerator非常简单,
首先,下载eaccelerator.rar
解压缩后,一个是安装说明,一个是所需要的dll文件。
将eaccelerator_win_4.4.1.dll 复制到 c:/php/extensions/
引用:
打开c:/php/php.ini
找到
[Zend]
zend_extension_manager.optimizer_ts="C:\Program Files\Zend\Optimizer\lib\Optimizer-2.6.0"
zend_extension_ts="C:\Program Files\Zend\Optimizer\lib\ZendExtensionManager.dll"
zend_optimizer.optimization_level=15
替换为
[Zend]
zend_extension_ts="C:\php\extensions\eaccelerator_win_4.4.1.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
zend_extension_manager.optimizer_ts="C:\Program Files\Zend\Optimizer\lib\Optimizer-2.6.0"
zend_extension_ts="C:\Program Files\Zend\Optimizer\lib\ZendExtensionManager.dll"
zend_optimizer.optimization_level=15
在C盘根目录建立一个文件夹, c:/temp 将这个目录授予 everyone 所有权限(实际上只要有写入,修改,读取即可)
重新启动IIS
在phpmyadmin中,察看php信息,看看是否如图所示

如果有加载eaccelerator的信息,说明安装成功。
至此,对于php的第一步优化完成。
下面我们要修改php.ini的其它项
二,对php.ini进行最基本的设置和优化
对于php.ini的优化和设置,非常多样化,根据不同的程序需要和服务器配置,各人都有不同的方案
这里我不会说的太过详细,仅提供一些基本的。
大家可以阅读 php.ini 基本 中文说明
http://club.muzone.cn/viewthread.php?tid=27800
首先,由于discuz的验证码需要,我们需要打开GD库的支持
第一节中,我们已经设置好了扩展库的目录,即extension_dir = "c:/php/extensions/"
下面我们只需要找到
复制内容到剪贴板
代码:
;extension=php_gd2.dll将前面的冒号去掉,即
复制内容到剪贴板
代码:
extension=php_gd2.dll然后保存php.ini,即可
然后,我们可以先做一项对于页面处理效果比较明显的设置
引用:
output_buffering = Off
输出缓存允许你甚至在输出正文内容之后发送 header(标头,包括cookies)行 其代价是输出层减慢一点点速度。你可以使用输出缓存在运行时打开输出缓存, 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。
output_handler = ; 你可以重定向你的脚本的所有输出到一个函数,
那样做可能对处理或以日志记录它有用。
例如若你将这个output_handler 设为ob_gzhandler, 则输出会被透明地为支持gzip或deflate编码的浏览器压缩。
设一个输出处理器自动地打开输出缓冲。
找到这个
复制内容到剪贴板
代码:
output_buffering = Off 修改为
复制内容到剪贴板
代码:
output_buffering = On注意,不要设置数值,只需要设置为On即可。
相应的,你还可以在你的discuz后台,打开gzip支持,也是优化的一项内容。
有些朋友为了安全,还启用了php的安全模式,这个也是一办法,但是比较麻烦
大家可以到网上搜索一项相关的内容,我这里就不说了,毕竟对于效率没什么显著的意义。
另外有些朋友需要使用全局变量和MAGIC,这是一些php程序的必备条件,discuz2.0也需要
可以打开,不过安全性能将降低,方法很简单。
找到
复制内容到剪贴板
代码:
register_globals = Off ;和
复制内容到剪贴板
代码:
magic_quotes_gpc = Off ; 将其修改为On即可
还有,一些朋友经常反映无法上传较大的文件或者后台备份数据经常超时,那么可以找到
max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒
max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒
memory_limit = 8M ; 这个是脚本运行最大消耗的内存,也可以自己加大
upload_max_filesize = 2M ; 上载文件的最大许可大小 ,自己改吧,一些图片论坛需要这个更大的值
关于效率,还有一个,就是,php.ini的zend配置,在php.ini中,底部
有一行
复制内容到剪贴板
代码:
zend_optimizer.optimization_level=15如果您的机器配置足够好,可以优化这里
引用:
这里最为重点的部分,仔细看!Zend Opt总共有10个优化过程,从理论上说开的越多性能越好。当然,理论和实际永远都存在着差距。优化过程开启的越多对性能消耗也相对也越大,Zend Opt的10个优化过程并不相同也就是说效果不是平均的。Zend公司定义的最高值(High模式)为15,这里15指的是开启1-4号优化过程。当然,很多朋友并不满足于此,毕竟最高也只开启4个优化过程连总数的一半都没有。各个优化过程的对应的数字代码(值)如下:
不使用 0 <= 如果这样不如不装,还能节约点内存说!
优化过程1(PASS1) 1
优化过程2(PASS2) 2
优化过程3(PASS3) 4
优化过程4(PASS4) 8
优化过程5(PASS5) 16
优化过程6(PASS6) 32
优化过程7(PASS7) 64
优化过程8(PASS8) 128
优化过程9(PASS9) 256
优化过程10(PASS10) 512
所以15只是开了前四个,如果您的内存足够多,也可以开更高,如设置为1023,即打开所有加速过程
12月21日补充,一些朋友反映,php经常报错,显示PHP has encountered an Access Violation at XXXXXX
很多人说,是php版本的问题,其实不然,可以从四个地方来看这个问题
1,是否zend所需的dll文件所在目录给的权限不够,必须有读取和运行的权限
2,是否使用的2003,设置过应用池,比如池中限制了什么什么,调整一下再试试看,是否好了,呵呵
3,php.ini有两个地方没有设置,而且一些程序必须用到的
A
将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,例如:upload_tmp_dir = d:upload 当然,此时你的d:upload目录必须有读写权限。
这里我设置为
upload_tmp_dir = c:\temp (因为前面建立了这个文件夹,我图省事,呵呵)
B
出现这样的错误语句一般是因为你的php.ini中关于session.save_path一项没有设置好,解决的方法是将session.save_path和session.cookie_path 设置置为
session_save_path = c:\temp
session.cookie_path = c:\temp
然后在c:\目录下建立一个temp目录,即可(前面我们的eaccelerarot正好用到,建立过这么一个文件夹)
最后
还有一些关于邮件的设置,大家如果装了mail server 还有需要在win下使用邮件发送的,可能需要设置
大家根据我的中文说明自己调整
[
本帖最后由 穆亦风 于 2005-12-21 20:02 编辑 ]