名称：CoreServer ALL 20091230

类别：PHP服务器端环境

作者：Z<602000@gmail.com>

版本：20091230

环境：Windows


--------------------软件介绍--------------------

一款适用于windows下开发PHP站点的完全绿色服务器端集成环境。解压到任意非中文目录即可使用，简单拷贝即可部署多个项目环境，控制台方式和服务方式随意组合，查看访问日志和SQL日志简单方便，附有详细的教程可自己动手制作。包含Apache 2.2.14、Mysql 5.1.41、PHP 5.2.12（ZendDebugger、ZendOptimizer）、PHP 5.3.1（XDebug、APC）、Nginx 0.8.31、Subversion 1.6.6、PHPUnit 3.4.5、phpDocumentor 1.4.3。


--------------------详细介绍--------------------

目标：快速搭建Windows下开发PHP站点的绿色本地服务器端调试环境。

安装：

1. 解压到任意非中文目录下。

2. 点击“start.bat”选择即可。

包含：

1. Apache 2.2.14

2. Mysql 5.1.41

3. PHP 5.2.12（内含ZendDebugger、ZendOptimizer） 和 PHP 5.3.1（内含XDebug、APC）

4. Nginx 0.8.31

5. Subversion Server 1.6.6

6. PHPUnit 3.4.5

7. phpDocumentor 1.4.3

使用：

1. 点击start.bat进入控制中心，选择启动项，可根据需要自行编辑该批处理文件。

2. 编写web程序直接放在src目录上即可。

3. 访问web程序使用http://localhost/域名访问。

4. 单独启动各项服务可执行server\*.bat

5. 运行php片段执行server\php.bat。

6. 运行mysql客户端执行server\mysql.bat。

备注：

1. 调试php-5.2.12使用ZendDebugger，代码缓存使用ZendOptimizer。

2. 调试php-5.3.1使用XDebug，代码缓存使用APC。

3. 查看apache日志，可打开server\apache-2.2.14-*.log。

4. 查看nginx日志，可打开server\nginx-0.8.31-*.log。

5. 查看mysql访问日志，可打开server\mysqld-5.1.41.log。

6. mysql数据文件在server\mysqld-5.1.41\data上。

7. SVN配置文件在server\subversion-1.6.6\conf上。

8. SVN数据文件在server\subversion-1.6.6\svn_repository上。



--------------------制作流程--------------------

●PHP 5.2.12
------------------------------------
1. 确定PHP版本、下载地址、安装目录。
例如使用：PHP 5.2.12 Thread Safe Zip版本
下载地址：http://cn.php.net/distributions/php-5.2.12-Win32.zip
安装目录：server\php-5.2.12

2. 解压到安装目录上，并删除无用文件以减少空间。
改名文件：php.ini-dist改名为php.ini
删除文件：dev extras PEAR目录
删除文件：.bat .reg .phar .txt php.ini-*文件
（根据定制需要删除其他用不到的文件）

3. 修改php.ini文件
修改配置：extension_dir = "../php-5.2.12/ext/"

打开配置：extension=xxx.dll，以下除外
;extension=php_exif.dll
;extension=php_ifx.dll
;extension=php_mssql.dll
;extension=php_oci8.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_sall.dll
;extension=php_sybase_ct.dll
（根据需要打开或关闭注释）

4. 安装ZendDebugger
根据版本下载：http://downloads.zend.com/pdt/server-debugger/ZendDebugger-5.2.15-cygwin_nt-i386.zip
将5_2_x_comp里的ZendDebugger.dll解压到安装目录，dummy.php解压到src目录
在php.ini最后添加
[Zend Debugger]
zend_extension_ts="ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always

5. 安装ZendOptimizer
根据版本下载：http://www.zend.com/en/products/guard/downloads安装，模拟php.ini和conf\httpd.conf进行安装，然后再卸载
连目录拷贝Optimizer-3.3.0\php-5.2.x\ZendOptimizer.dll到安装目录
拷贝ZendExtensionManager.dll到安装目录
在php.ini里添加
[Zend]
zend_extension_ts="ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="..\php-5.2.12\Optimizer-3.3.0"
zend_optimizer.enable_loader = 1
zend_optimizer.optimization_level=15

6. 同时安装ZendDebugger和ZendOptimizer
做以上两步，同时拷贝ZendDebugger.dll到php-5.2.x目录
在php.ini里添加
[Zend]
zend_extension_ts="ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="..\php-5.2.12\Optimizer-3.3.0"
zend_optimizer.enable_loader = 1
zend_optimizer.optimization_level=15
zend_extension_manager.debug_server_ts="..\php-5.2.12\Optimizer-3.3.0"
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
（相对路径针对Apache有效，若在命令行里使用ZendOptimizer，则需要使用绝对路径）

7. 安装XDebug（选择安装）
根据版本下载：http://www.xdebug.org/download.php
php_xdebug-2.0.5-5.2.dll下载到到安装目录
在php.ini里添加
[XDebug]
zend_extension_ts="php_xdebug-2.0.5-5.2.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
;xdebug.remote_handler=dbgp
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir="..\php-5.2.12\xdebug"
（安装XDebug就不要安装ZendDebugger和ZendOptimizer，更多参数查看http://xdebug.org/docs/）


●PHP 5.3.1
------------------------------------
1. 确定PHP版本、下载地址、安装目录。
例如使用：PHP 5.3.1 Thread Safe Zip版本
下载地址：http://windows.php.net/downloads/releases/php-5.3.1-Win32-VC6-x86.zip
安装目录：server\php-5.3.1

2. 解压到安装目录上，并删除无用文件以减少空间。
改名文件：php.ini-development改名为php.ini
删除文件：dev extras PEAR目录
删除文件：.bat .reg .phar .txt php.ini-*文件
（根据定制需要删除其他用不到的文件）

3. 修改php.ini文件
修改配置：extension_dir = "../php-5.3.1/ext/"
打开配置：extension=xxx.dll，以下除外
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_gmp.dll
;extension=php_interbase.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11g Instant Client
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_oci.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_sall.dll
;extension=php_sybase_ct.dll
;extension=php_zip.dll
（根据需要打开或关闭注释）
修改配置：
date.timezone = PRC
mbstring.language = zh-cn
mbstring.internal_encoding = zh-cn

4. 安装XDebug
根据版本下载：http://www.xdebug.org/download.php
php_xdebug-2.0.5-5.3-vc6.dll下载到到安装目录
在php.ini里添加
[XDebug]
zend_extension="php_xdebug-2.0.5-5.3-vc6.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
;xdebug.remote_handler=dbgp
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir="..\php-5.3.1\xdebug"

5. 安装APC
下载地址：http://downloads.php.net/pierre/php_apc-5.3-svn20091115-vc6-x86.zip
拷贝到ext目录
在php.ini里添加
extension=php_apc.dll
（有关APC配置参见http://cn.php.net/apc）


●PHP 批处理
------------------------------------

1. 创建server\php.bat，用于测试PHP代码片段，内容为
@ECHO OFF
TITLE php
@echo 1、php-5.2.12   
@echo 2、php-5.3.1
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
goto end

:choice1
cls
TITLE php-5.2.12
%~d0
cd %~dp0
cd php-5.2.12
echo 填写PHP代码，在行首按Ctrl+Z再按回车开始运行
..\php-5.2.12\php -c ..\php-5.2.12
echo.
pause
cls
goto choice1

:choice2
cls
TITLE php-5.3.1
%~d0
cd %~dp0
cd php-5.3.1
echo 填写PHP代码，在行首按Ctrl+Z再按回车开始运行
..\php-5.3.1\php -c ..\php-5.3.1
echo.
pause
cls
goto choice2

2. 创建server\php-cgi.bat，用于启动PHP-CGI，内容为
@ECHO OFF
TITLE php-cgi
@echo 1、php-5.2.12   
@echo 2、php-5.3.1
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
goto end

:choice1
cls
TITLE php-cgi-5.2.12
%~d0
cd %~dp0
cd php-5.2.12
echo 启动php-cgi-5.2.12，按Ctrl+C关闭
..\php-5.2.12\php-cgi -b 127.0.0.1:9000
pause

:choice2
cls
TITLE php-cgi-5.3.1
%~d0
cd %~dp0
cd php-5.3.1
echo 启动php-cgi-5.3.1，按Ctrl+C关闭
..\php-5.3.1\php-cgi -b 127.0.0.1:9000
pause


●Apache(httpd)
------------------------------------
1. 确定Apache版本、下载地址、安装目录。
例如使用：Apache HTTP Server 2.2.14 Win32 Binary without crypto (no mod_ssl) (MSI Installer)
下载地址：http://apache.freelamp.com/httpd/binaries/win32/apache_2.2.14-win32-x86-no_ssl.msi
安装目录：server\apache-2.2.14
（先安装到默认目录，再拷到安装目录，然后再卸载，域名填写localhost，邮箱填写webmaster@localhost）

2. 解压到安装目录上，并删除无用文件以减少空间。
删除文件：cgi-bin htdocs icons manual目录
删除文件：.txt文件
（根据定制需要删除其他用不到的文件）

3. 根据php的版本拷贝httpd.conf副本，比如httpd-php-5.2.12.conf（httpd-php-5.3.1.conf也一样）
修改以下配置
#ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"
#DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
LoadModule rewrite_module modules/mod_rewrite.so
增加以下配置
ServerName localhost:80
ErrorLog "../apache-2.2.14-error.log"
CustomLog "../apache-2.2.14-access.log" common
DocumentRoot "../../src"
<Directory />
    Options FollowSymLinks
    DirectoryIndex index.php index.html
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
LoadModule php5_module ../php-5.2.12/php5apache2_2.dll
PHPIniDir ../php-5.2.12

4. 创建server\apache-2.2.14.bat，用于启动httpd进程，内容为
@ECHO OFF
TITLE apache-2.2.14
@echo 1、php-5.2.12   
@echo 2、php-5.3.1
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
goto end

:choice1
TITLE apache-2.2.14-php5.2.12
%~d0
cd %~dp0
cd php-5.2.12
echo 启动apache-2.2.14、php-5.2.12，按Ctrl+C关闭
..\apache-2.2.14\bin\httpd -d ..\apache-2.2.14 -f ..\apache-2.2.14\conf\httpd-php-5.2.12.conf -w
pause

:choice2
TITLE apache-2.2.14-php5.3.1
%~d0
cd %~dp0
cd php-5.3.1
echo 启动apache-2.2.14、php-5.3.1，按Ctrl+C关闭
..\apache-2.2.14\bin\httpd -d ..\apache-2.2.14 -f ..\apache-2.2.14\conf\httpd-php-5.3.1.conf -w
pause


●Mysql
------------------------------------
1. 确定Mysql版本、下载地址、安装目录。
例如使用：Mysql 5.1.41 Without installer版本
下载地址：http://219.239.26.11/download/1804646/1924286/1/zip/98/151/1258624739682_151/mysql-noinstall-5.1.41-win32.zip
安装目录：server\mysql-5.1.41

2. 解压到安装目录上，并删除无用文件以减少空间。
删除文件：Docs Embedded include lib mysql-test scripts sql-bench目录
删除bin目录的：.map .pdb文件
删除根目录上的文件：其中my-small.ini改名为my.ini
（根据定制需要删除其他用不到的文件）

3. 修改my.ini，在mysqd段增加以下
[mysqld]
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 8M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 2M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
general_log = 1
general_log_file = ../../mysqld-5.1.41.log

4. 创建server\mysqld-5.1.41.bat，用于启动mysqld进程，内容为
@ECHO OFF
TITLE mysqld-5.1.41
%~d0
cd %~dp0
echo 启动mysqld-5.1.41，按Ctrl+C关闭
mysql-5.1.41\bin\mysqld --defaults-file=mysql-5.1.41\my.ini --console
pause

5. 创建server\mysql.bat，用于进入mysql终端运行sql语句，内容为
@ECHO OFF
TITLE mysql
@echo 1、mysql-5.1.41  
set /p choice=请输入选择:
if %choice%==1 goto choice1
goto end

:choice1
cls
TITLE mysql-5.1.41
%~d0
cd %~dp0
mysql-5.1.41\bin\mysql --defaults-file=mysql-5.1.41\my.ini -uroot
pause


●Nginx
------------------------------------
1. 确定Nginx版本、下载地址、安装目录。
例如使用：nginx/Windows-0.8.31 zip
下载地址：http://nginx.org/download/nginx-0.8.31.zip
安装目录：server\nginx-0.8.31

2. 解压到安装目录上，并删除无用文件以减少空间。
（根据定制需要删除其他用不到的文件）

3. 修改nginx.conf
在合适的地方添加/修改以下语句
error_log  ../nginx-0.8.31-error.log;

    access_log  ../nginx-0.8.31-access.log;

        location / {
            root   ../../src;
            index  index.php index.html;
        }

        location ~ \.php$ {
            #root   html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            if ($document_root ~ "^(.+?\\\\)server\\\\nginx-"){
                set $document_root2 $1src;
            }
            fastcgi_param  SCRIPT_FILENAME  $document_root2$fastcgi_script_name;
            include        fastcgi_params;
        }
修改fastcgi_params
fastcgi_param  DOCUMENT_ROOT      $document_root2;


4. 创建server\nginx-0.8.31.bat，用于管理nginx进程，内容为
@ECHO OFF
:start
TITLE nginx-0.8.31，选择7关闭
@echo 1、启动nginx (start nginx)
@echo 2、停止nginx (nginx -s stop)
@echo 3、退出nginx (nginx -s quit)
@echo 4、重开nginx (nginx -s reopen)
@echo 5、重载nginx (nginx -s reload)
@echo 6、关闭nginx (kill /im nginx.exe)
@echo 7、关闭并退出 (kill /im nginx.exe)
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
if %choice%==3 goto choice3
if %choice%==4 goto choice4
if %choice%==5 goto choice5
if %choice%==6 goto choice6
if %choice%==7 goto choice7
exit

:choice1
cls
%~d0
cd %~dp0
cd nginx-0.8.31
echo 启动nginx-0.8.31，请启动php-cgi,或者选择7关闭nginx
start ..\nginx-0.8.31\nginx
goto start

:choice2
cls
%~d0
cd %~dp0
cd nginx-0.8.31
echo 停止nginx-0.8.31
..\nginx-0.8.31\nginx -s stop
goto start

:choice3
cls
%~d0
cd %~dp0
cd nginx-0.8.31
echo 退出nginx-0.8.31
..\nginx-0.8.31\nginx -s quit
goto start

:choice4
cls
%~d0
cd %~dp0
cd nginx-0.8.31
echo 重开nginx-0.8.31
..\nginx-0.8.31\nginx -s reopen
goto start

:choice5
cls
%~d0
cd %~dp0
cd nginx-0.8.31
echo 重载nginx-0.8.31
..\nginx-0.8.31\nginx -s reload
goto start

:choice6
cls
%~d0
cd %~dp0
cd nginx-0.8.31
echo 关闭nginx-0.8.31，选择1启动nginx，或者关闭窗口
taskkill /f /im nginx.exe
goto start

:choice7
cls
%~d0
cd %~dp0
cd nginx-0.8.31
taskkill /f /im nginx.exe
exit


●Subversion
------------------------------------
1. 确定Subversion版本、下载地址、安装目录。
例如使用：CollabNet Subversion Server and Client v1.6.6 (for Windows)
下载地址：http://www.collab.net/downloads/subversion/
安装目录：server\subversion-1.6.6
不安装MOD_DAV_SVN
（先安装到默认目录，再拷到安装目录，然后再卸载）

2. 解压到安装目录上，并删除无用文件以减少空间。
创建目录：server\subversion-1.6.6\conf。
创建目录：server\subversion-1.6.6\svn_repository。

4. 创建subversion-1.6.6.bat，内容如下：
@ECHO OFF
TITLE subversion-1.6.6
%~d0
cd %~dp0
cd subversion-1.6.6
if not exist "svn_repository\trunk" svnadmin create svn_repository\trunk
if not exist "svn_repository\branches" svnadmin create svn_repository\branches
if not exist "svn_repository\tags" svnadmin create svn_repository\tags
echo 启动subversion-1.6.6，按Ctrl+C关闭
svnserve -d -r svn_repository --config-file conf\svnserve.conf --foreground
pause

5. 执行subversion-1.6.6.bat后，拷贝一份conf目录到server\subversion-1.6.6上。


●PHPUnit
------------------------------------
1. 确定PHPUnit版本、下载地址、安装目录。
例如使用：PHPUnit-3.4.5.tar版本
下载地址：http://pear.phpunit.de/get/PHPUnit-3.4.5.tar
安装目录：server\phpunit-3.4.5

2. 解压到安装目录上，并删除无用文件以减少空间。
仅解压压缩包中的PHPUnit-3.4.5目录

3. 修改phpunit.bat，最后两行替换为
@ECHO OFF
TITLE phpunit-3.4.5
@echo 1、php-5.2.12
@echo 2、php-5.3.1
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
goto end

:choice1
TITLE phpunit-3.4.5-php5.2.12
%~d0
cd %~dp0
echo 执行phpunit-3.4.5、php-5.2.12
set PHPBIN="..\php-5.2.12\php"
%PHPBIN% "%~dp0phpunit.php" %*
pause
goto end

:choice2
TITLE phpunit-3.4.5-php5.3.1
%~d0
cd %~dp0
echo 执行phpunit-3.4.5、php-5.3.1
set PHPBIN="..\php-5.3.1\php"
%PHPBIN% "%~dp0phpunit.php" %*
pause
goto end

:end

4. 修改dbunit.bat，最后两行替换为
@ECHO OFF
TITLE phpunit-3.4.5
@echo 1、php-5.2.12   
@echo 2、php-5.3.1
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
goto end

:choice1
TITLE phpunit-3.4.5-php5.2.12
%~d0
cd %~dp0
echo 执行phpunit-3.4.5、php-5.2.12
set PHPBIN="..\php-5.2.12\php"
%PHPBIN% "%~dp0dbunit.php" %*
pause
goto end

:choice2
TITLE phpunit-3.4.5-php5.3.1
%~d0
cd %~dp0
echo 执行phpunit-3.4.5、php-5.3.1
set PHPBIN="..\php-5.3.1\php"
%PHPBIN% "%~dp0dbunit.php" %*
pause
goto end

:end

5. 修改phpunit.php、dbunit.php，删除第一行
#!/usr/bin/env php

6. 创建bootstrap.php文件在phpunit-3.4.5上，内容如下
<?php
function __autoload($classname) {
    require_once("$classname.php");   
}
?>

7. 创建phpunit-3.4.5.bat在server目录上，内容如下
@%~dp0phpunit-3.4.5\phpunit.bat --bootstrap bootstrap.php --include-path ..\..\src ..\..\src\tests
（--include-path后的参数改成测试文件的包含路径）


●PhpDocumentor
------------------------------------
1. 确定PhpDocumentor版本、下载地址、安装目录。
例如使用：PhpDocumentor-1.4.3.zip版本
下载地址：http://sourceforge.net/projects/phpdocu/files/
安装目录：server\phpdocumentor-1.4.3

2. 解压到安装目录上，并删除无用文件以减少空间。

3. 修改phpdoc.bat，将
SET phpCli=C:\usr\local\php\cli\php.exe
替换为
@ECHO OFF
TITLE phpdocumentor-1.4.3
@echo 1、php-5.2.12   
@echo 2、php-5.3.1
set /p choice=请输入选择:
if %choice%==1 goto choice1
if %choice%==2 goto choice2
goto end

:choice1
TITLE phpdocumentor-1.4.3-php5.2.12
%~d0
cd %~dp0
echo 运行phpdocumentor-1.4.3、php-5.2.12
SET phpCli=%~dp0..\php-5.2.12\php.exe
goto end

:choice2
TITLE phpdocumentor-1.4.3-php5.3.1
%~d0
cd %~dp0
echo 运行phpdocumentor-1.4.3、php-5.3.1
SET phpCli=%~dp0..\php-5.3.1\php.exe
goto end

:end

3. 修改phpDocumentor\Setup.inc.php，找到并注释掉
//$ret = utf8_decode($ret);

4. 创建phpdocumentor-1.4.3.bat，内容如下
@phpdocumentor-1.4.3\phpdoc.bat -f ..\..\src\core.php -d ..\..\src\phpdoc\manual -ed ..\..\src\phpdoc\examples -t ..\..\src\manual -ti "Documentation" -dn Extension -o HTML:Smarty:PHP
（参数根据实际情况写）


●控制中心
------------------------------------

1. 创建start.bat，内容略
2. 从微软件下载svrany.exe拷到nginx，php目录上。
3. 在XP下启动apache服务，需要从PHP-5.3.1下拷贝icu*.dll、libpq.dll、libeay32.dll、ssleay32.dll到apache-2.2.14下。
4. 可修改PHPUnit和phpDocumentor的参数
5. 可修改打开log日志的默认编辑器