Apache+PHP+Discuz論壇開發環境搭建
1. 以管理員身份執行命令提示符,具體操作方法是,點“開始”->“所有程式”->“附件”,右鍵點選“命令提示符”,選擇“以管理員身份執行”就可以了。
2. 把路徑指向Apache檔案下bin檔案
3. 輸入httpd –k install()
4. 安裝成功介面:
以上過程是把apache服務安裝到windows中
5. Apache已被成功安裝,但配置檔案中的ServerRoot為無效路徑,所以我們以記事本或其他編輯工具開啟cofn下的httpd.conf進行配置
6. DefineSRVROOT "E:/Server_Core/Apache"
7. 把DirectoryIndex index.html改為DirectoryIndexindex.html index.jsp index.php default.jsp default.php index.html.var
8. 找到#LoadModule ssl_module modules/mod_ssl.so 並在該行後新增:LoadModule php5_module X:/Server_Core/PHP / php5apache2_2.dll
9. DocumentRoot"E: \www"
10. <Directory " E: \www ">
11. 在<Directory "${SRVROOT}/cgi-bin"> </Directory>後新增
AddTypeapplication/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps
12. 環境配置完成。
13. Apache的刪除:進入安裝bin目錄後輸入sc delete apache2.X
Apache2.2與2.4許可權配置區別
訪問控制
在2.2,根據客戶端的主機名,IP地址,客戶端請求的其他特徵的訪問控制用的指令已完成Order ,Allow,Deny,和Satisfy。
2.4,這樣的訪問控制以同樣的方式與其他授權檢查完成後,使用新的模組mod_authz_host。舊的訪問控制成語應該由新的身份驗證機制所取代,但為了與舊配置的相容性,新的模組mod_access_compat提供。
Order deny,allow
Deny from all
Require all denied
安裝PHP
進入 X:/Server_Core/PHP 資料夾,將 php.ini-dist 重新命名為 php.ini ;
一般沒有php.ini_dist,一般將php.ini-production修改為php.ini,確保測試環境(本地)與正式環境(線上)一致
php.ini-development 適合開發程式使用(測試用) php.ini-production 擁有較高的安全性設定,則適合上線當產品使用
2. 開啟 php.ini 檔案,找到:extension_dir = "./"
將其改為;
extension_dir ="X:/Server_Core/PHP/ext"
3. 找到:Windows Extensions
在 WindowsExtensions 下方的動態模組配置中,需要開啟以下模組支援:(去掉模組配置每行前面的;號即可)
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll
4. 將disable_functions=
disable_functions =
改為:
disable_functions=phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
5. 儲存 php.ini 檔案,並將其複製到 C:/Windows/
6. 環境搭建完成,重啟Apache。在IE中輸入http://localhost/phpinfo.php,若正常出現php環境變數,成功(特別要注意:紅色框框出現的php.ini是C:/Windows/,如果不是就需要你注意了,這個時候需要刪除其他路徑下面的配置檔案,然後重新啟動apache。)。
安裝MySQL
安裝完成mysql之後,為php新增mysql支援
開啟php的配置檔案php.ini(D:\phpEnv\php\php.ini)
(1)(721行); extension_dir = "ext",去掉前面的“;”,並改為extension_dir="D:\phpEnv\php\ext"開啟php的擴充套件支援,ext資料夾下有很多php的擴充套件支援.dll檔案,感興趣的同學可以看一下。
(2)然後就是開啟php的mysql擴充套件了
(875、876行)去掉前面的“;”
extension=php_mysql.dll
extension=php_mysqli.dll
安裝Discuz論壇
(1) X:/wwwroot/下面建立bbs目錄
(2)將下載好的Discuz610_UC100_GBK.zip開啟,
然後把upload下面所有檔案拷貝到你的X:/wwwroot/bbs/下面。
(3) 重新啟動apache。
(4) 完畢後,在瀏覽器中執行安裝程式(http://localhost/bbs/install)進入準備安裝頁面.
(5) 驗證資料庫安裝
有些安裝不能通過,需要留意下3.3安裝mysql這個地方。
恭喜你成功安裝了BBS了,這個時候你就可以享受自己的成果了。
由於apache已經佔了機器的80埠,如果你原先需要有Tomcat在80埠上跑的就麻煩了,這個時候就需要往下看了,這個時候我們需要整合apache和Tomcat了。
和Apache(用不到)
Mod_jk.so下載:在Apache/tomcat官網中找到下載映象地址,找到binary下載。
1. 配置Tomcat:
查詢Tomcat目錄下的 conf/server.xml檔案,在<host></host>中間加入以下語句以修改其預設的目錄:
<Context path="" docBase="X:/wwwroot"reloadable="true" crossContext="true"/>
2. 查詢Tomcat目錄下的conf/workers.properties檔案(沒有就建立),以以下為標準新增/修改:
workers.tomcat_home=D:/ProgramFiles/Tomcat #讓mod_jk模組知道Tomcat的位置workers.java_home=D:/Program Files/Java/jre1.6.0_07 #讓mod_jk模組知道jre的位置ps=/
worker.list=ajp13 #模組版本worker.ajp13.port=8009 #工作埠,若沒佔用則不用修改worker.ajp13.host=localhost #本機,若上面的Apache主機不為localhost,作相應修改worker.ajp13.type=ajp13 #型別worker.ajp13.lbfactor=1 #代理數,不用修改。
對Tomcat的設定進行任何修改後都要重啟才可以生效。
3. 配置Apache:
a) 開啟E:\Server_Core\Apache\conf下的httpd.conf,在最後加入下面這段程式碼並儲存。
Include conf/extra/mod_jk.conf
開啟E:\Server_Core\Apache\conf\extra建立mod_jk.conf檔案,內容如下
# 載入mod_jk模組,注意模組檔案的路徑
LoadModule jk_modulemodules/mod_jk.so
#指定tomcat監聽配置檔案地址
JkWorkersFile"E:/Server_Core/apache-tomcat-7.0.40/conf/workers.properties"
#指定日誌存放位置
JkLogFile"E:/Server_Core/apache-tomcat-7.0.40/logs/mod_jk2.log"
# 宣告mod_jk的日誌級別(可選)
JkLogLevel info
# 將/*.action和/*.jsp型別的請求都分配給Tomcat,其餘型別的有Apache Http Server自己處理
# 注意JkMount後面的ajp13即對應worker.properties檔案中worker.list裡的worker的名稱
JkMount /servlet/* ajp13
#讓Apache支援對servlet傳送,用以Tomcat解析
JkMount /*.jsp ajp13
#讓Apache支援對jsp傳送,用以Tomcat解析
JkMount /*.do ajp13
#讓Apache支援對.do傳送,用以Tomcat解析
<Location /jkstatus>
Order deny,allow
Allow from all
</Location>
4. 設定tomcat監聽埠,找到下面的內容:
<ConnectorclassName="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080"minProcessors="5" maxProcessors="75"
enableLookups="true"redirectPort="8443"
acceptCount="100" debug="0"connectionTimeout="0"
useURIValidationHack="false"disableUploadTimeout="true" />
5. 找到以下8009埠的地方,這個很重要,通過8009,tomcat與apache互相通訊,如果下面的部分,被<!-- -->註釋掉,一定要把<!-- -->去掉.
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
6. 配置httpd.conf檔案
這種方法把tomcat和apache的根目錄設定為同一目錄,但是必須限制客戶對目錄下一些檔案的訪問,比如存入class的web-inf,在httpd.conf下新增以下程式碼:#denythe access to WEB-INF
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>
這樣,當試圖記問http://localhost/web-inf/時,apache將會拒絕.
7. 整合結束