第一組 指導教授:潘仁義老師 組 員:方明建 501435004 盧宗宏 501435006 網路程式設計專題 —背景知識 第一組 指導教授:潘仁義老師 組 員:方明建 501435004 盧宗宏 501435006
OUTLINE 專題題目 所需軟體 XAMPP APACHE 關聯式資料庫 MySQL phpmyadmin PHP
專題題目 網頁版討論區 利用Apache網頁伺服器架設網站、MySQL關聯式資料庫儲存資料、PHP網頁開發語言,設計一個網頁版討論區。
所需軟體 Win 7 XAMPP APACHE網頁伺服器 MySQL資料庫 Phpmyadmin PHP網頁程式環境 作業系統 架設網站 MySQL資料庫 儲存網頁資料 Phpmyadmin 管理MySQL資料庫 PHP網頁程式環境 開發網頁
XAMPP XAMPP的名稱來自以下組合: XAMPP是一套整合了APACHE網頁伺服器、MySQL資料庫、PHP網頁開發程式的安裝套件。 Perl 版本有:Linux、Wiondows、OS X、Solaris,專題中,將在Win 7中安裝Windows版本。
Apache Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數電腦作業系統中執行,由於其跨平台和安全性。
Apache設定檔httpd ServerTokens OS ServerRoot "/etc/httpd“ 伺服器的版本與作業系統,不需要更動。 ServerRoot "/etc/httpd“ 伺服器設定的最頂層目錄,包括 logs, modules 等等的資料都應該要放置到此目錄底下 PidFile run/httpd.pid 放置 PID 的檔案,可方便 Apache 軟體的管理,檔案在 /etc/httpd/run/httpd.pid。 Timeout 300 不論接收或傳送,當持續連線等待超過 60 秒則該次連線就中斷。
Apache設定檔httpd KeepAlive On MaxKeepAliveRequests 500 是否允許持續性的連線,亦即一個 TCP 連線可以具有多個檔案資料傳送的要求。 MaxKeepAliveRequests 500 與 KeepAlive 有關,當 KeepAlive 設定為 On 時,則這個數值可決定 該次連線能夠傳輸的最大傳輸數量。0 代表不限制。 KeepAliveTimeout 15 在允許 KeepAlive 的條件下,則該次連線在最後一次傳輸後等待延遲的秒數。當超過上述秒數則該連線將中斷。
Apache設定檔httpd Listen 80 監聽 80 port LoadModule auth_basic_module modules/mod_auth_basic.so .... 載入模組的設定項目。 Include conf.d/*.conf 放置到 /etc/httpd/conf.d/*.conf 的設定都會被讀入。 User apache Group apache 擁有者與群組設定。提供的網頁檔案能不能被瀏覽都與這個身份有關。
Apache設定檔httpd ServerAdmin test@www.test.com ServerName www.test.com 系統管理員的 email,當網站出現問題時,錯誤訊息會顯示的聯絡信箱(錯誤回報)。 ServerName www.test.com 設定主機名稱 UseCanonicalName Off 是否使用標準主機名稱,如果你的主機有多個主機名稱,若這個設定為 On,那麼 Apache 只接受上頭 servername 指定的主機名稱連線而已。
Apache設定檔httpd DocumentRoot “/var/www/html“ <Directory /> Options FollowSymLinks #讓連結檔可以生效 AllowOverride None #是否允許額外設定檔 .htaccess 的某些參數覆寫 </Directory>
Apache設定檔httpd <Directory “/var/www/html”> <==針對特定目錄的限制 Options Indexes #如果在此目錄下找不到『首頁檔案』時, 就顯示整個目錄下的檔案名稱 AllowOverride None Order allow,deny #決定此目錄是否可被 apache 的 PID 所瀏覽的權限設定 Allow from all allow,deny #決定此目錄是否可被 apache 的 PID 所瀏覽的權限設定 </Directory>
Apache設定檔httpd Alias /icons/ “/var/www/icons/” <==製作一個目錄別名 <Directory "/var/www/icons"> Options Indexes MultiViews#多國語言支援的頁面 AllowOverride None Order allow,deny Allow from all </Directory>
關聯式資料庫 所謂關聯性資料庫,是建立在關聯模型基礎上的資料庫,是指使用”關聯”這種簡單且一致的資料結構來表示資料庫, 因此資料庫就會變成是由一堆關聯的集合所構成,也就是可視為一個類似Excel的二維表格。
關聯式資料庫 關聯具有以下性質: 每一行皆包含某種屬性的數值,且每一欄位內容須為單一值 關聯具有以下性質: 每一行皆包含某種屬性的數值,且每一欄位內容須為單一值 每行都有一個單獨的屬性名稱,行與行之間的順序則無關緊要 每列都是獨一無二的,也就是說一旦決定某一屬性為關鍵值後,沒有任兩列會重複 列的順序也是無關緊要的
關聯式資料庫 關聯式資料庫中常用的操作包括: 增加 刪除 修改 查詢
MySQL 原開發者為瑞典的MySQL AB公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。 一種關聯式資料庫,預設使用TCP 3306 port。
MYSQL的管理工具--- phpmyadmin 一個以PHP為基礎,以Web-Base方式架構在網站主機上的MySQL的資料庫管理工具,讓管理者可用Web介面管理MySQL資料庫。
常用的SQL語法 INSERT INSERT INTO "表格名" ("欄位1", "欄位2", ...) VALUES ("值1", "值2", ...); UPDATE UPDATE "表格名” SET "欄位1" = [新值] WHERE "條件"; SELECT SELECT "欄位名" FROM "表格名"; DELETE FROM DELETE FROM "表格名” WHERE "條件";
PHP的運作原理 Server 端的描述語言,主要的目的是用來製作動態網頁。 開放原始碼(Open Source)而且是跨平台的伺服端描述語言。 建立成一個Apache 模組時,PHP 能夠快速執行地不需像CGI 需要產生新的process 執行。 可以用來傳送HTTP 表頭,也可以設定Cookies,做授權管理,以及將使用者重新導向至新的頁面。
PHP的運作原理 例:Server端的index.php檔案內容如下: <html> 第一個PHP輸出的程式<br> echo “Hello PHP!!”; ?> </html>
PHP的運作原理 Client端Browser連線到Server端的Apache動作如下: 1.open index.php 2.輸出HTTP回應 3.for(;檔案未結束;){ if(檢查到<?php){ for(;是否檢查到?>表示php程式段落結束離 開迴圈;){ 呼叫php parser,將程式輸出結果,輸出到用戶端} }
PHP搭配Apache、MySQL
PHP、Apache、MySQL的合作原理 使用者透過PHP 存取MySQL資料庫內容的流程: 1.使用者向Apache要求PHP相關網頁(.php)。 2.當Apache收到這個要求,經判斷,把此要求轉交給PHP直譯器負責。 3. PHP直譯器解譯此網頁的PHP語法,當遇到MySQL相關的函式,則把Request間接傳遞給MySQL。 4. My SQL把所要求的結果反傳回PHP 。 5. PHP直譯器把此結果包裝成Apache看得懂的Html語法,後傳回給Apache。 6. Apache把此結果(已被PHP處理成Html)傳回給使用者的browser。
PHP、Apache、MySQL的合作原理 PHP5主要透過4個函式和MySQL溝通: mysql_connect —開啟一和MySQL Server 的連結 $link=mysql_connect(“localhost”, “mysql_user”,”mysql_password”); mysql_query—送給MySQL的要求 $result=mysql_query(“SELECT * WHERE 1=1”); mysql_fetch_row—透過mysql_query的到的結果 While($row=mysql_fetch_row($result)) {… …} mysql_close—關閉連線。 mysql_close($link);
REFFERENCE XAMPP http://zh.wikipedia.org/wiki/XAMPP APACHE http://inspire.twgg.org/internet/host-setting/item/79-apachea39s-httpdconf-file-to-set-arguments-detailed.html http://linux.vbird.org/linux_server/0360apache.php
REFFERENCE 關聯式資料庫 http://zh.wikipedia.org/zh-tw/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E5%BA%93 http://neural.cs.nthu.edu.tw/jang/courses/cs3431/student/relationalDB_902508/index.html http://en.wikipedia.org/wiki/Relational_database
REFFERENCE MySQL http://zh.wikipedia.org/wiki/MySQL SQL http://www.1keydata.com/tw/sql/sql.html Phpmyadmin http://zh.wikipedia.org/wiki/PhpMyAdmin PHP http://zh.wikipedia.org/wiki/PHP
報告完畢