Transcript 網路程式設計--專題-
網路程式設計專題 —背景知識 第一組 指導教授:潘仁義老師 組 員:方明建 501435004 盧宗宏 501435006 OUTLINE 專題題目 所需軟體 XAMPP APACHE 關聯式資料庫 MySQL phpmyadmin PHP 專題題目 網頁版討論區 利用Apache網頁伺服器架設網站、MySQL關聯 式資料庫儲存資料、PHP網頁開發語言,設計 一個網頁版討論區。 所需軟體 Win 7 XAMPP 儲存網頁資料 Phpmyadmin 架設網站 MySQL資料庫 整合APACHE、MySQL、PHP APACHE網頁伺服器 作業系統 管理MySQL資料庫 PHP網頁程式環境 開發網頁 XAMPP XAMPP是一套整合了APACHE網頁伺服器、MySQL資 料庫、PHP網頁開發程式的安裝套件。 XAMPP的名稱來自以下組合: X(支持跨平台) Apache MySQL PHP Perl 版本有:Linux、Wiondows、OS X、Solaris,專題中, 將在Win 7中安裝Windows版本。 Apache Apache軟體基金會的一個開放原始碼的網 頁伺服器,可以在大多數電腦作業系統中 執行,由於其跨平台和安全性。 Apache設定檔httpd ServerTokens OS 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 連線可以 具有多個檔案資料傳送的要求。 與 KeepAlive 有關,當 KeepAlive 設定為 On 時,則 這個數值可決定 該次連線能夠傳輸的最大傳輸數 量。0 代表不限制。 KeepAliveTimeout 15 在允許 KeepAlive 的條件下,則該次連線在最後一 次傳輸後等待延遲的秒數。當超過上述秒數則該連 線將中斷。 Apache設定檔httpd Listen 80 LoadModule auth_basic_module modules/mod_auth_basic.so .... 載入模組的設定項目。 Include conf.d/*.conf 監聽 80 port 放置到 /etc/httpd/conf.d/*.conf 的設定都會被讀入。 User apache Group apache 擁有者與群組設定。提供的網頁檔案能不能被瀏覽都 與這個身份有關。 Apache設定檔httpd ServerAdmin [email protected] ServerName www.test.com 系統管理員的 email,當網站出現問題時,錯 誤訊息會顯示的聯絡信箱(錯誤回報)。 設定主機名稱 UseCanonicalName Off 是否使用標準主機名稱,如果你的主機有多個 主機名稱,若這個設定為 On,那麼 Apache 只 接受上頭 servername 指定的主機名稱連線而已。 Apache設定檔httpd DocumentRoot “/var/www/html“ 這個設定值規範了 WWW 伺服器主網頁所放置 的『目錄』 <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 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> <?php 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/hostsetting/item/79-apachea39s-httpdconf-fileto-set-arguments-detailed.html http://linux.vbird.org/linux_server/0360ap ache.php REFFERENCE 關聯式資料庫 http://zh.wikipedia.org/zhtw/%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/inde x.html http://en.wikipedia.org/wiki/Relational_da tabase 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