從頭考慮的話,首先你想一下,你有哪些資料,資料庫要怎麼設計。(舉例:至少會有網頁的標題、內文,其他需要的可能新增或修改的時間,進一步的話,你可以考慮做分類)
再來你看要怎麼新增/修改/編輯網頁。你可以考慮整合一些所視即所得的編輯器,例如http://tinymce.moxiecode.com/、http://ckeditor.com/。內容編輯好以後,需要把內容存入資料庫。這些編輯器通常也會整合了圖片與其他媒體上傳的程式,但是需要跟你自己寫得程式整合。
另外一個部份,是把存在資料庫中的網頁顯示出來。方法很多,看你要怎麼做,也許可以像blog,一篇一篇列出來,點選以後進入整篇文章。
綜合以上的功能,你就需要幾支程式呢?回頭看一下:
上面這樣大概就要超過十二個程式。(其實不一定,看你怎麼實作,也許兩支也可以搞定)
重點是:你如何透過網址傳參數給程式,讓他知道目前要做什麼。你可以每個動作都寫一支程式,或是利用網址列傳參數來告訴程式要做什麼。另外也可以利用網址列的參數,告訴程式目前處理的是哪個網頁或是類別。(透過URL傳的參數,在http中叫做GET)
另外,編輯網頁、登入編輯介面等,常常會用HTML表單來把結果傳給伺服器,伺服器收到表單傳過去的資料,再把處理結果存入資料庫。
(不知道你具體的是要用什麼程式語言來寫,所以我就講得很抽象)
上面只是初學該知道的,接下來需要考慮為了維護與更動程式更容易,你應該要怎麼寫。通常會使用MVC模式,Model處理資料的邏輯(最簡單的當然就是讀、寫、刪除等對資料庫的動作,但是通常會更複雜);View處理介面,讓程式與介面(在web就是html囉)可以分開,各自更動而不會有太大的影響;Control通常負責接收命令,然後根據命令來看到底要使用什麼Model,用什麼View來顯示介面等等。
初期當然hardcode很容易,但是沒有程式是不需要修改的,有效的分層會讓程式更容易維護,分工也清楚。另外,利用物件導向技術讓寫過的東西可以重複使用也是減少維護工作的重點。等基本的學好以後,就多琢磨這些東西。
除了你將來要使用的程式語言,要做網頁開發,最好要有一些週邊的知識,包括http通訊協定、html、css、javascript等,熟悉以後才能算精通網頁程式開發。
總之,你的列出的需求其實還太簡單太抽象,要能寫出程式,你要先像上面我列舉的這樣把具體的需求、功能與架構等都列出來,知道要做哪些東西,然後才能著手。MVC、物件導向等等東西,等你入門以後再一步一步來吧。
(寫得有點凌亂,抱歉啦)
PHP開放原始碼中有 2 個比較熱門且強大的 CMS (Content Managment System),可以符合您的需求:
兩著皆使用 PHP + MySQL 環境。