apache 2.2.4 ,PHP5.2.3,MySQL5.0.41在 windows2003 安装攻略
一、php
目前版本5.2.3
找到 php目录里的 php.ini-dist (似乎这是一个习惯,其实我更喜欢用php.ini-recommended)重命名为 php.ini,copy to windows,复制libmysql.dll php5ts.dll到system32目录
2.PHP.INI:
查:register_globals = off 改off为on
(将这些 EGPCS 变量注册为全局变量!EGPCS:GET, POST, Cookie,Session,,,,)
查:extension_dir = 将路径指向PHP目录中的ext目录。
例如:extension_dir=”C:/PHP/ext”
查找下列语句,将其前面的 ; 符号去掉。这些语句几乎是挨着的,不用逐个查找。
;extension=php_dbase.dll
;extension=php_gd2.dll (用来支持GD库,所以必须去掉)
;extension=php_ldap.dll
;extension=php_mbstring.dll (如果不去掉的话phpmyadmin会有红色的提示)
;extension=php_mssql.dll (支持MSSQL数据库)
;extension=php_mysql.dll (支持MYSQL数据库)
查找
;session.save_path = "/tmp"
修改为
session.save_path = "D:/PhpWeb/php5/tmp"
没什么好说的,调试么就display_errors = On而log_errors = Off,运营反过来display_errors = Off而log_errors = On即可。
[后续] allow_url_fopen = On 改成 Off , 有安全漏洞
/*----------------------------可能要修改的------------------------------*/
用记事本打开C:/windows/php.ini
查找short_open_tag = Off,把off改成On,此处一般能解决运行安装Discuz!论坛时出现空白的问题
查找extension_dir = "./" 改为 extension_dir = "C:/php/ext"
查找;extension=php_mbstring.dll,把分号;去掉
查找;extension=php_mysql.dll,把分号;去掉,(支持MYSQL数据库)
查找;extension=php_gd2.dll,把分号;去掉,(用来支持GD库,所以必须去掉)
查找safe_mode = Off 改为: safe_mode = On
查找magic_quotes_gpc = Off 改为: magic_quotes_gpc = On
下面的是否要修改自己决定:
一些文件上传以及内存使用最大限制:
post_max_size = 20M 闪存容量
upload_max_filesize = 20M 附件容量
去掉前面的;
extension=php_bz2.dll
extension=php_curl.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_mssql.dll
extension=php_mysql.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_sockets.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
extension=php_zip.dll
找到
;session.save_path = "/tmp"
修改为
session.save_path = "C:/php/tmp"
找到
session.cookie_path =
修改为
session.cookie_path = C:/php/tmp
找到
;upload_tmp_dir =
修改为
upload_tmp_dir ="C:/php/tmp"
/*----------------------------可能要修改的------------------------------*/
二、 安装APACHE
目前安装版本2.2.4
配置conf目录下的httpd.conf文件
修改 DocumentRoot 指向位置(webroot根目录)
同时修改<Directory "E:/webroot">
增加403,404错误的处理:
ErrorDocument 404 /404.htm
ErrorDocument 403 /403.htm
配置 ServerName 为实际的域名
[推荐方式]#安装apache模块方式添加:
找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行LoadModule php5_module c:/php5/php5apache2_2.dll
找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
#Alias /www/ "C:/Documents and Settings/Administrator/www/" (虚拟目录,自定义)
[不推荐的方式]#安装cgi方式添加:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php4 .php
AddType application/x-httpd-php4 .php3
Action application/x-httpd-php4 "/php/php.exe"
#增加默认启动文档:
DirectoryIndex index.html增加为:
DirectoryIndex index.html index.htm index.php index.php3
---------------------------------
[后续] 确保 HostnameLookups = Off
[后续] 去掉 Alias /icons/ 和后面相关的 <Directory >
去掉 AliasMatch ^/manual 和后面相关的 <Directory >
去掉 ScriptAlias /cgi-bin/ 和后面相关的 <Directory >
[后续] 注释(#)模块 :
mod_env
mod_auth.so(apache验证)
mod_userdir.so(虚拟用户,存在漏洞,同时注掉UserDir "My Documents/My Website") ,
配合上面,注释: # UserDir "My Documents/My Website"
mod_include
mod_cgi
mod_asis
mod_imap
mod_actions
mod_alias (如果前面把所有的 Alias 都去掉了的话,可以注释这个)
[后续]mod_expires模块
打开模块 mod_expires 的注释,这个模块可以减少10%左右的重复请求,让重复的用户请求CACHE在本地,根本不向服务器发出请求。
后面合适位置(957行)加入:
<IfModule mod_expires.c>
ExpiresActive on
#所有的.gif,jpg,css文件1个月以后过期
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/bmp "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/x-js "access plus 1 month"
ExpiresByType text/htm "access plus 1 month"
ExpiresByType text/html "access plus 1 month"
ExpiresByType audio/wav "access plus 1 month"
ExpiresByType audio/mpeg "access plus 1 month"
ExpiresByType audio/midi "access plus 1 month"
ExpiresByType application/x-rar-compressed "access plus 1 month"
ExpiresByType application/zip "access plus 1 month"
ExpiresByType application/x-httpd-php "access plus 0 seconds"
#缺省没有设置,不知道是否必须
ExpiresDefault "now plus 10 seconds"
</IfModule>
[后续]过滤某些条件的log不记录
原来是: CustomLog logs/access.log
改成:
[方案一]
#本地referer和来源包含coolala.net和ip地址的不记录log,其他都记录log
SetEnvIf Referer "coolala/.net" local_referal
SetEnvIf Referer "210/.51/.190/.25" local_referal
SetEnvIf Referer "^$" local_referal
CustomLog logs/access.log combined env=!local_referal
或者(只能选择一个)
[方案二]
只是不记录某些特殊的文件:过滤
SetEnvIf Request_URI /.gif$ notlog
SetEnvIf Request_URI /.GIF$ notlog
SetEnvIf Request_URI /.jpg$ notlog
SetEnvIf Request_URI /.JPG$ notlog
SetEnvIf Request_URI /.png$ notlog
SetEnvIf Request_URI /.js$ notlog
SetEnvIf Request_URI /.bmp$ notlog
SetEnvIf Request_URI /.css$ notlog
SetEnvIf Request_URI /.css$ notlog
CustomLog logs/access.log combined env=!notlog
[后续]过滤图片被其他网站调用的情况
在最后加入:
SetEnvIfNoCase Referer "coolala/.net" local_pic=1
SetEnvIfNoCase Referer "210/.51/.190/.25" local_pic=1
SetEnvIfNoCase Referer "^$" local_pic=1
SetEnvIf Request_URI "logo8831" local_pic=1
<FilesMatch ".(gif|jpg|GIF|JPG|bmp|BMP|png|PNG|mid|wav|swf|rm|doc|xls|avi)">
Order Allow,Deny
Allow from env=local_pic
</FilesMatch>
三. 删除缺省的mysql中空密码的root帐号.
MYSQL配置
先到Mysql官网下个MYSQL安装包
http://dev.mysql.com/downloads/mysql/5.0.html#win32
我们下载 Windows (x86) ZIP/Setup.EXE 这个
点Next然后选第3个 Custom
修改安装路径到D:/Program Files/MySQL/MySQL Server 5.0/
然后点Next -- Install -- Next -- Next -- Finish
然后继续点Next -- Next -- Server Machine -- Non-Transactional Database Only
然后选择Manual Setting 把5改为1400 然后点Next 继续安装
然后选择Manual Selected Default Character Set/Collation 将语言改为gbk
然后点Next 输入root密码 qfkznet 钩上Enable root access from remote machines
最后点Execute完成安装
安装phpMyAdmin,
找到config.inc.php文件
修改数据库连接方式为http
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin'; //假设是有域名的服务器,可改成http://域名/phpmyadmin
$cfg['Servers'][$i]['user'] = 'root';(如安装设置密码,查找添加密码)
进入phpMyAdmin
新增coolala帐号(主机为localhost),用下面的SQL修改密码
UPDATE user SET password=PASSWORD("new password") WHERE user="username";
FLUSH PRIVILEGES;
删除root相关所有的帐号后.
---------------------------------
四. 安装Zend Optimizer
---------------------------------