最近需要安装个mantisbt,由于不想再安装个apache服务器,因此直接使用iis作为php解析服务器。同时为了方便管理安装包,将php安装包和扩展包能够独立存放在D:\Program Files\php5,而不是像网上很多文章说的拷贝到C:\WINDOWS\system32目录下。
- 搭建php运行环境
windows2003 + iis6 + sqlserver2008
- php版本选择
php安装软件从http://windows.php.net/download/上下载,不要见到最新的就下载最新的。
由于我的web服务器为iis6,因此只能选择5.3以及一下版本,iis7选择5.3以上版本
选择非线程安全版本,因为使用fastcgi.exe来执行,因此只会创建唯一的php进程,你不会存在线程耗尽问题
1、如果是用于 IIS 则选择 PHP 5.3 VC9 Non Thread Safe 或者VC6 Non Thread Safe;
2、如果是用 IIS7 或更高版本以及 PHP 5.3+,则应选择 VC9 的包;
3、如果是用于 Apache 1 或 Apache 2 则选择 PHP 5.3 VC6 或者 PHP 5.2VC6。
- 配置php文件
1、将php.ini-product文件改名为php.ini
2、修改php.ini配置信息
;定义扩展文件绝对路径
extension_dir = "D:\Program Files\php5\ext"
;定义启用哪些扩展 extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll;生成图片
;extension=php_gettext.dll;多语言库
extension=php_gmp.dll;数学运算
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll;共享内存操作 extension=php_soap.dll
extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
;extension=php_zip.dll
3、配置php环境变量 在path中添加php主目录路径, 定义扩展路径
a)在系统中定义环境变量PHPRC, 变量值为D:\Program Files\php5\
b)在path路径中添加%PHPRC%\ext;
- 安装并配置fastcgi
从http://www.iis.net/downloads/microsoft/fastcgi-for-iis上面下载fastcgi.exe,需要根据版本选择,iis6选择FastCGI 1.5 for IISx86 /x64
修改php.ini文件,启用一下选项,并配置对应的值
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0
配置 FastCGI 扩展以处理 PHP 请求
cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"D:\Program Files\php5\php-cgi.exe"
配置文件访问权限
icacls D:\upload /grant IUSR:(OI)(CI)(M)
配置 FastCGI 和 PHP 的回收
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
配置 FastCGI 超时设定
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90 cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90
改变 php.ini 文件的位置
cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"D:\Program Files\php5\"
- 配置iis
1、 配置 IUSR_SERVER对php安装包目录的读写权限
2、设置网站的默认首页为index.php
3、在iis网站属性中的主目录中的应用程序中添加扩展映射
扩展名为.php 映射路径为C:\WINDOWS\system32\inetsrv\fcgiext.dll
- sqlserver扩展安装
1、要选择对应的线程安全版本
从微软官网上下载php连接sqlserver驱动sqlsrv, 选择sqlsrv2.0.exe,解压后里面包含有线ts(线程安全) nts(非线程安全) vc9(5.3以上版本) vc6(5.2以下版本)
php 5.3以上版本
php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php5.2以下版本
php_sqlsrv_52_nts_vc6.dll
php_pdo_sqlsrv_52_nts_vc6.dll
由于我安装的是5.3非线程安全版本, 因此将以下php_sqlsrv_53_nts_vc9.dll和php_pdo_sqlsrv_53_nts_vc9.dll拷贝到ext扩展库中,并在php.ini中添加
extension=php_pdo_sqlsrv_53_nts_vc9.dll
extension=php_sqlsrv_53_nts_vc9.dll
2、安装Microsoft SQL Server 2012 Native Client。
在使用SQLSRV30.exe, 需要安装这个东东,不过在我这个环境中只能使用sqlsrv20.exe
- 安装mantisbt
1、执行http://ip/admin/install.php, 进入安装界面
hostName:主机名+端口号.mssql与其他数据库不大一样。例子:mssql为”8.8.8.8,10000“,mysql为“8.8.8.8:10000”
userName:数据库用户名
password:数据库密码
Database name:数据库名称
Database Table Prefix:表前缀
Database Plugin Table Prefix :插件表前缀
Default Time Zone:选择亚洲上海(Asia > Shanghai)
Print SQL Queries instead of Writing to the Database :打印数据库语句,不要选择这一项,否则不会自动创建数据库
2、配置为中文
修改Mantis目录中的config_defaults_inc.php文件
$g_fallback_language = 'english';
修改为
$g_fallback_language = 'chinese_simplified';
3、配置报表
/*配置图图表*/
$g_use_jpgraph = ON;
$g_jpgraph_path = 'D:/Program/jpgraph-3.5/'; # JPGraph路径
$g_graph_font = 'simsun';
$g_graph_window_width = 800;
# bar graph aspect ration (height / width)
$g_graph_bar_aspect = 0.9;
# how many graphs to put in each row in the advanced summary page
$g_graph_summary_graphs_per_row = 2;
$g_system_font_folder = 'C:/WINDOWS/Fonts/';
$g_font_per_captcha = 'simsun.ttf';
如果出现乱码则修改Mantis\plugins\MantisGraph\core\graph_api.php文件中的
if( isset( $t_font_map[$t_font] ) ) {
$t_font = $t_font_map[$t_font];
} else {
$t_font = 'simhei.ttf';//arial.ttf
}
4、配置上传附件
在Mantisbt中创建上传目录upload并设置为iis进程可以进行写入、读取、修改的权限
在Mantisbt的项目管理中的“上传文件存放路径”配置上传路径为upload
#配置上传参数
$g_allow_file_upload = ON;
$g_file_upload_method = DISK;#DATABASE; # or DISK
$g_absolute_path_default_upload_folder = 'D:/Program/Mantis/upload'; # used with DISK, must contain trailing \ or /.
$g_max_file_size = 5000000; # in bytes
$g_preview_attachments_inline_max_size = 5 * 1024 * 1024;/*当图片大小小于5M显示*/
$g_allowed_files = 'txt,jpg,jepg,gif,bmp,doc,docx,xls, xlsx,ppt,pptx'; # extensions comma separated, e.g. 'php,html,java,exe,pl'
# $g_disallowed_files = ''; # extensions comma separated
5、配置邮件系统
从https://github.com/PHPMailer/PHPMailer上下载phpMailer,然后解压到指定路径比如D:/Program/PHPMailer/,然后修改Mantisbt中config_inc.php添加以下配置内容,并设置对应的值。网上一些资料说的不是很正确,导致刚开始的时候配置后,无法发送邮件,基本上按照config_inc.php.sample中的邮件配置建议进行配置就可以正常。
/*配置邮件服务器*/
$g_use_phpMailer = ON;
$g_phpMailer_path = 'D:/Program/PHPMailer/';
$g_phpMailer_method = PHPMAILER_METHOD_SMTP;#PHPMAILER_METHOD_MAIL; # or PHPMAILER_METHOD_SMTP, PHPMAILER_METHOD_SENDMAIL
$g_smtp_host = 'smtp.exmail.qq.com'; # used with PHPMAILER_METHOD_SMTP
$g_smtp_username = 'service@qq.com'; # used with PHPMAILER_METHOD_SMTP
$g_smtp_password = '123456'; # used with PHPMAILER_METHOD_SMTP
$g_administrator_email = 'service@qq.com';
$g_webmaster_email = 'service@qq.com';
$g_from_email = 'service@qq.com'; # the "From: " field in emails
$g_return_path_email = 'service@qq.com'; # the return address for bounced mail
$g_from_name = 'Mantis Bug Tracker';
$g_email_receive_own = OFF;
$g_email_send_using_cronjob = OFF;
- Mantisbt运行错误
在Mantisbt/php_errors.log 可以看到Mantisbt运行的错误日志
- 参考资料
1、http://www.blogjava.net/qileilove/archive/2011/10/27/362175.html
2、http://php.net/install.windows
3、http://blog.csdn.net/yuchou123456789/article/details/12859431
4、http://wenku.baidu.com/link?url=Hzb9xVQK0TyN24Q-J_nnfjZdKaBsZFuOOiX7BKQvbHR1rVcs47q9t4cnEQFqqb2s2Rlc2r6ZQMSjaM1ACQgi_wODsek6nfRaYXL33cscfMK
5、http://wenku.baidu.com/link?url=4Ufx-xhMHaJA4mezBPBzDU7S9XLhWlrqHLefHoszyHmPEuFUoyybU1tSTY2HCLhqSsirkDg7lFNmE_VpUke3KFxTr-sHaFRxWPSjU3wdnha