刀城技术网-信息安全,服务器安全维护,网站安全维护

Windows下Apache应用环境塔建

时间:2010-12-03 10:03来源:http://clin003.com 作者:lin 点击:
刚刚由于mod_python加载后导致apache自动关闭,还有本来这个测试环境塔建的就相对的乱,所以就卸掉了python mod_python apache php等,重新来过,并且记录下搭建步骤,如果你有兴趣请继续看。 所需软件: Apache 2.2.9:下载 apache_2.2.9-win32-x86-openssl

刚刚由于mod_python加载后导致apache自动关闭,还有本来这个测试环境塔建的就相对的乱,所以就卸掉了python mod_python apache php等,重新来过,并且记录下搭建步骤,如果你有兴趣请继续看。

所需软件:

Apache 2.2.9:下载 apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi (MSI Installer)
php 5.2.6:下载 Windows Binaries – php-5.2.6-Win32.zip package
Python 2.5.2 Windows installer:下载Python 2.5.2
mod_python:下载mod_python 3.3.1,注意要下载 mod_python-3.3.1.win32-py2.5-Apache2.2.exe 文件。
subversion:下载 subversion 1.5.0,建议下载 zip 版 svn-win32-1.5.0.zip。

Dependency Walker 可以查看程序运行所必需的 .dll 文件。安装了 Microsoft Visual C++ 6.0的话,已经有了这个工具。

安装 Apache

运行apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi,一路next即可,中途需要输入域名,服务器名字,管理员邮箱地址,填写正确就可以(没有域名可以使用ip地址,安装完成后可以还可以修改的),如果仅仅本地测试,域名和服务器名字都可以填为localhost,可以参考图片填写。

安装成功之后打开浏览器,在地址栏中输入 http://localhost/。可以看到测试界面“It works!”(可参考截图),说明安装成功。

Apache安装后

默认安装路径为 C:\Program Files\Apache Software Foundation\Apache2.2\,安装程序会建立一个名为 Apache2.2 的系统服务并自动启动它, 可以通过右键单击我的电脑->管理->服务可以查看到(可参考截图)。

另外,安装结束后系统托盘中会多出一个 Apache 的控制图标(可参考截图), 可以通过它来控制 Apache 的启动与停止。如果你想通过系统服务来控制 Apache 的话,可以从开始菜单->程序->启动中删除Monitor Apache Servers 项,下次启动计算机时就不会启动该图标。

Apache的安装目录含义

bin – Apache的程序文件和库文件(.dll)。
cgi-bin – 网站的脚本的保存位置。
conf – 配置文件。
error – 各种错误页面。
htdocs – 网站的内容。
icons – Apache生成文件列表时使用的各种图标。
include – 程序开发时使用的头文件。
logs – 服务器访问日志和错误日志。
manual – 使用手册。
modules – 扩展模块,其下有许多扩展名为 .so 的文件,实质上都是Windows .dll文件。
其中2.0系列的目录还有

lib – 程序开发时使用的静态库文件。
proxy – 使用Apache作代理时的缓存目录。

修改默认配置

默认情况下网站内容位于 Apache2.2/htdocs 下,如果你不想将网站内容和服务器程序放在一块。可以修改网站内容的位置。

假设网站的静态内容位于 D:\wwwroot\htdocs 下,而脚本程序位于 D:\wwwroot\cgi-bin 下。 首先要建立这两个目录。
之后打开 httpd.conf 文件,找到行:

DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/htdocs”

将其修改成:

DocumentRoot “D:/wwwroot/htdocs”

然后找到这样的内容(各行之间可能夹杂着注释):

<Directory “C:/Program Files/Apache Software Foundation/Apache2.2/htdocs”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

这一段是定义网站主目录的权限。我们应当修改主目录的位置。另外,Indexes 权限表示当某个目录下不存在 index.html 文件时,显示该目录的文件列表。实际应用中这会造成安全漏洞,应当将其删除。修改之后的内容如下:

<Directory “D:/wwwroot/htdocs”>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

然后找到这一行:

ScriptAlias /cgi-bin/ “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/”

将其修改为:

ScriptAlias /cgi-bin/ “D:/wwwroot/cgi-bin/”

再找到这样的内容:

<Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

将其修改为:

<Directory “D:/wwwroot/cgi-bin”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

这样配置文件修改完毕。在系统服务中选择 Apache2.2 服务单击“重新启动服务”按钮,或者在系统托盘的Apache图标中选择Restart,或者通过命令行输入以下命令来重新启动 Apache。

C:\> net stop apache2.2
C:\> net start apache2.2
或者
C:\>Apache2.2 -k restart

如果配置文件修改无误,则应当正常重新启动。之后打开浏览器输入 http://localhost/, 你应当看到一条“Forbidden”的错误信息。

Forbidden

You don’t have permission to access / on this server.

建立 D:\wwwroot\htdocs\index.html 文件。再次打开 http://localhost/,应当能看到建立的 index.html 文件的内容。
为了以后安装其他模块,我们应当修改系统变量 PATH 以便其他模块能够找到 Apache 的程序库。在控制面板->系统->高级->环境变量对话框中,编辑系统变量中的 Path,在其最前面添加以下内容:

C:\Program Files\Apache Software Foundation\Apache2.2\bin;

修改之后,建议重新启动计算机以避免不必要的错误。

安装 php 5.2.6

我们将 php 与 Apache 放在一起。将 php-5.2.6-Win32.zip 解压到 Apache2.2\php5 目录下。

php5中的 Apache2.2 模块为 php5apache2_2.dll(注意不是 php5apache2.dll,php5apache2.dll是Apache2.0.x的模块,php5apache.dll是 Apache 1.3.x 的模块)。修改 Apache2.2/conf 目录下的 httpd.conf 以加载 php5 模块。查找 LoadModule,然后在其附近添加以下内容以加载php5模块,并设置 php.ini 的位置。

LoadModule php5_module php5/php5apache2_2.dll
PHPIniDir php5

然后查找AddType,在其附近添加以下内容,以增加 php 的类型。

AddType application/x-httpd-php .php

再查找DirectoryIndex命令,将其修改为以下内容,增加目录的默认文档 index.php。

DirectoryIndex index.html index.html.var index.htm index.php

然后进入 php5 目录,复制 php.ini-dist 文件为 php.ini。然后修改 php.ini,查找 extension_dir,该变量指定了 php 功能模块的位置。将其修改为以下的内容。

extension_dir = “./php5/ext”

注意,这个路径是从 Apache2.2 下开始算起,而不是从 Apache2.2/php5 下开始。

查找 session.save_path,这个变量指定session的保存位置。将其前面的分号去掉,然后修改该行为以下内容:

session.save_path = “C:\Program Files\Apache Software Foundation\Apache2.2\tmp”

然后再apache2.2目录建立tmp文件夹

重新启动 Apache 服务器。测试 php 是否安装成功,在 D:\wwwroot\htdocs 下建立 phpinfo.php 文件,内容如下:

<?php
phpinfo();
?>

打开 http://localhost/phpinfo.php 。若能看到 php 的信息页,即表明php安装成功。

PHP各个目录的作用

dev – 开发用 php 静态库。
ext – php扩展模块。
extras – 相关文件。
PEAR – 访问php模块网站 PEAR 的必要文件。

另外,php目录下的部分文件功能如下。

php.exe – php的命令行解释程序,也可用作 CGI 解释器。
php5apache2.dll – Apache 2.0的PHP模块。
php5apache.dll – Apache 1.3的PHP模块。
php5isapi.dll – Microsoft IIS的PHP模块。
php5nsapi.dll – Netscape Server的PHP模块。
php5ts.dll – PHP及其扩展模所需的库文件。

mysql 支持

php4之前的版本自带mysql,而在php5中,mysql不再默认支持。为了使php5支持mysql,我们需要稍稍修改一下设置。

打开 php5/php.ini 文件,查找下面这一行,并将其前面的注释符号分号 ; 去掉。

extension=php_mysql.dll

将php5 目录下的 php5ts.dll 和 libmysql.dll 复制到 Apache2/bin 下,然后重新启动 Apache2。

php4之前的版本自带mysql,而在php5中,mysql不再默认支持。为了使php5支持mysql, 我们需要稍稍修改一下设置。

php_mysql.dll 需要 php5 目录下的 php5ts.dll 和 libmysql.dll (可以使用 Dependency Walker 打开 php_mysql.dll 查看),但是这两个 DLL 文件既不与 php_mysql.dll 位于同一目录下,也没有和可执行文件Apache.exe 位于同一目录下,因此 php_mysql.dll 找不到这两个DLL,不能启动。

刷新前边打开的页面:http://localhost/phpinfo.php,可以看到页面输出的中部有 mysql 模块的配置,说明 mysql 模块已经正常安装。

安装 python2.5.2

运行python-2.5.2.msi进行安装,默认目录c:\python25\

PS:最后在环境变量里添加Python路径(不然可能导致Apache不能正常加载mod_python)

安装 mod_python

运行mod_python-3.3.1.win32-py2.5-Apache2.2.exe进行安装,安装程序会检测 Python 和 (询问)Apache 的安装路径,并将 mod_python.so 安装至 Apache2.2/modules 目录下。

打开 Apache2.2/conf/httpd.conf,查找 LoadModule,并在其附近添加以下内容。

LoadModule python_module modules/mod_python.so

重新启动 Apache2.2。

打开httpd.conf,在</Directory>后面另起一行添加

Alias /python D:/wwwroot/py

<Directory “D:/wwwroot/htdocs/py”>

Order deny,allow
Allow from all
AllowOverride FileInfo
AddHandler mod_python .py
PythonHandler test
PythonDebug On
</Directory>

如果没有   “Order deny,allow 或 Allow from all” 就可能出现拒绝错误(Forbidden You don’t have permission to access /py/test.py on this server.)

在 d: 下建立 /wwwroot/py 目录,用于存放 .py 文件。

写一个文件来测试一下。在 D:/wwwroot/py下新建文件 test.py(一定要是test啊,错啦就会报错啦)AddHandler mod_python .py意指针对.py文件指定一个Handler。PythonHandler mptest意指Python的Handler是test.py。内容如下:

from mod_python import apache

def handler(req):
req.write(“Hello!”)
return apache.OK

最后:打开浏览器,输入地址 http://localhost/python/test.py,回车。如果页面显示“Hello!”,则说明安装成功,否则在检查一下你的配置。

问题Faq:

如果http.conf里写的PythonHandler 对应的为mptest(经典例子都是这个来的)你的py目录下的测试文件不是mptest.py就会报错啦,刚开始很郁闷呢!报错信息如下

ImportError: No module named mptest

参考文章:
ImportError: No module named mptest :http://www.modpython.org/pipermail/mod_python/2004-October/016576.html

Getting Mod_python Working : http://www.dscpl.com.au/wiki/ModPython/Articles/GettingModPythonWorking

So what Exactly does Mod-python do? :http://modpython.org/live/current/doc-html/tut-what-it-do.html

安装 subversion

subversion是一个优秀的版本控制系统,它能够完整地记录软件开发过程中源代码的变动,并可以随时将源代码恢复到以前的任意版本。subversion的服务器可以单独使用,也可以作为 Apache 的模块,通过 WebDAV 协议使用。

将svn-win32-1.5.0.zip 解压到 d:\svn 下。由于 svn 的 Apache2.2 模块需要 d:\svn\bin 下的 intl3_svn.dll 和 libdb43.dll 文件,所以要在环境变量 Path 中增加下面的内容,并重新启动计算机。

d:\svn\bin;

将 d:\svn\bin 下的 mod_dav_svn.so 文件复制到 Apache2.2/modules 目录下。
打开 Apache2.2/conf/httpd.conf 文件,然后查找下面这一行,去掉其前面的注释符号 # 。

LoadModule dav_module modules/mod_dav.so

查找 LoadModule,并在其附近添加以下内容。

LoadModule dav_svn_module modules/mod_dav_svn.so

最后重新启动 Apache2。

 

 

相关截图:

 

01-soft-all-01

 

02-apache-install-next-02

 

03-apache-install-next

 

 

05-apache-in-services 

 

06-apache-in-taskbar 

 

07-apache-403-forbidden

 

 

08-apache-phpinfo

 

09-python-setup

 

09-python-setup-menu 

 

10-mod_python-setup

 

 

11-mod_python-no-mptest

 

 

(责任编辑:刀)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容