|
众所周知,在windows下当Apache第 一次被安装为服务后,它会以用户“System”(本地系统账号)运行。如果web服务器的所有资源都在本地系统上,这样做会问题比较少,但是将会具有很 大的安全 权限来影响本地机器,因此千万不能开启System帐号的网络权限!
于是要创建一个新的帐户来替代这个帐号启动apache并设置相应的权限: 1.在计算机管理里的本地用户和组里面创建一个帐户,例如:apache,密码设置为 apacheuser,加入guests组(如果出现问题,可以赋予user权限);
2.打开开始->管理工具->本地安全策略,在用户权限分配中选择“作为服务登陆”,添加apache用 户;
3.计算机管理里面选择服务,找到apache2.2,先停止服务,右击->属性,选择登陆,把单选框从本地系统帐户切换到此帐户,然后查找 选择apache,输入密码apacheuser,然后点确定(这个时候apache还不能正常启动,一般情况肯定会报错:Apache2.2 服务因 1 (0x1) 服务性错误而停止。);
4.赋予apache安装目录(比如:D:/apache2.2)以及web目录(比 如D:/wwwroot)apache帐号的可读写权限,去除 各磁盘根目录除administror与system以外的所有权限,赋予apache安装 目录所在的磁盘根目录apache帐户的可读取列目录权限(我 开始觉得没必要,但后来发现:这是导致上面出错的关键。)
5.启动apache,一切OK了。
6.php.ini中指定的PHP临时上传目录和session保存目录,并给予目录apache完 全控制权限,例如:
7.给予D:/php目录读取与运行的权限;
8.给予zend安装目录读取与运行的权限;
9.限制读取访问的目录,修改apache安装目录下conf文件夹下的 httpd.conf,加上:
httpd.conf配置(假如将PHP读写权限限制在E:\smis目录下) |
1、conf/httpd.conf只需将2个虚拟主机启动的注释符号#去掉即可。其它不要改动。
2、extra/ httpd-vhosts.conf只需先将2个NameVirtualHost ,再将2个端口的指向指好即可。
附上httpd-vhosts.conf文件
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:81
NameVirtualHost *:82
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:81>
ServerAdmin jsw7001@hotmail.com
DocumentRoot D:/AppServ/www
ServerName www.dede.com
ErrorLog D:/AppServ/www/errornongye.log
CustomLog logs/dummy-host2.appservnetwork.com-access_log common
</VirtualHost>
<VirtualHost *:82>
ServerAdmin jsw7001@hotmail.com
DocumentRoot D:/AppServ/www/wwwnongjiale
ServerName www.dede.com
ErrorLog D:/AppServ/www/wwwnongjiale/errornongjiale.log
CustomLog logs/dummy-host2.appservnetwork.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.x
DocumentRoot "C:/Apache2.2/docs/dummy-host2.x"
ServerName dummy-host2.x
ErrorLog "logs/dummy-host2.x-error.log"
CustomLog "logs/dummy-host2.x-access.log" common
</VirtualHost>
不管哪个版本。安装方法都差不多。以下以 Apache 2.0.52 PHP5.2.5版为例
====================================
注:相关图片请看本空间相册
相关软件下载地址:http://hi.baidu.com/%D0%A1%D0%A1%D3%C4%BB%EA/blog/item/78a864d8b5e1883632fa1ce1.html
=====================================
先安装 apache 默认安装就行 服务器名 localhost 服务器IP localhost 管理员邮箱 my@localhost 图01 接下来安装PHP 打开 PHP5目录 查找目录下所有 dll 文件。包括子目录 大约为65个文件。 图02 复制到 C:\windows\system32 目录下 2000系统为 C:\winnt\system32 目录 重命名 php.ini-dist 为 php.ini 把 php.exe 和 php.ini 复制到 C:\windows 目录下 2000系统为 C:\winnt 图03 接下来就是配置服务器 先建立一个目录做为服务器的主目录,例如 D:\web 图04 打开 C:\windows\php.ini 文件修改以下几个地方 440行 magic_quotes_gpc = Off 472行 include_path = ".;D:\web" 486行 extension_dir = "C:\windows\system32\" 625行 extension=php_mysql.dll 991行 session.save_path = D:/web/tmp 要保证目录存在,如果没有自己建一个 图05 打开 apache 配置文件,文件位置在 D:\Program Files\Apache Group\Apache2\conf\httpd.conf 视你的安装目录决定 图06 修改以下几个地方 228行 DocumentRoot "d:/web" 321行 DirectoryIndex index.html index.htm index.php 701行 AddDefaultCharset GB2312 文件最后加上以下代码加载PHP ScriptAlias /php/ "c:/windows/" AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php.exe" LoadModule php5_module C:/windows/system32/php5apache2.dll AddOutputFilter PHP .php AddInputFilter PHP .php 图07 重启 apache 完成配置 图08 安装 Zend 基本上默认安装就可以了 测试一下吧。<?php图09 安装 MYSQL5 先默认安装并配置结束。配置方法看图10-图12 图10 图11 图12 要进命令行重设一个密码,不然好头疼。。照着输入就可以了。只要你也是安装在这个目录。。 那个密码。就是图11里设置的密码。不设不让装。。NND D:\>cd mysql D:\MySQL>cd mysql server 5.0 D:\MySQL\MySQL Server 5.0>cd bin D:\MySQL\MySQL Server 5.0\bin>mysql -u root -p mysql Enter password: ****** mysql> update user set Password=PASSWORD('') where user='root'; mysql> flush privileges; mysql> quit 图13 我是单机测试用的,所以密码为空就行了。方便一点。^_^ 用一个简单的代码。测试一下。
//文件名 index.php
phpinfo();
?><?PHP
//文件名 mysql.php
if(function_exists('mysql_connect'))
{
echo "MYSQL 函数库已经加载!\n";
//MYSQL连接
$rt=@mysql_connect('localhost','root','');
if($rt)
echo '已经可以使用 MYSQL 了.';
else
echo '<br>\n MYSQL 工作异常!无法连接。<br>';
echo mysql_error();
}else{
echo "MYSQL 函数库没有加载,请重设 php.ini!";
}
?>
图14
完成了。
WAMP配置过程
1、注意
下面用到的一些特殊字符串,分别表示你自己安装的相关软件的路径,在实际配置时需要替换成真正的路径:
$PHP$:PHP的安装路径。比如你的PHP安装在d:\php5.2,则$PHP$ = d:\php5.2
$APACHE$:Apache的安装路径。
2、安装PHP
2.1 解压
直接使用PHP的Windows压缩包php-5.2.0-Win32.zip,将其解压到某个路径即可。
2.2 基本配置
1、 在$PHP$路径下找到php.ini-dist文件,将其名称改为php.ini,这就是PHP的配置文件
2、 用文本编辑器打开php.ini文件,下面要对它进行一些基本的设置
3、 搜索一行:extension_dir= ‘./ ‘,这是要配置PHP扩展包所在的路径,将其改为extension_dir = ‘$PHP$/ext’
4、 查找一行: ;extension=php_mysql.dll。它是用来加载mysql扩展的。默认行首有一个分号,将本行内容处于注释状态。为了以后使用PHP操作MySQL数据库,需要将该模块加载,只要去掉用于注释的分号就可以了,即改为:extension=php_mysql.dll
5、 同时还可以开放的模块有:php_exif.dll、php_gd2.dll用于图像处理;php_mbstring.dll用于宽字符集处理;php_mysqli.dll升级版MySQL处理;php_pdo_mysql.dll通过PDO对MySQL进行处理等
6、 查找一行:;default_charset = "iso-8859-1",将其改为:default_charset = "gbk"。这样,PHP将会在页面上自动输出"Content-Type: text/html; charset=gb2312",可以默认设置页面上的字符集,预防汉字乱码问题。
7、 查找一行:;upload_tmp_dir =,将其注释去掉,并设置指向某一路径。该路径用来临时存放上传文件的。
8、 查找一行:;session.save_path=,将其注释去掉,并设置指向某一路径。该路径用户存放会话文件。
9、 查找一行:;date.timezone=,将其设置为date.timezone = 'Asia/Shanghai',否则默认取出的系统时间与本地时间相差8小时。
10、 查找一行:doc_root=,将其改为:doc_root = $APACHE$\htdocs
3、安装Apache
3.1 安装
使用Apache的windows安装包apache_2.2.4-win32-x86-no_ssl.msi进行安装。注意其中的Domain、ServerName、AdministratorEmail都需要设置。
3.2 基本配置(可选)
1、 用文本编辑器打开$APACHE$/conf目录下的httpd.conf文件,这是Apache的配置文件,进行后续配置
2、 修改Apache的默认路径。Apache服务器的默认根路径是$APACHE$/htdocs,即当你在浏览器中输入http://localhost/后,访问到的就是htdocs目录下的文件。其配置信息在httpd.conf文件中这样定义:DocumentRoot "$APACHE$/htdocs",你可以根据自己的情况,将服务器的根路径设置到其他路径下。
3、 修改Apache的默认首页设置。查找到<IfModule dir_module>模块,将其改为:
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
DirectoryIndex index.php3
DirectoryIndex default.php
</IfModule>
这样,直接输入某个路径,不直接指向某个文件的时候,Apache会自己按顺序查找index.html、index.php等文件显示出来。
4、 增加虚拟路径。使用Alias指令增加虚拟路径。比如在httpd.conf的最后增加:
Alias /test/ "d:/apache2/test/"
<Location /test/>
Order allow,deny
Allow from all
</Location>
这样设置后,你就可以通过http://localhost/test访问到d:/apache2/test目录下的文件了。
4、在Apache中配置对PHP的支持
4.1 配置
打开$APACHE$/conf/httpd.conf,在文档最后添加:
# PHP 5
LoadModule php5_module "$PHP$/php5apache2_2.dll"
AddType application/x-httpd-php .php
# php.ini
PHPIniDir "$PHP$"
保存关闭后重启Apache服务器。
4.2 测试
在$APACHE$/htdocs下新建文件phpinfo.php,用文本编辑器打开后,输入
<?php
phpinfo();
?>
保存关闭。在浏览器中输入http://localhost/phpinfo.php。如果能够显示出PHP的配置信息,则说明配置成功。
5、安装MySQL
直接使用MySQL的window安装包mysql-5.0.37-win32.exe进行安装。
在配置数据库的过程中,注意将默认字符集改为gbk。
记住管理员root用户的密码。
6、安装PhpMyAdmin
6.1 安装
将PhpMyAdmin的压缩包phpMyAdmin-2.10.0.2-all-languages.zip解压到htdoc目录下,可以将目录名改为phpMyAdmin。
6.2 配置
下述两种配置任选一种即可。
1、手工配置:
将phpMyAdmin目录中的config.sample.inc.php文件重命名为config.inc.php,修改
$cfg['Servers'][$i]['auth_type'] = 'config'; //cookie http
$cfg['Servers'][$i]['user'] = 'username'; // MySQL user
$cfg['Servers'][$i]['password'] = 'password'; // MySQL password
2、PhpMyAdmin配置向导
在PhpMyAdmin的目录下新建config目录,并设置该目录的属性为可写,然后打开浏览器,运行:http://localhost/PhpMyAdmin/scripts/setup.php,将出现PhpMyAdmin的配置向导。
点击“server”标签下的“add”按钮,在打开的页面中根据提示输入数据库连接信息,主要是服务器地址、用户名、密码,其他的空着就行。
保存回到setup界面后,点击“configration”标签下的“save”按钮保存配置信息。这样就可以在config目录下看到一个config.inc.php文件。将它移动到PhpMyAdmin的目录就可以了。
6.3 测试
打开浏览器,输入http://localhost/PhpMyAdmin/index.php进行访问。
如果出现用户名密码错误的提示,说明配置文件没有配置正确,请重新配置。
如果出现“无法载入MySQL扩展”的提示,将$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,并重新启动。
7、Zend Debugger远程调试
7.1 安装
1、安装Zend Studio5.5。
2、安装Zend Optimizer。
3、http://downloads.zend.com/pdt/server-debugger/ZendDebugger-5.2.3-Windows-i386.zip下载ZendDebugger。将其解压到某一目录。
7.2 配置
1、在ZendDebugger的目录中,有 4_3_x_comp、4_4_x_comp、5_2_x_comp 等目录,将目录 5_2_x_comp 改为 php-5.2.x;
2、php.ini 添加下面几行:
zend_extension_manager.debug_server_ts=”$Zend Debugger Path$″
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/24
zend_debugger.allow_tunnel=127.0.0.1/32
zend_extension_manager.debug_server_ts 的值请根据你的实际情况填写,就是 php-x.y.z 的父目录。
3、把 ZendDebugger-5.2.3-Windows-i386 目录下的 dummy.php 复制到你的 Web 站点根目录。
4、重启Web服务器。
5、在Zend Studio中,打开“首选项”-“调试”,将调试方式设置为“服务器”。
6、如果装有防火墙,需要将默认的调试端口10000设置为例外。
7.3 测试
1、在Zend Studio中,“工具”-“检查Debug Server连接”,测试是否连接成功。
2、在Browser界面,选择地址栏最左侧的“bug”按钮,设置调试的页面。
选择的版本分别为
apache 2.2.14 with ssl
php 5.2.11
mysql 5.1.41
系统环境为 Windows XP SP3
安装过程:
1、安装apache。
这个非常简单,双击后一路 next ,在填写域名和主机名的时候可以随便写,比如 test.com/www.test.com ,然后写下自己的邮箱,安装完成。
完成后,通过 http://localhost 能够访问,并且看到 It works! 表示已经安装成功。根据PHP官方的提示:
We do not recommend using a threaded MPM in production with Apache2. Use the prefork MPM instead, or use Apache1. For information on why, read the related FAQ entry on using Apache2 with a threaded MPM对于默认的MPM模式官方并不支持,我们应当修改为 Prefork 模式,这个之后再讨论如何优化。
2、下面安装PHP。
PHP在Windows下的安装有两种方式,一种是CGI、一种是apache的DLL模块。不管哪一种,我们都需要修改 apache 的配置文件去支持PHP。
我这里采用模块方式安装,在 httpd.conf 中添加:
# For PHP 5 do something like this:
LoadModule php5_module "E:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php# configure the path to php.ini
PHPIniDir "E:/php"重启apache,编写 phpinfo.php ,则通过 http://localhost/phpinfo.php 可以查看到 php 已经安装完成。
3、安装 PHP 扩展。
安装PHP的扩展只需要将 ;extension=*.dll 前的注释去掉,重启服务即可。我打开了 curl、gd2、mbstring、mcrypt、mysql、mysqli、pdo、pdo_mysql、pdo_oci、pdo_oci8、pdo_sqlite、soap、xmlrpc。需要注意的是,有些扩展需要将特定的 dll 拷贝到系统目录下才能正常使用。
php_curl.dll CURL, Client URL library functions Requires: ibeay32.dll,ssleay32.dll (bundled)
php_mcrypt.dll Mcrypt Encryption functions Requires: ibmcrypt.dll
php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)
php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysql.dll (libmysqli.dll in PHP <= 5.0.2) (bundled)
php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll(bundled)
同时应该注意将 extension_dir 设置为系统对应的值,完成后重启 apache 即可。
4、安装 Mysql。
Mysql 的安装也比较简单,从官方网站下载了安装文件后,双击一路运行到底。结束的时候可以选择是否到 Mysql 网站注册 和 马上进行服务器的配置。我们可以去掉服务器注册那一步,进而继续服务器的配置。
服务器的配置最主要就是选择 InnoDB 的存储位置和数据库的用户名密码,到最后,看全部执行完毕后安装就完成了。
5、配置虚拟机
项目比较多的时候,使用 apache 的虚拟机还是非常方便的。
首先打开 httpd.conf 中关于 vhost 配置文件的引用,这样我们所有的虚拟机配置文件都写在 extra/httpd-vhosts 中,方便管理。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf然后在 httpd-vhost 文件中加入
<VirtualHost *:80>
ServerAdmin cocowool@gmail.com
DocumentRoot "D:/workspaces/DefaultWorkspace/heep/"
ServerName www.heep.com
ErrorLog "logs/heep.com-error.log"
CustomLog "logs/heep.com-access.log" common<Directory "D:/workspaces/DefaultWorkspace/heep/">
AllowOverride Options
Allow from All
</Directory>
</VirtualHost>
6、安装 Zend Optimizer
Optimizer 可以到 Zend 的官方网站 下载。需要首先注册一个账号,这点没有 Mysql 好,不过人家毕竟没说这事开源的。虽然不开源 ZendOptimizer 确是免费的。下载完成后 一步一步安装就可以了,期间会提示选择正确的 PHP 和 Apache 的位置。
经过以上的步骤,一个 WAMP 的开发环境就配置好了,基本上能够满足开发一般应用的需要。
参考资料: