1. 程式人生 > >Apache+PHP+Discuz論壇開發環境搭建

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
AllowDeny,和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檔案

這種方法把tomcatapache的根目錄設定為同一目錄,但是必須限制客戶對目錄下一些檔案的訪問,比如存入classweb-inf,在httpd.conf下新增以下程式碼:#denythe access to WEB-INF
<Directory ~ "/WEB-INF/"> 

Order allow,deny 
Deny from all 
</Directory> 
 這樣,當試圖記問http://localhost/web-inf/時,apache將會拒絕.

7.        整合結束