IIS部署php项目——discuz论坛
1、安裝CgiModule模塊
首先,IIS要部署php項(xiàng)目,需要CgiModule模塊的支持,所以首先我們要確認(rèn)這個(gè)模塊是否存在
打開(kāi)IIS管理器:
我這里是存在的:
如果不存在,可以自行在控制面板=》程序與功能=》啟用或者關(guān)閉windows功能:
2、下載安裝PHP和discuz
PHP和discuz可以前往官網(wǎng)下載
PHP官網(wǎng):https://www.php.net/downloads
discuz應(yīng)用中心:https://addon.dismall.com/
discuz包下載地址:https://www.dismall.com/thread-73-1-1.html
百度云:https://pan.baidu.com/s/1HvkBASRkNDR4idppCHSbMw (提取碼: yff2)(這個(gè)是本文用到的版本)
注:貌似這個(gè)地址會(huì)被百度網(wǎng)盤和諧掉,我不知道為什么,如果這個(gè)下載不了,那就只能去上面的discuz包下載地址去下載x3.4版本的包,如果discuz包下載地址也進(jìn)不去,那就只能通過(guò)上面的discuz應(yīng)用中心地址頁(yè)面最下面的Discuz程序下載鏈接去Discuz官方論壇找了。
3、準(zhǔn)備工作
mysql:
地址:192.168.18.129
端口:3306
用戶:root
密碼:123456
數(shù)據(jù)庫(kù):ultrax(論壇)、ucenter(用戶中心)這兩個(gè)數(shù)據(jù)庫(kù)實(shí)現(xiàn)創(chuàng)建好
redis:
地址:192.168.18.129
端口:6379
通過(guò)上面的百度云下載php和discuz的壓縮包,將php-5.6.38-nts-Win32-VC11-x64.zip解壓到D:php,作為php的安裝目錄,進(jìn)入安裝目錄,復(fù)制一份php.ini-production,重命名為php.ini,使用文本打開(kāi)后,修改配置并啟用一下模塊(去掉前面的分號(hào)):
#取消以下配置參數(shù)前面的分號(hào)和修改值
extension_dir = "D:phpext" #設(shè)置php模塊路徑為同目錄下ext文件夾
date.timezone = Asia/Shanghai #設(shè)置時(shí)區(qū)為中國(guó)時(shí)區(qū)
cgi.force_redirect= 0 #開(kāi)啟以CGI方式運(yùn)行php
fastcgi.impersonate= 1
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
discuz壓縮包中upload的就是discuz的項(xiàng)目文件,將它解壓出來(lái),我這里的解壓目錄是C:inetpubwwwrootdiscuz
使用文本編輯打開(kāi)config中的config_global_default.php和config_ucenter_default.php,然后分別配置數(shù)據(jù)庫(kù)信息和redis
編輯config_global_default.php,并重命名為config_global.php:
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: config_global_default.php 36362 2017-02-04 02:02:03Z nemohou $
*/
$_config = array();
// ---------------------------- CONFIG DB ----------------------------- //
// ---------------------------- 數(shù)據(jù)庫(kù)相關(guān)設(shè)置---------------------------- //
/**
* 數(shù)據(jù)庫(kù)主服務(wù)器設(shè)置, 支持多組服務(wù)器設(shè)置, 當(dāng)設(shè)置多組服務(wù)器時(shí), 則會(huì)根據(jù)分布式策略使用某個(gè)服務(wù)器
* @example
* $_config['db']['1']['dbhost'] = 'localhost'; // 服務(wù)器地址
* $_config['db']['1']['dbuser'] = 'root'; // 用戶
* $_config['db']['1']['dbpw'] = 'root';// 密碼
* $_config['db']['1']['dbcharset'] = 'gbk';// 字符集
* $_config['db']['1']['pconnect'] = '0';// 是否持續(xù)連接
* $_config['db']['1']['dbname'] = 'x1';// 數(shù)據(jù)庫(kù)
* $_config['db']['1']['tablepre'] = 'pre_';// 表名前綴
*
* $_config['db']['2']['dbhost'] = 'localhost';
* ...
*
*/
$_config['db'][1]['dbhost'] = '192.168.18.129';
$_config['db'][1]['dbuser'] = 'root';
$_config['db'][1]['dbpw'] = '123456';
$_config['db'][1]['dbcharset'] = 'utf8';
$_config['db'][1]['pconnect'] = 0;
$_config['db'][1]['dbname'] = 'ultrax';
$_config['db'][1]['tablepre'] = 'pre_';
/**
* 數(shù)據(jù)庫(kù)從服務(wù)器設(shè)置( slave, 只讀 ), 支持多組服務(wù)器設(shè)置, 當(dāng)設(shè)置多組服務(wù)器時(shí), 系統(tǒng)根據(jù)每次隨機(jī)使用
* @example
* $_config['db']['1']['slave']['1']['dbhost'] = 'localhost';
* $_config['db']['1']['slave']['1']['dbuser'] = 'root';
* $_config['db']['1']['slave']['1']['dbpw'] = 'root';
* $_config['db']['1']['slave']['1']['dbcharset'] = 'gbk';
* $_config['db']['1']['slave']['1']['pconnect'] = '0';
* $_config['db']['1']['slave']['1']['dbname'] = 'x1';
* $_config['db']['1']['slave']['1']['tablepre'] = 'pre_';
* $_config['db']['1']['slave']['1']['weight'] = '0'; //權(quán)重:數(shù)據(jù)越大權(quán)重越高
*
* $_config['db']['1']['slave']['2']['dbhost'] = 'localhost';
* ...
*
*/
$_config['db']['1']['slave'] = array();
//啟用從服務(wù)器的開(kāi)關(guān)
$_config['db']['slave'] = false;
/**
* 數(shù)據(jù)庫(kù) 分布部署策略設(shè)置
*
* @example 將 common_member 部署到第二服務(wù)器, common_session 部署在第三服務(wù)器, 則設(shè)置為
* $_config['db']['map']['common_member'] = 2;
* $_config['db']['map']['common_session'] = 3;
*
* 對(duì)于沒(méi)有明確聲明服務(wù)器的表, 則一律默認(rèn)部署在第一服務(wù)器上
*
*/
$_config['db']['map'] = array();
/**
* 數(shù)據(jù)庫(kù) 公共設(shè)置, 此類設(shè)置通常對(duì)針對(duì)每個(gè)部署的服務(wù)器
*/
$_config['db']['common'] = array();
/**
* 禁用從數(shù)據(jù)庫(kù)的數(shù)據(jù)表, 表名字之間使用逗號(hào)分割
*
* @example common_session, common_member 這兩個(gè)表僅從主服務(wù)器讀寫, 不使用從服務(wù)器
* $_config['db']['common']['slave_except_table'] = 'common_session, common_member';
*
*/
$_config['db']['common']['slave_except_table'] = '';
/**
* 內(nèi)存服務(wù)器優(yōu)化設(shè)置
* 以下設(shè)置需要PHP擴(kuò)展組件支持,其中 memcache 優(yōu)先于其他設(shè)置,
* 當(dāng) memcache 無(wú)法啟用時(shí),會(huì)自動(dòng)開(kāi)啟另外的兩種優(yōu)化模式
*/
//內(nèi)存變量前綴, 可更改,避免同服務(wù)器中的程序引用錯(cuò)亂
$_config['memory']['prefix'] = 'discuz_';
/* reids設(shè)置, 需要PHP擴(kuò)展組件支持, timeout參數(shù)的作用沒(méi)有查證 */
$_config['memory']['redis']['server'] = '192.168.18.129';
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 1;
$_config['memory']['redis']['timeout'] = 0;
$_config['memory']['redis']['requirepass'] = '';
/**
* 是否使用 Redis::SERIALIZER_IGBINARY選項(xiàng),需要igbinary支持,windows下測(cè)試時(shí)請(qǐng)關(guān)閉,否則會(huì)出>現(xiàn)錯(cuò)誤Reading from client: Connection reset by peer
* 支持以下選項(xiàng),默認(rèn)使用PHP的serializer
* [重要] 該選項(xiàng)已經(jīng)取代原來(lái)的 $_config['memory']['redis']['igbinary'] 選項(xiàng)
* Redis::SERIALIZER_IGBINARY =2
* Redis::SERIALIZER_PHP =1
* Redis::SERIALIZER_NONE =0 //則不使用serialize,即無(wú)法保存array
*/
$_config['memory']['redis']['serializer'] = 1;
$_config['memory']['memcache']['server'] = ''; // memcache 服務(wù)器地址
$_config['memory']['memcache']['port'] = 11211; // memcache 服務(wù)器端口
$_config['memory']['memcache']['pconnect'] = 1; // memcache 是否長(zhǎng)久連接
$_config['memory']['memcache']['timeout'] = 1; // memcache 服務(wù)器連接超時(shí)
$_config['memory']['apc'] = 0; // 啟動(dòng)對(duì) APC 的支持
$_config['memory']['apcu'] = 0; // 啟動(dòng)對(duì) APCu 的支持
$_config['memory']['xcache'] = 0; // 啟動(dòng)對(duì) xcache 的支持
$_config['memory']['eaccelerator'] = 0; // 啟動(dòng)對(duì) eaccelerator 的支持
$_config['memory']['wincache'] = 0; // 啟動(dòng)對(duì) wincache 的支持
$_config['memory']['yac'] = 0; //啟動(dòng)對(duì) YAC 的支持
$_config['memory']['file']['server'] = ''; // File 緩存存放目錄,如設(shè)置為 data/cache/filecache ,設(shè)置后啟動(dòng) File 緩存
// 服務(wù)器相關(guān)設(shè)置
$_config['server']['id'] = 1; // 服務(wù)器編號(hào),多webserver的時(shí)候,用于標(biāo)識(shí)當(dāng)前服務(wù)器的ID
// 附件下載相關(guān)
//
// 本地文件讀取模式; 模式2為最節(jié)省內(nèi)存方式,但不支持多線程下載
// 1=fread 2=readfile 3=fpassthru 4=fpassthru+multiple
$_config['download']['readmod'] = 2;
// 是否啟用 X-Sendfile 功能(需要服務(wù)器支持)0=close 1=nginx 2=lighttpd 3=apache
$_config['download']['xsendfile']['type'] = 0;
// 啟用 nginx X-sendfile 時(shí),論壇附件目錄的虛擬映射路徑,請(qǐng)使用 / 結(jié)尾
$_config['download']['xsendfile']['dir'] = '/down/';
// 頁(yè)面輸出設(shè)置
$_config['output']['charset'] = 'utf-8'; // 頁(yè)面字符集
$_config['output']['forceheader'] = 1; // 強(qiáng)制輸出頁(yè)面字符集,用于避免某些環(huán)境亂碼
$_config['output']['gzip'] = 0; // 是否采用 Gzip 壓縮輸出
$_config['output']['tplrefresh'] = 1; // 模板自動(dòng)刷新開(kāi)關(guān) 0=關(guān)閉, 1=打開(kāi)
$_config['output']['language'] = 'zh_cn'; // 頁(yè)面語(yǔ)言 zh_cn/zh_tw
$_config['output']['staticurl'] = 'static/'; // 站點(diǎn)靜態(tài)文件路徑,“/”結(jié)尾
$_config['output']['ajaxvalidate'] = 0; // 是否嚴(yán)格驗(yàn)證 Ajax 頁(yè)面的真實(shí)性 0=關(guān)閉,1=打開(kāi)
$_config['output']['iecompatible'] = 0; // 頁(yè)面 IE 兼容模式
// COOKIE 設(shè)置
$_config['cookie']['cookiepre'] = 'discuz_'; // COOKIE前綴
$_config['cookie']['cookiedomain'] = ''; // COOKIE作用域
$_config['cookie']['cookiepath'] = '/'; // COOKIE作用路徑
// 站點(diǎn)安全設(shè)置
$_config['security']['authkey'] = 'asdfasfas'; // 站點(diǎn)加密密鑰
$_config['security']['urlxssdefend'] = true; // 自身 URL XSS 防御
$_config['security']['attackevasive'] = 0; // CC 攻擊防御 1|2|4|8
$_config['security']['querysafe']['status'] = 1; // 是否開(kāi)啟SQL安全檢測(cè),可自動(dòng)預(yù)防SQL注入攻擊
$_config['security']['querysafe']['dfunction'] = array('load_file','hex','substring','if','ord','char');
$_config['security']['querysafe']['daction'] = array('@','intooutfile','intodumpfile','unionselect','(select', 'unionall', 'uniondistinct');
$_config['security']['querysafe']['dnote'] = array('/*','*/','#','--','"');
$_config['security']['querysafe']['dlikehex'] = 1;
$_config['security']['querysafe']['afullnote'] = 0;
$_config['security']['creditsafe']['second'] = 0; // 開(kāi)啟用戶積分信息安全,可防止并發(fā)刷分,滿足 times(次數(shù))/second(秒) 的操作無(wú)法提交
$_config['security']['creditsafe']['times'] = 10;
$_config['admincp']['founder'] = '1'; // 站點(diǎn)創(chuàng)始人:擁有站點(diǎn)管理后臺(tái)的最高權(quán)限,每個(gè)站點(diǎn)可以設(shè)置 1名或多名創(chuàng)始人
// 可以使用uid,也可以使用用戶名;多個(gè)創(chuàng)始人之間請(qǐng)使用逗號(hào)“,”分開(kāi);
$_config['admincp']['forcesecques'] = 0; // 管理人員必須設(shè)置安全提問(wèn)才能進(jìn)入系統(tǒng)設(shè)置 0=否, 1=是[安全]
$_config['admincp']['checkip'] = 1; // 后臺(tái)管理操作是否驗(yàn)證管理員的 IP, 1=是[安全], 0=否。僅在管理員無(wú)法登陸后臺(tái)時(shí)設(shè)置 0。
$_config['admincp']['runquery'] = 0; // 是否允許后臺(tái)運(yùn)行 SQL 語(yǔ)句 1=是 0=否[安全]
$_config['admincp']['dbimport'] = 1; // 是否允許后臺(tái)恢復(fù)論壇數(shù)據(jù) 1=是 0=否[安全]
/**
* 系統(tǒng)遠(yuǎn)程調(diào)用功能模塊
*/
// 遠(yuǎn)程調(diào)用: 總開(kāi)關(guān) 0=關(guān) 1=開(kāi)
$_config['remote']['on'] = 0;
// 遠(yuǎn)程調(diào)用: 程序目錄名. 出于安全考慮,您可以更改這個(gè)目錄名, 修改完畢, 請(qǐng)手工修改程序的實(shí)際目錄
$_config['remote']['dir'] = 'remote';
// 遠(yuǎn)程調(diào)用: 通信密鑰. 用于客戶端和本服務(wù)端的通信加密. 長(zhǎng)度不少于 32 位
// 默認(rèn)值是 $_config['security']['authkey'] 的 md5, 您也可以手工指定
$_config['remote']['appkey'] = md5($_config['security']['authkey']);
// 遠(yuǎn)程調(diào)用: 開(kāi)啟外部 cron 任務(wù). 系統(tǒng)內(nèi)部不再執(zhí)行cron, cron任務(wù)由外部程序激活
$_config['remote']['cron'] = 0;
// $_GET|$_POST的兼容處理,0為關(guān)閉,1為開(kāi)啟;開(kāi)啟后即可使用$_G['gp_xx'](xx為變量名,$_GET和$_POST集合的所有變量名),值為已經(jīng)addslashes()處理過(guò)
$_config['input']['compatible'] = 1;
// Addon Setting
//$_config['addonsource'] = 'xx1';
//$_config['addon'] = array(
// 'xx1' => array(
// 'website_url' => 'http://127.0.0.1/AppCenter',
// 'download_url' => 'http://127.0.0.1/AppCenter/index.php',
// 'download_ip' => '',
// 'check_url' => 'http://127.0.0.1/AppCenter/?ac=check&file=',
// 'check_ip' => ''
// )
//);
?>
config_global.php
編輯config_ucenter_default.php并重命名為config_ucenter.php:
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: config_ucenter_default.php 11023 2010-05-20 02:23:09Z monkey $
*/
// ============================================================================
define('UC_CONNECT', 'mysql'); // 連接 UCenter 的方式: mysql/NULL, 默認(rèn)為空時(shí)為 fscoketopen(), mysql 是直接連接的數(shù)據(jù)庫(kù), 為了效率, 建議采用 mysql
// 數(shù)據(jù)庫(kù)相關(guān) (mysql 連接時(shí))
define('UC_DBHOST', '192.168.18.129'); // UCenter 數(shù)據(jù)庫(kù)主機(jī)
define('UC_DBUSER', 'root'); // UCenter 數(shù)據(jù)庫(kù)用戶名
define('UC_DBPW', '123456'); // UCenter 數(shù)據(jù)庫(kù)密碼
define('UC_DBNAME', 'ucenter'); // UCenter 數(shù)據(jù)庫(kù)名稱
define('UC_DBCHARSET', 'utf8'); // UCenter 數(shù)據(jù)庫(kù)字符集
define('UC_DBTABLEPRE', '`ucenter`.uc_'); // UCenter 數(shù)據(jù)庫(kù)表前綴
define('UC_DBCONNECT', '0'); // UCenter 數(shù)據(jù)庫(kù)持久連接 0=關(guān)閉, 1=打開(kāi)
// 通信相關(guān)
define('UC_KEY', 'yeN3g9EbNfiaYfodV63dI1j8Fbk5HaL7W4yaW4y7u2j4Mf45mfg2v899g451k576'); // 與 UCenter 的通信密鑰, 要與 UCenter 保持一致
define('UC_API', 'http://localhost/ucenter/branches/1.5.0/server'); // UCenter 的 URL 地址, 在調(diào)用頭像時(shí)依賴此常量
define('UC_CHARSET', 'utf-8'); // UCenter 的字符集
define('UC_IP', '127.0.0.1'); // UCenter 的 IP, 當(dāng) UC_CONNECT 為非 mysql 方式時(shí), 并且當(dāng)前應(yīng)用服務(wù)器解析域名有問(wèn)題時(shí), 請(qǐng)?jiān)O(shè)置此值
define('UC_APPID', '1'); // 當(dāng)前應(yīng)用的 ID
// ============================================================================
define('UC_PPP', '20');
?>
config_ucenter.php
同時(shí),將C:inetpubwwwrootdiscuz目錄權(quán)限添加到Everyone,右鍵C:inetpubwwwrootdiscuz,選擇【安全】選項(xiàng)卡,添加用戶Everyone,并給予可讀可寫的權(quán)限;
4、IIS部署discuz
新建站點(diǎn):
添加模塊映射,請(qǐng)求路徑:*.php 模塊:FastCgiModule 可執(zhí)行文件:D:phpphp-cgi.exe D:php是php的安裝目錄
添加默認(rèn)文檔:index.php
運(yùn)行站點(diǎn)之后,打開(kāi)瀏覽器輸入http://localhost:82 ,就可以打開(kāi)discuz的安裝向?qū)Я?/p>
同意之后,進(jìn)入環(huán)境檢查頁(yè)面,看頁(yè)面是否全部都是綠的的勾勾,是的話進(jìn)入下一步,不是則逐個(gè)處理:
設(shè)置運(yùn)行環(huán)境,我這里選擇【全新安裝 Discuz! X (含 UCenter Server)】
安裝數(shù)據(jù)庫(kù),這個(gè)配置是前面我們配置過(guò)了,所以只需要添加管理員賬號(hào)即可:
點(diǎn)擊下一步即開(kāi)始安裝:
到這里discuz安裝即完成了,可以在瀏覽器直接輸入http://localhost:82進(jìn)入,我們還可以使用上面添加的管理員賬號(hào)進(jìn)入http://localhost:82/admin.php進(jìn)入后臺(tái)管理員頁(yè)面,可以進(jìn)行人員管理,郵件設(shè)置等等功能,還能檢驗(yàn)discuz安裝是否完善等等,這就是后臺(tái)操作的東西了:
總結(jié)
以上是生活随笔為你收集整理的IIS部署php项目——discuz论坛的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: bzoj4636: 蒟蒻的数列
- 下一篇: 从零开始入门 K8s | 理解容器运行时