win2003 apache2.2.17 php5.3配置

Win2003 安装 apache 2.2.17 + php5.3.4 或5.3.6 +  Mysql 配置

Aapache安装

apache-2.2.17 下载地址 :http://httpd.apache.org/download.cgi   , http://www.apache.org/dist//httpd/binaries/win32/

版本选择httpd-2.2.17-win32-x86-no_ssl.msi (openssl多了个ssl安全认证模式,它的协议是HTTPS而不是HTTP,无特殊ssl连接需要下载no_ssl的版本即可)。

安装:一路next 下去 填写 network domain、server domain 一般填“localhost”即可,管理员邮箱随便填一个邮箱就可以(以后服务器出现问题,会提示联系管理员邮箱,方便处理问题。)

安装成功:一般安装结束时会请求是否开启apache服务,可以确定开启,自动打开Apache Service Monitor 同时在电脑右下角的任务栏里有一个绿色的apache服务器运行图标,显示为”>” 启动状态,此时可以本地打开浏览器输入http://localhost 或者 http://127.0.0.1 或者在其他机器上输入 该服务器ip到浏览器访问 http://xx.xx.xx.xx/  可以看到简单的测试页面 “It works” 说明apache已经成功运行。

PHP安装

php5.3.4 ,5.3.6(最新),5.2.17(老稳定版本,不再后续支持)  下载地址:http://windows.php.net/download/

版本选择  Thread Safe (window下一般开发环境用此版本即可,如果是以FastCGI来执行PHP时考虑到效率,需要采用None Thread Safe版本).

下载zip版本 此处我 解压缩到 “C:/php-5.3.6-Win32-VC9-x86″,注意如果是在win2003下运行php5.3 以上用vc9 编译的版本的话,有可能会遇到无法运行的情况,即双击php.exe 会弹出“由于应用程序配置不正确,应用程序未能启动” 的问题,这是由于该版本的php采用vc9编译,而该win2003系统缺少运行库导致的,可以安装 Microsoft 2008 C++ Runtime (x86) 来保证运行。

问题:常见问题在配置apache里的httpd.conf 时 LoadModule php5_module 缺少 “php5apache2_2.dll” 的情况是因为下错了php版本,在Thread Safe版本下是具有php5apache2_2.dll的,而None Thread Safe版本 没有这个文件一般只用于fastcgi 所以不需要这个文件。

MySQL安装

一般安装mysql–5.1.45-win32.msi即可,安装过程中填写root密码,选择数据库编码utf8 启用innodb 选项一步一步next即可。安装成功后mysql就会以windows服务的方式启动了。

综合配置

1.配置Apache:

apache安装目录下的conf/httpd.conf 文件是比较重要的配置文件,如果害怕修改配置文件出错,则要养成修改配置文件前备份的习惯,以防出错。

1.1 配置www网站根目录

DocumentRoot "E:/www"
<Directory "E:/www">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All(在打开mod_rewrite的情况下允许htaccess文件定义时需要设置为All 默认为None)
Order allow,deny
Allow from all
</Directory>

1.2 配置mod_rewrite:

LoadModule rewrite_module modules/mod_rewrite.so 
(现在非常流行使用rewrite功能达到美化,隐藏安全url访问的目的,打开此模块的同时也要注意目录下的AllowOverride All,才能允许htaccess有效)

1.3A 一种方式配置mod_php:(大多数情况下采用以mod_php方式运行)

(PHPIniDir为指定 php.ini的位置,可以直接放在php版本目录里面)
(以mod_php的方式运行php时需要加载 php5_module)

PHPIniDir "C:/php-5.3.6-Win32-VC9-x86"
LoadModule php5_module C:/php-5.3.6-Win32-VC9-x86/php5apache2_2.dll

(设置目录下网站首页的访问顺序如果要运行php,可以讲index.php至于前面优先访问index.php为主页)

<IfModule dir_module>
DirectoryIndex index.php index.html index.htm
</IfModule>

(设置php5解释器,解释文件的扩展名,即访问.php或者.php3或者.phps时,
都会视为application/x-httpd-php请求,用php5解释器来解释运行)

<IfModule mod_php5.c>()
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps
</IfModule>

1.3B 另一种方式配置fastcgi:(与mod_php配置有些不同,在windows下不太安全但如果要考验效率的话可以试一试)

下载mod_fcgid-2.3.6-win32-x86,下载地址:http://httpd.apache.org/mod_fcgid/  ,下载完后 直接将 module 目录合并到 apache 安装目录下的module即可。

LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .fcgi .php
#php.ini的存放目录
FcgidInitialEnv PHPRC "C:/php-5.3.6-Win32-VC9-x86/"
# 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,
#防止php-cgi进程在处理完所有请求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
#php-cgi每个进程的最大请求数
FcgidMaxRequestsPerProcess 1000
#php-cgi最大的进程数
FcgidMaxProcesses 3
#最大执行时间
FcgidIOTimeout 120
FcgidIdleTimeout 120
#php-cgi的路径
FcgidWrapper "C:/php-5.3.6-Win32-VC9-x86/php-cgi.exe" .php
AddType application/x-httpd-php .php

#这两种方式运行php时,检查phpinfo()可以清楚的看到两者的不同。

2. 配置PHP.ini:

date.timezone ="Asia/Shanghai"  
#(设置一下时区,一般国内可以设置为Asia/Shanghai ,不设置有些用到时间的php应用回报警告,
#ps:它又不会GPS定位你所在时区,O(∩_∩)O哈哈~)

extension_dir = "C:/php-5.3.6-Win32-VC9-x86/ext"  
#(extension_dir 指定php扩展的目录位置,必须指定绝对物理路径,
#否则加载某些扩展会找不到dll文件)
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll

上面打开一般的图形扩展和mysql数据库扩展,也可根据需要打开 extension=php_curl.dll 扩展之类。

修改完配置要重启apache服务,在Apache Service Monitor里 restart即可,然后可以测试phpinfo() 是否okay。

希望对用的童鞋有用!:)

5 comments to win2003 apache2.2.17 php5.3配置

  • 悲剧。。
    我前段时间在虚拟机中安装了windows server 2003
    居然到现在搞不好IIS。。。

    • @安徽seo, (⊙_⊙) 啊? 你使用IIS 运行PHP吗? win2003下安装好IIS,不是很难啊,要运行php的话,需要改一下配置,我前几天刚配了IIS+php5.3.6+ fastcgi+wincache. 感觉很好用啊。 只有一点儿有缺憾是htaccess不能用,没有apache下好用的mod_rewrite功能,不过对于不需要rewrite的应用是没有问题的。

      你可以把你遇到的问题详细说一下?

  • 嘿嘿,我把IIS关掉,安装了apache+php+mysql~~~~~
    全是鸟语,搞了一整天才明白。。mysql设置的时候有个选项选择编码。。常用gbk或utf。。。
    不过我重新设置,安装phpcms 2008版还是有问题,安装到最后一步出现1064错误,可能就是编码问题。
    搜了好久,貌似很多人遇到这个情况,但是没找到答案。
    最后从别的地方安装好phpcms 2008版的,把文件拷贝过来,数据库恢复进去修改配置,ok。

    ps:全新安装phpcms v9没问题。。

  • 还有个疑问,我是在httpd.conf里添加代码绑定域名的。

    # 绑定域名
    NameVirtualHost 218.8.127.180

    DocumentRoot "D:/htdocs/c2c3"
    ServerName www.c2c3.com


    假如我想解析子域名,或者用其他目录多做几个站,都这样添加太麻烦了,有便捷的方法吗???

    • 这样可以考虑打开#include conf/extra/httpd-vhosts.conf, 然后修改httd-vhosts.conf 比如我常用的如下:

      NameVirtualHost *:80

      #
      # 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 block.
      #
      #指定默认的DocumentRoot保证通过ip,localhost之类的可以正常访问

      DocumentRoot “E:/”

      #添加子域名访问目录

      ServerName subsite.abc.com
      DocumentRoot “E:/subsite”

      #设定主域名访问

      ServerName abc.com
      DocumentRoot “E:/”

      —-我常用的方法就是这个,希望对你有帮助!:)

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Protected by WP Anti Spam