精華區beta PHP 關於我們 聯絡資訊
基於原PO那麼想噓我的文,我只好發一篇文章讓他噓一下 ?! 小弟我今天不是要來戰文 PHP寫了5 ~ 6年了,很少看到那麼妙的論點 只好就我的實務經驗提出我的見解 為什麼我會說原PO觀念錯誤 ? 什麼叫做 「Apache 不能算做安放平台,它和 MySQL,PHP 可以平行 MySQL & PHP 都有命令列界面,可以直接執行 三者的安裝想要以任何順序都可以」 上面是原PO提出的,至於其他有的沒的,落落長,抱歉 恕刪 你都忽略了 "角色" 今天原發問者是想要做一個網站,什麼樣的角色,可以符合他想要的條件呢? 答案是 "伺服器" 什麼是伺服器? 下面 WIKI 是降子寫的 http://tinyurl.com/lg6cyz 其中,WIKI裡所列的兩項 檔案伺服器及網頁伺服器 似乎比較符和原發問者所需要的角色 我們先撇開PHP的部份,先從最簡單的HTML來舉例說明好了 我們能否經由 "檔案伺服器" 開啟某個 XXX.HTML 的檔案 在瀏覽器顯示該網頁內容? 答案是 : 可以的 。 不但網頁內容的顯示,或是經用網頁內的 "相對路徑" 的連結,去取得其他頁的資料 那網頁伺服器幹嘛用的 ... 檔案伺服器一樣能滿足同樣的需求呀 ?! 網頁伺服器確實跟檔案伺服器很像 除了網路協定的不同外 當然 為了讓使用者能方便及正確的瀏覽 "網頁" 網頁伺服器還幫忙跟client端的瀏覽器 (ex:IE FF safari etc...) 作溝通 送出一些 檔案伺服器 所沒有 的資訊 簡單舉幾個例子好了: 索引頁 : 當瀏覽器所訪問的位置沒指定檔案時,網頁伺服器會送出一個預設頁 通常是設定為 index.html http status code : 例如 200 是正常 404是找不到網頁 302 是重新導向 Content-Type : 例如 text/html 告知瀏覽器,這個位址是屬於哪個類型的檔 Charset : 例如 utf-8 告知瀏覽器,這檔案的編碼是哪一種 或許上面某些資訊在網頁內的meta裡也會提供,但是 目的是為了讓使用者 能 "正確" 的使用網頁內容 這些是檔案伺服器,所沒有提供的資訊 因此,當我們要給人家使用我們的網頁時,最好,是使用網頁伺服器 來提供類似的服務是最好的 那,網頁伺服器有哪些呢 ? WIKI裡有提到 Apache,thttpd,微軟的IIS 除了WIKI裡提到的,還有JSP的 tomcat 也是屬於網頁伺服器的一種 下面,簡單做個排列,列出網頁伺服器及其能夠應用的語言程式 apache thttpd IIS tomcat ------------- --------------- -------- ------------- HTML ○ ○ ○ ○ php ○ ○ ○ 乂 ASP ○ 乂 ○ 乂 JSP 乂 乂 乂 ○ pl ○ ○ 乂 乂 另外 也有FLASH 的media server 這個先不納入討論 依照原發問者,想踏入PHP的領域來看 最好的網頁伺服器選擇,就是apache了 「免費 、 跨平台 (windows unix mac 皆支援)、模組開發較完整、教學資源豐富」 原PO說,apache不算是安放平台 這是確實 apache php mysql 都有一個共同的安放平台 那就是 OS (作業系統) 但是 ! php 站在網頁伺服器的角色上 它卻必需依附在apache上,透過apache 對外送出php編譯出來的結果 拋開網頁伺服器的角色,php確實是可以獨立存在的 所以一般而言,確實是有些安裝的順序必須先用apache 先安裝起 再去安裝php會比較恰當些 至於mysql 上面WIKI裡有提到他是屬於 "資料庫伺服器" 它的角色,最主要的目的就是拿來存放資料用的 php調用的部份,是利用php下的一個模組php-mysql 來跟mysql 進行溝通 模組內已經提供了豐富的函式,以利開發者使用 剩於詳細的,可以移駕至 DB 版, 這裡是php 版 角色要清楚,才知道自已寫的程式,是在幹什麼 : 我找了一個網頁 : http://chensh.loxa.edu.tw/php/ : 它寫得夠完整 : : 如果今天所謂的標準答案,就是不斷的拷貝經典 : (我不是說想法一致的人都是抄的;他也是有理解再回吐資訊,但資訊有八成一樣) : 那麼給個網址叫人去看就可以了;人家還有美美的排版,有貼圖 : : 對於我來說,了解一個問題,就是可能問出和考試不一樣的問題,回出考試不考的答案 : 用另一個角度了解及回答 : : 這很重要,因為有時發問者無法一次到達適合的觀測點,比如 : 問:先生,請問這個地址是不是那棟紅色的房子 : 答:喔,這地址就是那個街角那一間 : 問:街角那間是紅色的嗎? : 答:反正就街角那一間 : 我想 上面問答的例子,答的人 很明顯的誤很大 因為,你也不知道街角的那間房子是怎樣 他手上都有地址了,我會告訴他那條街是哪一條 請他循著那條街的門牌去找到他要的房子 不會告訴他連我都不知道街角的房子是幾號的答案 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.193.67
weiyucsie :推這篇XD 06/18 15:50
HuangJC :..你是對的,但我不是錯的.你學五六年,我算全部幾年了 06/18 21:05
HuangJC :了解 PHP 可以獨立執行,是為了帶出 DEBUG 中途的一句 06/18 21:06
HuangJC :話:當你不知道錯在 PHP 或 HTML 時,可以先做 PHP輸出 06/18 21:06
HuangJC :當然不知道這件事,要當做 PHP 活在 Apache 內,也可以 06/18 21:06
HuangJC :我從來不認為換個角度想事情嚴重到哪去;如果你只有原 06/18 21:07
HuangJC :本的想法的話,那就只用原本的法子吧.. 06/18 21:07
HuangJC :而那也難怪有人熟JAVA大推JAVA,有人熟PHP大推 PHP 了 06/18 21:07
HuangJC :一句話:信仰自己的真理,別人的都看不順眼 06/18 21:08
HuangJC :我在台北搬四次家,每次都以為台北從我住的地方發展出 06/18 21:10
HuangJC :去,以我家為'平台'向外展開世界;這是世界觀太小所致 06/18 21:11
補上原PO 消掉的部份 → HuangJC :學習深度,每個領域的魔人都會說愈深愈好 XD 06/18 21:17 → HuangJC :我學電腦快三十年了,你愛學多學少我都覺得可以,甚至 06/18 23:39 → HuangJC :發包也可以 06/18 23:39 → knockout :喔 快30年喔, 真是高高手 ~ 06/18 23:56 → knockout :我從386時代開始接觸起,到現在算算才15年 ~ 06/18 23:57 → knockout :不知道原PO的30年是從哪開始? 8086 嗎? 06/18 23:57 → knockout :電腦的開發史上 沒留下 你的名字真是太可惜了 06/18 23:57 → knockout :看了一下你的資料 36 歲、男性 <== 06/18 23:59 → knockout :唬爛也要有個底 06/19 00:00 → HuangJC :沒錯呀,我八歲起學,資料上有;從6502起學.基本上我不 06/19 00:10 → HuangJC :愛講幾年,因為比不過年輕人反而見笑 06/19 00:10 → HuangJC :而我也是在實務界的,經歷是硬體及軟體,網頁都有 06/19 00:11 → HuangJC :這部份我等等就消掉;不過是告訴你另一種觀點而已 06/19 00:11 → HuangJC :我說的資料是電視台..忘了說;上過新聞 06/19 00:12 → HuangJC :我會說發包也可以,是很深的感觸;但你要認真我也支持 06/19 00:15 → HuangJC :總之呢,不管什麼選擇,都是可以支持的(沒道德爭議的話 06/19 00:16 → HuangJC :為了消掉我學幾年這件事,k 兄推文我得一併消了,抱歉 06/19 00:21 不好意思,說過的話,自已是要負責任的 同理,在我自已身上,有任何錯誤的地方,也是得提出負責任的態度來解決問題 在15年前,小弟我因為不太愛唸書的關係 放棄學業 到處混,當年才高一 就挫學,也荒唐了好一陣子 家人看不下去 就把我送到親戚朋友開的電腦公司那做小弟 那間電腦公司的老闆 姓高 是當初 偉騰 電腦倒閉後 從那裡面出來的工程師 至於,偉騰電腦當初的盛況,我像現在的年輕人是無法感受的 我都叫他 高大哥 由於高大哥的啟蒙,從此之後,我與電腦之間結下了不解之緣 從維修電腦開始,到中間的就學階段,退伍後 因為不想在做軟硬體維修 我便轉戰 網管 的路線 那時我剛退伍,跑去學了 MCSE ,又因為接觸的工作,幾乎都是linux的 所以 不管是微軟派,或是unix系列的,我都稍有涉獵 講到這,感覺我的經歷跟php好像沒多大關係 沒錯,我本身並非科班出身,網頁一直是我當兵前後的興趣 當初接觸的 不論是HTML 或是架設CGI留言板 或是玩雷傲論壇 都一直是我的興趣 到後來接觸的PHP 的網站套件 phpBB 讓我對PHP產生極大的興趣 又加上公司的progamer又都是PHP 居多 所以 當網管的同時,除了工作,幾乎花的心力都在PHP上 後來 經由pg部門的賞識 讓我轉調部門,從此專心致力於 coding上面 專心寫程式 到現在,也差不多5 ~ 6年的光景了 這些資歷 , 當然 可能沒有什麼了不起 但也足夠讓我在工作上能應付各類事項 不論 IT MIS 或是 網管 programer 我都能夠獨自設計 規畫 到 測試 及完成 執行 遇過的老闆,也都還蠻重用我的 讓我當個小主管,帶幾個人,混混日子 題外話 ... 履歷的自傳都沒寫的那麼詳細了 .. 不知道在PTT 認真個什麼勁 我個人還是比較偏好 做比說 來的重要 ※ 編輯: knockout 來自: 59.121.193.67 (06/19 00:52)
HuangJC :我消掉是為了謙虛,不是為了不負責,你想太多.. 06/19 01:02
HuangJC :基本上,你愛說多少對的東西都OK,只是太衝.. 06/19 01:02
HuangJC :連別人謙虛都要解讀成不負責了,我怕被你打咧~ 06/19 01:03
knockout :是是是 ~ 你說的都對 06/19 01:06
knockout :我怕你連任天堂紅白機都當做你的履歷的一部份 06/19 01:06
knockout :6062咧 ~ 06/19 01:06
HuangJC :你可以看看你自己文章,講到最後,你承認我有對的部份 06/19 01:07
HuangJC :所以是從你的脈絡而言,你認為從另一個角度切入不清楚 06/19 01:07
HuangJC :這是不方便了解;但你的發語詞是'觀念錯誤'.. 06/19 01:08
knockout :對的部份不過就才半句話 ~ 後面錯的我都不想拿出來說 06/19 01:09
knockout :apache php mysql 放在一個平行上 是怎樣 06/19 01:09
knockout :PHP 可以當web server嗎? 06/19 01:09
HuangJC :所謂錯的部份,也許和你一樣,為了方便而已. 06/19 01:10
knockout :和我一樣 你啥鬼 ~ 06/19 01:10
HuangJC :就好像說'MYSQL 不能寫程式',為了方便的講法吧.. 06/19 01:10
HuangJC :當有人講這樣一句話出來,我會知道他想表達什麼,而不 06/19 01:11
knockout :MYSQL 本來就不是寫程式, 那些本來就只是操作資料庫 06/19 01:11
knockout :的語法 06/19 01:11
HuangJC :是認為他對MYSQL的觀念錯誤;它到底能不能寫程式?你說 06/19 01:11
knockout :能夠有自已程式的資料庫 有 ~ 那是oracle 06/19 01:12
knockout :mysql 確實沒辦法像oracle 那樣 有自已的語言 06/19 01:12
HuangJC :這三個部份平行,原來得 PHP 也能當 Server才叫平行? 06/19 01:12
knockout :不然咧 ~ 你要拿 xp mac fedora 跟windows mobile 06/19 01:13
knockout :收在一起比較嗎? 06/19 01:13
HuangJC :這裏每一句話,幾乎都可以擴展一面來說清楚;你知道別 06/19 01:13
knockout :本來就要同角色的東西互相比較 06/19 01:13
HuangJC :人想引用到哪裏就好了.一句觀念錯誤..一句實務.. 06/19 01:13
HuangJC :原來別人沒實務,別人沒當主管 XD 06/19 01:14
knockout :我提出我的見解 ~ 你吸不吸收不干我的事 06/19 01:14
knockout :反正你8歲開始學電腦 ~ 別人的話都廢言啦 06/19 01:14
HuangJC :原來自己對,就非得別人錯了,自己才會對 XD 06/19 01:15
knockout :你說的 麻煩送回給你自已 檢討 06/19 01:15
HuangJC :沒..我不像你,自己對了就噓別人;不要用你來想像我 06/19 01:15
knockout :噓是我的自由 , 怕你不敢噓這篇 06/19 01:15
HuangJC :我認為你也是對的,你講什麼我聽得懂;就這樣的差別 06/19 01:15
HuangJC :我不敢噓呀..噓你不代表你錯,代表我沒風度.. 06/19 01:16
HuangJC :我舉我搬家後,從自己家看天下的態度為例..我家是我看 06/19 01:18
HuangJC :世界的一個起點,但世界不是繞著我家轉. 06/19 01:18
HuangJC :Apache是執行的一個起點,但PHP不是在它的裏面.. 06/19 01:19
knockout :慢講 懶得跟你哈啦了 哈啦再多也沒用 反正你天才嘛 06/19 01:19
HuangJC :其實你也不差,慢慢會體會到的,不要意氣用事就好.. 06/19 01:20
knockout :不要依老賣老,我不需要你來肯定我 06/19 01:22
HuangJC :我才沒肯定你咧,你想太多;你就是你自己,別人無法定義 06/19 01:24
knockout :算了 到底是誰在誤解誰 我懶得說話了 06/19 01:25
HuangJC :就像我學過6502,但你要加一個6062來說,那沒用,我沒學 06/19 01:25
HuangJC :你在吵架時,要替別人擴張什麼,你說的沒用,不是事實 06/19 01:26
HuangJC :回頭到我舉的問路,我是問路者,要求另一個角度的答案 06/19 01:27
HuangJC :而已,那叫 double check,很常見;而不是要你一直從你 06/19 01:27
HuangJC :認為的角度給答案,雖然你也是對的. 06/19 01:28
HuangJC :倚老賣老對我只有傷害,沒有好處;不是為了要肯定你,而 06/19 01:30
HuangJC :是大家切搓的機會還很多;萬一你小氣,以後不指教了XD 06/19 01:31
HuangJC :那我失去學習的機會是損失比較大的. 06/19 01:31
knockout :喔 6062 筆誤 我是要打 6502 ... 抱歉 06/19 01:42
knockout :不過 筆誤的6062 你也能接 挺會講的 = = 06/19 01:43
knockout :老 APPLE系列我不清楚 ~ 我只比較清楚 8086 系列的 06/19 01:44
HuangJC :6502我從 basic 學到組合語言,觀念一直修正;不過有時 06/19 01:50
HuangJC :用錯誤的觀念講解還比較快,看聽的人能接受什麼字眼吧 06/19 01:50
gsuper :紅色明顯 無惡意 (大家不要吵了吧~~~都是我不對) 06/19 04:42
gsuper :補推 06/19 04:44
renn999 :我看這麼久 只是覺得界於server端跟client端的看法不 06/19 05:58
renn999 :一樣...= =a 06/19 05:58
renn999 :就從那一方面看 解釋都不一樣...Orz 06/19 05:59
renn999 :H大是比較偏向於server端 而k大是從client端 06/19 06:01
renn999 :我是比較傾向於把apache當作一個服務 06/19 06:03
renn999 :php是工具 06/19 06:03
w3c :樓上...兩者好像都在提server端的東西 ... 06/19 10:11
renn999 :我說得不怎麼好 我是說就使用層面來看的話... 06/19 12:33
renn999 :就client端是跟apache要資料 06/19 12:34