網路程式設計--專題-

Download Report

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