Linux不完全攻略(轉)
Linux不完全攻略(轉)[@more@]Web:程式碼:xx. 搭建網頁伺服器版本:2004-06-27-01網頁伺服器=IIS?錯啦!網頁伺服器首選Apache。用Google查查,優秀的多平臺支援、良好的安全性和高度的可定製能力性使它差不多佔據了網頁伺服器7成份額。xx.1 準備工作去,在那裡找一個叫httpd的東東下載。要source,不要binary的。我下載的是此時的最新版本,“httpd-2.0.49.tar.gz”。還有一個很小的驗證碼檔案,“httpd-2.0.94.tar.gz.md5”,一起下回來。對“httpd-2.0.49.tar.gz”執行“md5sum ”,看看得出的字串是否和“httpd-2.0.94.tar.gz.md5”裡的一致,不一致請重新下載。“httpd- 2.0.94.tar.gz.md5”裡的字母可能是大寫的,這無所謂。要注意的是,“httpd-2.0.94.tar.gz.md5”裡的字串很可能是以兩位一組分開的,以致於我以為下回來的檔案是壞的。xx.2 安裝我安裝Apache的路徑是“/opt/prog/c/apache”。先把“httpd-2.0.49.tar.gz”丟到裝臨時檔案的目錄“/opt/prog/tmp”裡。開終端,進這個目錄:[root@TFW-RFL40 root]# cd /opt/prog/tmp[root@TFW-RFL40 tmp]#解壓縮:[root@TFW-RFL40 tmp]# tar zxvf ./httpd-2.0.49.tar.gz………………[root@TFW-RFL40 tmp]#得到Apache的原始碼目錄“httpd-2.0.49”。進這個目錄:[root@TFW-RFL40 tmp]# cd httpd-2.0.49[root@TFW-RFL40 httpd-2.0.49]#配置,生成編譯選項:[root@TFW-RFL40 httpd-2.0.49]# ./configure --prefix="/opt/prog/c/apache" --enable-module=so………………[root@TFW-RFL40 httpd-2.0.49]#“ --prefix=”用來指定軟體的安裝路徑。“ --enable-module=”使Apache編譯、安裝完成後能夠隨時載入其所指型別的外部模組。可以用多個“ --enable-module=”指定支援多種模組。更多的引數,在此暫不列舉。編譯、連線,把原始碼變成本地二進位制碼:[root@TFW-RFL40 httpd-2.0.49]# make………………[root@TFW-RFL40 httpd-2.0.49]#安裝,把對應的檔案送到相應的地方。[root@TFW-RFL40 httpd-2.0.49]# make install………………[root@TFW-RFL40 httpd-2.0.49]#xx.3 執行現在去軟體安裝的地方:[root@TFW-RFL40 httpd-2.0.49]# cd /opt/prog/c/apache[root@TFW-RFL40 apache]#啟動網頁伺服器:[root@TFW-RFL40 apache]# ./bin/apachectl start[root@TFW-RFL40 apache]#開啟瀏覽器,訪問url“localhost”。如果你的計算機已經接入乙太網,你可以在另外一臺計算機的瀏覽器裡用IP地址訪問你自己的計算機。由物理主機和虛擬機器構成的乙太網環境同樣適合。能看到繪有一支大羽毛的Apache測試頁即告成功。重新啟動網頁伺服器:[root@TFW-RFL40 apache]# ./bin/apachectl restart[root@TFW-RFL40 apache]#關閉網頁伺服器:[root@TFW-RFL40 apache]# ./bin/apachectl stop[root@TFW-RFL40 apache]#xx.4 更高的要求xx.4.1 ……………………xx.4.2 中文支援“AddDefaultCharset ISO-8859-1”一行改為“AddDefaultCharset GB18030”………………JSP:程式碼:xx. 搭建JSP伺服器版本:2004-06-13-01JSP是一項很有前途的站點動態網頁技術,如果你把握得當,也很有錢途。Tomcat是Apache基金Jakart專案的產品,曾經被SUN推薦來做JSP容器,搭建JSP伺服器的首選。Tomcat可以充當Apache的JSP擴充套件外掛,也可以獨立執行,充當網頁伺服器。如果你的站點訪問量比較小,你甚至可以不裝Apache。xx.1 準備工作去,在那裡找一個叫jakart-tomcat的東東下載。要binary,不要source的。我下載的是此時穩定的最新版本,“jakart-tomcat-4.1.30.tar.gz”。還有一個很小的驗證碼檔案,“jakart-tomcat-4.1.30.tar.gz.md5”,一起下回來。對“jakart-tomcat-4.1.30.tar.gz”執行“md5sum ”,看看得出的字串是否和“jakart-tomcat-4.1.30.tar.gz.md5”裡的一致,不一致請重新下載。“jakart- tomcat-4.1.30.tar.gz.md5”裡的字母可能是大寫的,這無所謂。要注意的是,“httpd-2.0.94.tar.gz.md5” 裡的字串很可能是以兩位一組分開的,以致於我以為下回來的檔案是壞的。Tomcat執行需要J2SDK支援。如果沒有安裝J2SDK,請先安裝J2SDK。xx.2 安裝我安裝Tomcat的路徑是“/opt/prog/m/tomcat”。把“jakart-tomcat-4.1.30.tar.gz”丟到裝臨時檔案的目錄“/opt/prog/tmp”裡。開終端,進要安裝軟體的目錄:[root@TFW-RFL40 root]# cd /opt/prog/m[root@TFW-RFL40 m]#解壓縮:[root@TFW-RFL40 m]# tar zxvf /opt/prog/tmp/jakart-tomcat-4.1.30.tar.gz………………[root@TFW-RFL40 m]#做一個沒有版本號的連結,這樣Tomcat的內容也可以被看成安裝在“/opt/prog/m/tomcat”裡,以後升級方便:[root@TFW-RFL40 m]# ln -s ./jakart-tomcat-4.1.30 ./tomcat[root@TFW-RFL40 m]#主要安裝完成。修改環境變數檔案。我改的是“/etc/profile”。在檔案的末尾新增如下9行內容:######################################### TomcatCATALINA_BASE="/opt/prog/m/tomcat"CATALINA_HOME="/opt/prog/m/tomcat"JAVA_HOME="/opt/prog/m/java/j2sdk1.4.1_02"CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOME/bin:$CATALINA_HOME/binexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CLASSPATH CATALINA_BASE CATALINA_HOME########################################CATALINA_BASE、CATALINA_HOME應該就是Tomcat的安裝位置了。JAVA_HOME是J2SDK的安裝位置。由於我有一個不帶版本號的連結,我用4.1.30替換4.1.27時只是刪除舊的連結和重做一個連結,不必來改這個檔案。xx.3 執行現在去軟體安裝的地方:[root@TFW-RFL40 m]# cd tomcat[root@TFW-RFL40 tomcat]#啟動JSP伺服器:[root@TFW-RFL40 tomcat]# ./bin/startup.sh[root@TFW-RFL40 tomcat]#開啟瀏覽器,訪問url“localhost:8080”。如果你的計算機已經接入乙太網,你可以在另外一臺計算機的瀏覽器裡用IP地址訪問你自己的計算機。由物理主機和虛擬機器構成的乙太網環境同樣適合。此時應該能看到畫著一隻黃貓的Tomcat測試頁。再訪問“localhost: 8080/examples/jsp/”,看裡面的動態網頁,如果能正常工作,即告成功。關閉網頁伺服器:[root@TFW-RFL40 tomcat]# ./bin/shutdown.sh[root@TFW-RFL40 tomcat]#xx.4 更高的要求xx.4.1 定義進Tomcat的安裝目錄。我的是“/opt/prog/m/tomcat”。再進“webapps”目錄。再進“examples”目錄。再進“jsp”目錄。看到一個檔案“index.html”,這就是“localhost:8080/examples/jsp/”裡那些動態網頁的索引。退回一點。注意,目錄“examples”有直接的子目錄WEB-INF,這個子目錄又直接包含一個應用配置檔案“web.xml”。“examples”裡還有其他目錄和檔案,用於實現瀏覽器中不變的和變化的前臺使用者介面。為了方便繼續描述,在此定義兩個概念“Web應用(或者叫Web應用程式)”和“Web應用主目錄”。當一個目錄影上述的“examples”那樣包含一個直接子目錄“WEB-INF”,而這個“WEB-INF”又直接包含一個應用配置檔案“web.xml”時,稱這個目錄為“Web應用主目錄”;一個“Web應用主目錄”及其內部的所有檔案、目錄的集合稱為“Web應用(或者叫Web應用程式)”。像examples一樣,一般的Web應用主目錄內除了“WEB-INF”外,還有其他一些目錄、檔案,用來實現前臺瀏覽器中變化的或不變的使用者介面,而“WEB-INF”裡除了“web.xml”,往往還有其他目錄、檔案,用於在後臺完成對前臺介面的控制。xx.4.2 現狀目前你的目前Tomcat能供外界供訪問的Web應用只有“http://主機(主機名或IP):8080/examples/”。從應用的角度來看,在稍微正式一點的場合中,單一的、名字死板的Web應用總不太好,互相沒什麼關聯的功能或內容,最好由不同的Web應用提供;從開發的角度來看, “examples”裡面滿是原裝的例子,一大堆檔案,在這裡面繼續開發,檔案更多,更亂,也難於管理。xx.4.3 初步目標初步的目標是實現大致如下的佈局:有若干個目錄,分別裝著包括除錯的和對外的Web應用,並充當各應用的主目錄,暫且命名為“app_1”、“app2”……“app_x”……“app_n”,當然那個“examples”也可以位列其中;用某目錄“A”充當Web應用的根目錄,將Web應用主目錄“app_1”、“app2”……“app_n”都放置其中;以“http://主機/app_x/”作為url即可使用相應Web應用主目錄“app_x”中的內容。在我的機上,Web應用根目錄是“/opt/prog/m/webapps”。供學習、除錯用的Web應用有“root.web_00”、 “typhoon.anti”、“typhoon.study”、“typhoon.web_00”,對外的有“examples”、 “exampless”和“typhoon.school”。xx.4.4 修改到Tomcat的安裝目錄“/opt/prog/m/tomcat”,進配置檔案目錄“conf”,找到檔案“server.xml”。用文字編輯器開啟“server.xml”,在其中找到如下內容:unpackWARs="true" autoDeploy="true">將“appBase”對應的“webapps”是預設的Web應用根目錄。把它修改為欲用做Web應用根目錄的目錄“A”。注意要寫明“A”的全路徑。我填寫的是“/opt/prog/m/webapps”。再找如下內容:reloadable="true" crossContext="true">“Context path”似乎是指JSP容器,“docBase”含義也沒弄清,不過按預設內容是不行的。把“Context path”對應的內容修“/examples”改為“/”。把“docBase”對應的內容修“examples”改為與前面提到的“appBase”相同。再把配置檔案“web.xml”改名,改名前先向每個Web應用的“WEB-INF”目錄裡複製一份,以替代“WEB-INF”裡的 “web.xml”。重新啟動Tomcat,用url“http://主機:8080/app_x/”,Web應用裡的內容都能用了。目標達到。如果希望直接用Tomcat充當Web伺服器,“http://主機:8080/app_x/”不太好。開啟“server.xml”,找到下面一段:port="8080" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443"acceptCount="100" debug="0" connectionTimeout="20000"useURIValidationHack="false" disableUploadTimeout="true" />這段將8080埠定義為Tomcat預設的HTTP埠。將“8080”修改為“80”即可以“http://主機/app_x/”方式訪問各Web應用。整合:程式碼:xx. 整合Web伺服器與JSP伺服器版本:2004-06-13-02Apache是專業的Web伺服器,專注於它的本行,而碰到JSP、PHP、ASP類的動態網頁,它只能乾瞪眼;Tomcat主要是個JSP引擎,充當 Web伺服器只是兼職,靜態頁面處理能力不足,也無法應對大量HTTP訪問。但是Apache能夠把不認識的網頁提交給其他伺服器處理並接受處理結果,而 Tomcat也能夠處理其他伺服器提交的JSP頁並返回處理結果,兩者一拍即合,分工明確,合作愉快。下面的說明中,軟體版本和Apache、Tomcat的安裝路徑以你的實際情況為準。xx.1 早期的module_webapp方式xx.1.1 準備工作去,在那裡找apr和對應你Tomcat版本的jakarta-tomcat-connectors- 4.1.30-src下載。都要source的。我下的是“apr-0.9.4.tar.gz”和“jakarta-tomcat-connectors -4.1.30-src.tar.gz”。把它們對應的md5校驗碼檔案一起下回來。分別對下回來的檔案執行“md5sum”,把結果與各自校驗碼檔案裡的內容對比,如果對不上請重新下載。xx.1.2 安裝整合外掛把“jakarta-tomcat-connectors-4.1.30-src.tar.gz”丟進裝臨時檔案的目錄“/opt/prog/tmp”,並解壓縮到此。進入解壓縮生成的目錄“jakarta-tomcat-connectors-4.1.30-src”。注意到裡面的“webapp”目錄了吧?把“apr-0.9.4.tar.gz”丟進去,並解壓縮到那裡。進“webapp”,把新生成的目錄“apr-0.9.4”更名或連結為“apr”。開終端,進這個目錄:[root@TFW-RFL40 root]# cd /opt/prog/tmp/jakarta-tomcat-connectors-4.1.30/webapp/apr[root@TFW-RFL40 apr]#生成編譯配置檔案:[root@TFW-RFL40 apr]# ./support/buildconf.sh………………[root@TFW-RFL40 apr]#配置,生成編譯選項:[root@TFW-RFL40 apr]# ./configure --with-apxs="/opt/prog/c/apache/bin/apxs"………………[root@TFW-RFL40 apr]#編譯、連線,把原始碼變成本地二進位制碼:[root@TFW-RFL40 apr]# make………………[root@TFW-RFL40 apr]#進目錄“Apache-2.0”,如果前面沒出差錯,這裡會有“mod_webapp.so”,這就是所需要的整合外掛。如果你的Apache版本是是 1.3.x,整合外掛應該在“Apache-1.3”裡。把“mod_webapp.so”屬性修改為所有者可執行。去Apache的安裝目錄“/opt/prog/c/apache”,把整合外掛複製或移動到目錄“modules”裡。如果Apache版本是是1.3.x,整合外掛複製或移動到目錄“libexec”裡。xx.1.3 整合最後一步,讓Apache與Tomcat攜手工作,需要修改配置檔案。xx.1.3.1 Apache編輯Apache的配置檔案“http.conf”,在其最後新增如下一行:LoadModule?webapp_module?modules/mod_webapp.so如果Apache版本是是1.3.x,新增這行:LoadModule?webapp_module?libexec/mod_webapp.so儲存修改。在終端裡檢查外掛模組是否能正常載入:[root@TFW-RFL40 apr]# cd /opt/prog/c/apache[root@TFW-RFL40 apache]# ./bin/apachectl configtest如果能正常載入,會出現:Syntax OK[root@TFW-RFL40 apr]#否則請檢查前面是否有差錯,或查詢其他資料。再次編輯“http.conf”,繼續在最後新增如下兩行:ServerName localhost:8008WebAppConnection warpConnection warp localhost:8008去Tomcat的Web應用根目錄瞧瞧,看哪Web應用些是需要對外開放的,把它們以“WebAppDeploy examples warpConnection /app_x”形式逐行新增在配置檔案“httpd.conf”末尾。我新增的有:WebAppDeploy examples warpConnection /examplesWebAppDeploy examples warpConnection /examplessWebAppDeploy examples warpConnection /typhoon.schoolxx.1.3.2 Tomcat到Tomcat的配置檔案目錄“/opt/prog/m/tomcat/conf”,用文字編輯器開啟“server.xml”。如果從前沒有改動過這個檔案,能找到這樣一段,或者類似的段:port="8080" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443"acceptCount="100" debug="0" connectionTimeout="20000"useURIValidationHack="false" disableUploadTimeout="true" />把這段新增在上面一段之前:port="8008" minProcessors="5" maxProcessors="75"enableLookups="true"acceptCount="10" debug="0"/>連線外掛“mod_webapp.so”預設使用8008埠,這段是對8008埠的定義,可以在“server- noexamples.xml.config”裡找到。如果Tomcat是4.1.18/4.1.19版本,請注意“server.xml”裡是否已經有 8008埠的說明,如果有,就不必再新增。xx.2 更新的module_jk2方式xx.2.1 準備工作去,在那裡找jakarta-tomcat-connectors-jk2-src-current,要 source,不要binary的。把它的md5校驗碼檔案也找出來,都下載。我下的是“jakarta-tomcat-connectors-jk2- src-current.tar.gz”和“jakarta-tomcat-connectors-jk2-src- current.tar.gz.md5”。分別對下回來的檔案執行“md5sum”,把結果與各自校驗碼檔案裡的內容對比,如果對不上請重新下載。xx.2.2 安裝整合外掛把“jakarta-tomcat-connectors-jk2-src-current.tar.gz”丟進裝臨時檔案的目錄“/opt/prog/tmp”。開終端,進這個目錄:[root@TFW-RFL40 root]# cd /opt/prog/tmp[root@TFW-RFL40 tmp]#解壓縮:[root@TFW-RFL40 tmp]# tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz………………[root@TFW-RFL40 tmp]#生成編譯配置檔案:[root@TFW-RFL40 tmp]# cd jakarta-tomcat-connectors-jk2-2.0.4-src[root@TFW-RFL40 jakarta-tomcat-connectors-jk2-2.0.4-src]# cd jk[root@TFW-RFL40 jk]# cd native2[root@TFW-RFL40 natave2]# sh ./buildconf.sh………………[root@TFW-RFL40 native2]#配置,生成編譯選項:[root@TFW-RFL40 native2]# ./configure --with-apxs2="/opt/prog/c/apache/bin/apxs" -enable-EAPI………………[root@TFW-RFL40 native2]#我不清楚這個EAPI是什麼,但是我把這個引數加上後編譯就成功了。編譯、連線,把原始碼變成本地二進位制碼:[root@TFW-RFL40 native2]# make………………[root@TFW-RFL40 native2]#進目錄“jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2 ”,如果前面沒出差錯,這裡會有“mod_jk2.so”,這就是所需要的整合外掛。如果你的Apache版本是是1.3.x,整合外掛可能在 “jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache”裡。把 “mod_jk2.so”屬性修改為所有者可執行。去Apache的安裝目錄“/opt/prog/c/apache”,把整合外掛複製或移動到目錄“modules”裡。如果Apache版本是是1.3.x,整合外掛複製或移動到目錄“libexec”裡。xx.2.3 整合最後一步,讓Apache與Tomcat攜手工作,需要修改配置檔案。xx.2.3.1 Apache編輯Apache的配置檔案“http.conf”,在其最後新增如下一行:LoadModule?webapp_module?modules/mod_jk2.so如果Apache版本是是1.3.x,新增這行:LoadModule?webapp_module?libexec/mod_jk2.so儲存修改。在終端裡檢查外掛模組是否能正常載入:[root@TFW-RFL40 apache]# cd /opt/prog/c/apache[root@TFW-RFL40 apache]# ./bin/apachectl configtest如果能正常載入,會出現:Syntax OK[root@TFW-RFL40 apache]#否則請檢查前面是否有差錯,或查詢其他資料。開啟“/opt/prog/c/apache/worker2.properties”。如果檔案不存在,就建立這個檔案。如果Apache版本不是2.0.49,請將其內容替換為以下21行:[shm]info=Scoreboard. Requried for reconfiguration and status with multiprocess servers.file=anon# Defines a load balancer named lb. Use even if you only have one machine.[lb:lb]# Example socket channel, override port and host.[channel.socket:localhost:8009]port=8009host=127.0.0.1# define the worker[ajp13:localhost:8009]channel=channel.socket:localhost:8009group=lb# Map the Tomcat examples webapp to the Web server uri space[uri:/examples/*]group=lb[status:]info=Status worker, displays runtime information[uri:/jkstatus/*]info=The Tomcat /jkstatus handlergroup=status:上述為2.0.49版Apache的“worker2.properties”內容。將上述文字置入檔案時,為了便於閱讀,允許用回車拉大行距。去Tomcat的Web應用根目錄瞧瞧,看哪Web應用些是需要對外開放的,把它們逐行新增在“# Map the Tomcat examples webapp to the Web server uri space”下方,替代原有的“[uri:/examples/*]”。我新增的有:[uri:/examples/*][uri:/exampless/*][uri:/typhoon.school/*]xx.2.3.2 Tomcat到Tomcat的配置檔案目錄“/opt/prog/m/tomcat/conf”,用文字編輯器開啟“server.xml”。如果從前沒有改動過這個檔案,能找到這樣一段,或者類似的段:port="8080" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443"acceptCount="100" debug="0" connectionTimeout="20000"useURIValidationHack="false" disableUploadTimeout="true" />再檢查一下,看是否有這段對8009埠的定義:port="8009" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443"acceptCount="10" debug="0" connectionTimeout="0"useURIValidationHack="false"protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>連線外掛“mod_jk2.so”預設使用8009埠,如果檔案裡沒有這段,需要把它新增在上一段之前。xx.3 聯合測試注意,“mod_webapp.so”和“mod_jk2.so”最好不要一起用,只用其中一個。重新啟動Apache和Tomcat。再用url “http://主機/app_x/”試試,應該一切OK了。以後做JSP開發的時候可以只用Tomcat,並且能以“http://主機: 8080/app_x/”使用所有的Web應用。承擔外界訪問的時候Apache和Tomcat一起跑,外界如果從80埠訪問,只能使用 “httpd.conf”或“worker2.properties”裡提到的Web應用。再改一點。開啟Tomcat配置檔案“server.xml”,還找這段:port="8080" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443"acceptCount="100" debug="0" connectionTimeout="20000"useURIValidationHack="false" disableUploadTimeout="true" />很多人已經知道Tomcat的HTTP管理埠是8080,你可以把裡面的“8080”改成別人不知道的,比如“8088”。不要改成已經被佔用的埠。修改後你能以“http://主機:8088/app_x/”使用所有的Web應用。從現在起,所有非JSP的內容由Apache處理,JSP的東東都透過8008或8009埠發給Tomcat,各得其所。資料庫:程式碼:實踐:Typhoon.Free.Wolf宣告:不承擔由此產生的不良後果版本:V0.9.3+++ 2004-03-30-01本文(不包含連結)可以以非商業目的任意轉載。下面是我安裝和初步試用PostgreSQL的經歷,集中在這裡。安裝篇我下載了PostgreSQL7.3.4,是原始碼,儲存為“/opt/lin_app02/tmp/download/PostgreSQL/R1/postgresql-7.3.4.tar.gz”。下載後,我在這個目錄下開了終端(rxvt),執行命令:[code][root@TFW-RFL40F R1]# tar zxvfp ./postgresql-7.3.4.tar.gz[/code]得到一個目錄“postgresql-7.3.4”。[code][root@TFW-RFL40F R1]# cd postgresql-7.3.4[root@TFW-RFL40F postgresql-7.3.4]# ./configure --prefix=/opt/lin_app02/postgres --enable-locale --enable-multibyte --with-perl --with-odbc --with-tcl[/code]......對上面一步的說明:./configureconfigure不加任何選項,系統將按預設的設定安裝postgresql,檢視configre的相關選項可以使用:configure -help一些最常用的如下:--prefix=BASEDIR為安裝 PostgreSQL 選擇一個不同的基礎路徑。預設是 /usr/local/pgsql。--enable-locale如果你想用本地化支援。--enable-multibyte允許使用多位元組字元編碼。這個選項主要用於象日語,韓語或中文這樣的語言。--with-perl新增 Perl 模組介面。請注意 Perl 介面將安裝到 Perl 模組的常用位置(典型的是在 /usr/lib/perl),所以要成功使用這個選項,你必須有 root 許可權。--with-odbc製作 ODBC 驅動包。--with-tcl製作 Tcl/Tk 需要的介面庫和程式,包括 libpgtcl,pgtclsh,和 pgtksh。這些編譯引數告訴編譯器如何編譯PostgreSQL:[code][root@TFW-RFL40F postgresql-7.3.4]# make[/code]......[code][root@TFW-RFL40F postgresql-7.3.4]# make install[/code]......中間不報錯的話,安裝就完成了。初始化建立一個存放資料庫檔案的目錄:[code][root@TFW-RFL40F postgresql-7.3.4]# mkdir /opt/lin_app02/postgre-data[/code]下面要設定環境變數。由於安全原因,PostgreSQL是不讓“root”等特權使用者用的。為了方便,我就用日常工作的“typhoon”身份管理PostgreSQL,但是建議大家為管理PostgreSQL新建立一個使用者。為了方便,我直接修改了“/etc/profile”,但是建議修改個人主目錄下的“.bash_profile”。我在環境變數檔案裡新增了如下內容:[code]######################################### PostgreSQLLD_LIBRARY_PATH=/opt/lin_app02/postgres/libexport LD_LIBRARY_PATHPGLIB=/opt/lin_app02/postgres/libPGDATA=/opt/lin_app02/postgre-dataPATH=$PATH:/opt/lin_app02/postgres/binMANPATH=$MANPATH:/opt/lin_app02/postgres/manexport PGLIB PGDATA PATH MANPATH########################################[/code]看著挺麻煩,其實就是下面的格式:LD_LIBRARY_PATH=/libexport LD_LIBRARY_PATHPGLIB=/libPGDATA=PATH=$PATH:/binMANPATH=$MANPATH:/manexport PGLIB PGDATA PATH MANPATH剛才提到的那些目錄都是在“root”身份下建立的,要讓它們能為“typhoon”所用,還得改許可權:[code][root@TFW-RFL40F postgresql-7.3.4]# chown -R typhoon.typhoon /opt/lin_app02/postgre*[/code]即:chown -R . chown -R . 然後我關閉了X,並登出,再重新登入,以使環境變數生效。[code][typhoon@TFW-RFL40F typhoon]$ initdb[/code]這個命令用來初始化PostgreSQL。請確保執行前你放資料庫檔案的地方是空的。初始化後會自動建立資料庫的超級使用者,使用者名稱與安裝、執行初始化的作業系統使用者同名。可能還會自動建立一個與使用者名稱同名的資料庫。在我這裡就是使用者“typhoon”和資料庫“typhoon”。直接執行“/bin/psql”就能登入進去。“q”可以退回作業系統的shell。如果這個資料庫沒有自動生成,請執行“/bin/createdb [使用者名稱]”,即以你的使用者名稱建立一個資料庫。這個資料庫就相當於你的“Home”,沒這個資料庫,做某些事情就不方便。啟停方法[code][typhoon@TFW-RFL40F typhoon]$ postmaster -i -D ./postgre-data/&[/code]postmaster -i -D &......這是開始資料庫系統的服務。後面那個“&”最好帶上,否則,......:-D上面說的啟動方法是正規方法,PostgreSQL還提供了封裝的控制指令碼“/bin/pg_ctl”。[code][typhoon@TFW-RFL40F typhoon]$ pg_ctl -l ./123/pg.log start[/code]如果有“-l 檔名”這個引數,所有的錯誤都會被記錄到這個檔案裡。[code][typhoon@TFW-RFL40F typhoon]$ pg_ctl stop[/code]停止服務。既然是停止,就別管什麼記錄檔案了。[code][typhoon@TFW-RFL40F typhoon]$ pg_ctl -l ./123/pg.log restart[/code]相當於先“stop”再“start”。[code][typhoon@TFW-RFL40F typhoon]$ pg_ctl reload[/code]如果對配置檔案做了修改,想不中斷服務而立即生效,就這樣。注意:PostgreSQL管理員最好從“Login:”、xdm或kdm登入系統,因為如果“su”過去操作將不能正常執行。和大家共同進步。下面是我安裝時參考的帖子:[url][/url][url][/url][url][/url]我四處查詢連結裡所說的“egcs-c++”,也沒下載到,後來才知道“egcs-c++”已經被整合進高版本的“gcc”裡了。我的“gcc”是3.2的。大家的“gcc”如果高於2.8,也就不要再到處找“egcs-c++”了。安全管理初始化後,在資料庫目錄裡會有這樣兩個檔案:“postgresql.conf”和“pg_hba.conf”。修改“postgresql.conf”第30行左右的地方為頂格“tcpip_socket = true”,以允許網路訪問。“pg_hba.conf”,基於主機的訪問控制(Host Based Access)。左邊有“#”的內容都是被註釋掉的,起說明或參考等作用。我以我現在的檔案為例做說明(裡面的中文為我的說明):[code]# PostgreSQL Client Authentication Configuration File# ===================================================## Refer to the PostgreSQL Administrator's Guide, chapter "Client# Authentication" for a complete description. A short synopsis# follows.## This file controls: which hosts are allowed to connect, how clients# are authenticated, which PostgreSQL user names they can use, which# databases they can access. Records take one of three forms:## local DATABASE USER METHOD [OPTION]# host DATABASE USER IP-ADDRESS IP-MASK METHOD [OPTION]# hostssl DATABASE USER IP-ADDRESS IP-MASK METHOD [OPTION]## (The uppercase quantities should be replaced by actual values.)# DATABASE can be "all", "sameuser", "samegroup", a database name (or# a comma-separated list thereof), or a file name prefixed with "@".# USER can be "all", an actual user name or a group name prefixed with# "+" or a list containing either. IP-ADDRESS and IP-MASK specify the# set of hosts the record matches. METHOD can be "trust", "reject",# "md5", "crypt", "password", "krb4", "krb5", "ident", or "pam". Note# that "password" uses clear-text passwords; "md5" is preferred for# encrypted passwords. OPTION is the ident map or the name of the PAM# service.## This file is read on server startup and when the postmaster receives# a SIGHUP signal. If you edit the file on a running system, you have# to SIGHUP the postmaster for the changes to take effect, or use# "pg_ctl reload".# Put your actual configuration here# ----------------------------------## CAUTION: The default configuration allows any local user to connect# using any PostgreSQL user name, including the superuser, over either# Unix-domain sockets or TCP/IP. If you are on a multiple-user# machine, the default configuration is probably too liberal for you.# Change it to use something other than "trust" authentication.## If you want to allow non-local connections, you need to add more# "host" records. Also, remember TCP/IP connections are only enabled# if you enable "tcpip_socket" in postgresql.conf.# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD#訪問來源 資料庫 使用者 IP-地址 子網掩碼 認證方式local typhoon typhoon md5#對於來自本地的訪問,資料庫“typhoon”對使用者“typhoon”採用“md5”加密口令認證local typhoon all reject#對於來自本地的訪問,資料庫“typhoon”對上面沒提到的所有使用者無條件拒絕認證host typhoon typhoon 255.255.255.255 127.0.0.1 md5#對於來網路的訪問,資料庫“typhoon”對使用者“typhoon”,如果提出訪問的是本機,採用“md5”加密口令認證host typhoon all 0.0.0.0 0.0.0.0 reject#對於來網路的訪問,資料庫“typhoon”對上面沒提到的所有使用者,不管提出訪問的哪臺機器,也不管它來自哪個子網,無條件拒絕認證local all all md5#對於來自本地的訪問,上面沒提到的資料庫對上面沒提到的所有使用者採用“md5”加密口令認證host all all 0.0.0.0 0.0.0.0 md5#對於來網路的訪問,數上面沒提到的資料庫對上面沒提到的所有使用者,不管提出訪問的哪臺機器,也不管它來自哪個子網,採用“md5”加密口令認證######################################### Others are all denied 其他訪問一概無條件拒絕local all all rejecthost all all 0.0.0.0 0.0.0.0 teject################################################################################# All denied permissed, not safe# 對所有訪問都信任,太不安全,被我禁止掉了,只作為參考#local all all trust#host all all 0.0.0.0 0.0.0.0 trust########################################[/code]這些認證的規則是從上到下一條一條載入的,要注意的是,裡面的“all”並不是真正意義上的“所有”,只是前面的規定中沒有提到的那部分。個人感覺用“other”也許更恰當。這樣,最終的結果是:所有使用者都能透過加密口令訪問“typhoon”以外的資料庫,但是隻有使用者“typhoon”能以加密口令訪問資料庫“typhoon”。操作篇[客戶端基本連線操作]====================*檢視PostgreSQL的系統表:(摸索/查詢中)*終端登入:psql -l[主機名/IP] -d[資料庫名] -U[使用者名稱]*連線到另外一個資料庫:c [資料庫名]*斷開終端:q========================================[基本使用者管理]==========================*新增使用者:create user [使用者名稱];*修改使用者密碼:alter user [使用者名稱] with password [口令];*刪除使用者:drop user [使用者名稱];*檢視使用者資訊:(摸索/查詢中)========================================[基本資料庫操作]========================*建立資料庫:create database [資料庫名];*檢視資料庫列表:d*刪除資料庫:drop database [資料庫名];*修改資料庫的所有者:(摸索/查詢中)========================================[資料庫內基本操作]======================*給予某使用者在某資料庫建立表的授權:(摸索/查詢中)*收回某使用者在某資料庫建立表的授權:(摸索/查詢中)建立表:create table ([欄位名1] [型別1] ,[欄位名2] [型別2],......);*檢視錶名列表:d*檢視某個表的狀況:d [表名]*重新命名一個表:alter table [表名A] rename to [表名B];*修改表的所有者:(摸索/查詢中)*刪除一個表:drop table [表名];========================================[表內基本操作]==========================*在已有的表裡新增欄位:alter table [表名] add column [欄位名] [型別];*刪除表中的欄位:alter table [表名] drop column [欄位名];*重新命名一個欄位:alter table [表名] rename column [欄位名A] to [欄位名B];*給一個欄位設定預設值:alter table [表名] alter column [欄位名] set default [新的預設值];*去除預設值:alter table [表名] alter column [欄位名] drop default;*將已存在的表裡某列設定為主碼:(摸索/查詢中)*將已存在的表裡某幾列設定為主碼:(摸索/查詢中)*取消某列的主碼資格:(摸索/查詢中)在表中插入資料:insert into 表名 ([欄位名m],[欄位名n],......) values ([列m的值],[列n的值],......);修改表中的某行某列的資料:update [表名] set [目標欄位名]=[目標值] where [該行特徵];刪除表中某行資料:delete from [表名] where [該行特徵];delete from [表名];--刪空整個表========================================[備份]==================================備份一個資料庫:pg_dump 資料庫名 > 備份檔案把備份檔案導回原資料庫或匯入新資料庫:cat 備份檔案 | psql 資料庫名最好先把這個資料庫的認證改為“trust”。備份一個表:pg_dump -t table1 dbname > bk1.sql========================================ADD摘自[]:你需要為psql程式帶入引數:psql -d databasename -U username -W。-d用來指定資料庫,-U指定使用者名稱,而-W要求psql提示你輸入一個口令。當你成功地執行了psql以後,將每個CREATE TABLE查詢單獨地貼上到psql中並按Enter鍵。如果在你的SQL語句中有錯誤,psql會給出相應提示。透過逐一地加入每一個表,你會得到每一個表的除錯資訊,這樣做起來相當簡單。如果,在你輸入了表的定義之後,你發現遺漏了一兩個欄位,有兩種方法
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940368/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sybase-ase- 11.0.3.3安裝不完全攻略(轉)
- LINUX下播放DVD全攻略(轉)Linux
- informix for linux安裝全攻略(轉)ORMLinux
- Linux不完全手冊(三)(轉)Linux
- Linux不完全手冊(二)(轉)Linux
- 紅旗Linux分割槽全攻略(轉)Linux
- LINUX下架設DHCP全攻略 設定DHCP (轉)Linux
- Linux下Makefile的automake生成全攻略(轉)Linux
- 玩轉ubuntu全攻略Ubuntu
- Novell Linux Desktop SP1安裝全攻略(轉)Linux
- Cozmo機器人脫離智慧手機使用的不完全攻略機器人
- 用rsync修復不完整的Linux光碟映像檔案(轉)Linux
- linux系統下音訊製作軟體不完全指南(轉)Linux音訊
- Linux 環境變數配置全攻略Linux變數
- linux音訊製作播放不完全指南(mp3,mpc,ape)(轉)Linux音訊
- 【轉】外企面試順利通關全攻略面試
- Debian下wine及Crossover全攻略(轉)ROS
- LINUX 下播放 DVD 全攻略 (關鍵字 DVD-ROM LiViD fifo OMS) (轉)Linux
- 開發JSP程式全攻略(Linux篇)JSLinux
- Windows XP 系統最佳化全攻略(轉)Windows
- 網路流量監控器mrtg全攻略(轉)
- Linux 作業系統日誌管理全攻略Linux作業系統
- 安全攻略:WinRAR自制開機密碼程式(轉)密碼
- Linux全攻略–Samba伺服器配置與管理(二)LinuxSamba伺服器
- 深入理解MongoDB(一)Linux下配置MongoDB全攻略MongoDBLinux
- [轉載]上傳下載全攻略jspSmartUploadJS
- ASP中DLL的除錯環境配置全攻略 (轉)除錯
- Linux全攻略–遠端登入管理-Telnet與SSHLinux
- Fvwm新手入門不完全手冊(原創) (轉)
- 安全攻略:三大技術支撐安全內容(轉)
- 無人參與安裝Windows2K全攻略(轉)Windows
- 電子政務特點及其系統安全全攻略(轉)
- VMware下RedHat安裝Oracle 9i RAC全攻略(轉)RedhatOracle
- 紅旗5.0下apache+php+mysql+phpMyAdmin全攻略(轉)ApachePHPMySql
- Https全攻略HTTP
- Windows XP 全攻略Windows
- Redis ,真的不完美Redis
- “TensorFlow 開發者出道計劃”全攻略,玩轉社群看這裡!