歡迎您光臨本站 註冊首頁

《Debian伺服器設置入門》系列教程 第一章

←手機掃碼閱讀     火星人 @ 2014-03-24 , reply:0

希望對大家有幫助。 作者:kanaka [冷罡華] 聯繫:kanaka@yeah.net,leng@haier.com 版本:0.2.1 版權:GPL 最後修改:2002年11月26日 歡迎訪問:http://debian.linuxsir.org 總目錄 前 言 第一章 在Debian上配置Apache+MySQL+PHP4 第二章 在Debian上用Wu-ftpd配置FTP伺服器 第三章 在Debian上用Exim配置郵件伺服器 第四章 在Debian上配置Samba伺服器 第五章 在Debian上用Bind配置DNS伺服器 《Debian伺服器設置入門》系列教程之第一章:Web伺服器+資料庫伺服器 第一章 在Debian上配置Apache+MySQL+PHP4 本章目錄 1 選擇Apache+MySQL+PHP4 2 安裝 3 配置 4 綜合測試 5 結束語 1 選擇Apache+MySQL+PHP4   你可能會問我:為什麼不選擇別的軟體,而非得選擇Apache+MySQL+PHP4的組合?呵呵,我要告訴你,著名的Free Lamp組合,說的就是Linux/Apache/MySQL/PHP/Perl/Python,你可以到www.freelamp.com上面去看看。 PHP在互聯網上的應用,正成燎原之勢。如果作Web開發,在我看來,別無選擇,就是PHP。詳細情況可以到www.php.net上面去了解。 MySQL非常輕便,性能卓越。Apache就不必多說了,互聯網上沒有幾個Web站點不用它。 2 安裝   在Debian上安裝軟體,真的是非常簡單。不需要configure,不用make,不用make install,遍布全球的Debian的工作人員已經為你做好了一切。   你可以一口氣把這些軟體全部裝上: # apt-get install apache php4 php4-gd php4-mysql mysql-server mysql-client   其中, php-gd是一個非常棒的圖形庫,如果你不需要使用php生成動態圖片,就不用裝。   這時,系統會自動列出一些相關的軟體,然後問你是不是要繼續(說Debian棒,這是其中一點:自動查找軟體關聯,自動補充安裝)——Debian給你一次反悔的機會,如果你現在不想裝了,那麼按n,就退出來了。   當然我們在這裡要按回車,繼續安裝。現在Debian會到你的sources.list裡面指定的站點去下載這些軟體。下載完后,會自動進行配置,配置過程中會徵求你的意見,問你幾個問題。   比如現在他就問你:你要在計算機啟動時就運行MySQL嗎?當然選Yes了,否則每次要用的時候才啟動,怪麻煩的。   又問你:你想運行apacheconfig腳本嗎?默認是N,不過我們輸入Y讓它替我們配置一下。配置完后,問你是否保存配置,當然是了,呵呵。然後,他會問你是否要啟動Apache,好,啟動它。   接著,系統會自動配置PHP。由於你選擇了php-gd和php-mysql,他會問你是否把gd.so和mysql.so的支持寫入 php.ini,回答是。你看,Debian聰明吧。 3 配置 3.1 配置Apache 3.1.1 提供php支持   Apache剛裝上的時候不提供php支持。當你點擊有.php腳本的連接,瀏覽器會下載這個腳本:-(   修改/etc/apache/httpd.conf,以便提供php支持。運行: # nano /etc/apache/httpd.conf   順便提一下,我非常喜歡這個叫做nano的編輯器,它很容易上手。   使用nano的ctrl+w功能找到下面這一行: # LoadModule php4_module /usr/lib/apache/1.3/libphp4.so   把這一行前面的井號去掉,以便apache載入這個libphp4.so模塊。   然後,配置默認頁,找到: DirectoryIndex index.html index.htm index.shtml index.cgi   改成: DirectoryIndex index.php index.php3 index.html index.htm index.shtml index.cgi   然後再加上.php3擴展名的支持和php源碼支持,找到: # # And for PHP 4.x, use: # #AddType application/x-httpd-php .php #AddType application/x-httpd-php-source .phps   把後面兩行修改成: # # And for PHP 4.x, use: # AddType application/x-httpd-php .php .php3 AddType application/x-httpd-php-source .phps 3.1.2 修改默認字符集   讓Apache把簡體中文作為默認的字符集。找到這一行: AddDefaultCharset on   修改成: AddDefaultCharset gb2312   好, Apache就配置完了,按ctrl+o保存后,再按ctrl+x退出nano。   為了使我們的修改生效,需要重新啟動Apache,運行: # apachectl restart   apache 1.3 提供了這個apachectl工具,但是2.0就沒了。   另外,注意一個技巧:Debian提供的伺服器軟體包,幾乎都會提供一個腳本用於啟動/終止/重新啟動這個服務。腳本全部放在 /etc/init.d/下面。   比如Apache,可以通過下面的命令控制:   # /etc/init.d/apache restart   其它的服務也可以如此操作。 3.2 MySQL配置 3.2.1 修改MySQL的口令   由於MySQL默認沒有口令,為了安全起見,一定要修改你的口令!   先來看看你的mysql是不是真的沒有口令: $ mysqladmin version   如果你能夠看到mysql的版本信息,證明目前MySQL沒有口令。   好,運行mysqladmin password xxxxxx 修改口令: # mysqladmin password xxxxxx   這裡 xxxxxx是你的新口令。   現在你需要運行 mysqladmin version --user=root --pass,然後輸入口令,才能查看版本號等信息。   注意,上面命令中的--user=root --pass這一部分,可以簡寫為-u root -p。我們來測試一下,看口令是否生效: # mysqladmin version -u root -p Enter password: 3.2.2 打開3306埠監聽   這項工作要慎重。處於安全考慮,默認情況下,Debian把3306埠關閉了。因為,不少黑客通過它來攻擊你的系統。如果你不通過其他機器來存取資料庫,那麼不要打開這個埠。   修改/etc/mysql/my.cnf,找到: skip-networking   把它註釋掉: # skip-networking 3.2.3 修改默認字符集      讓MySQL把簡體中文作為默認的字符集。編輯/etc/init.d/mysql,找到這一行: /usr/bin/safe_mysqld > /dev/null 2>&1 &   改成: /usr/bin/safe_mysqld > --default-character-set=gb2312 > /dev/null 2>&1 &   好,重新啟動MySQL: # /etc/init.d/mysql restart 3.3 PHP配置   主要是要修改php的默認字符集,把它改成簡體中文。編輯/etc/php4/apache/php.ini: # nano /etc/php4/apache/php.ini   找到 ;default_charset = "iso-8859-1"這一行: ;default_charset = "iso-8859-1"   把前面的分號去掉,並改成: default_charset = "gb2312" default_charset = "gb2312" 4 綜合測試   好了,安裝完了,我們來測試一下。   這一部分,高手完全可以略過。我主要考慮到初學者,才寫了這些。 4.1 建立一個資料庫   下面我們來創建一個簡單的資料庫,這個庫裡面只有一張表,叫做user,用來存放用戶名/明文密碼/出生日期/激活狀態。 # mysql -u root -p Enter password: mysql> CREATE DATABASE mytest; Query OK, 1 row affacted (0.00 sec) mysql> USE mytest; Database changed mysql> CREATE TABLE user (   -> username varchar(16) NOT NULL default '',   -> password varchar(16) binary NOT NULL default '',   -> birthday date NOT NULL default '1975-12-31',   -> actived int(1) NOT NULL default '0',   -> UNIQUE KEY username (username)   -> ); Query OK, 0 row affected (0.00 sec) mysql> INSERT INTO user VALUES ('kanaka','kanakapswd','1975-09-18',0); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO user VALUES ('atfa','atfapswd','1977-10-30',1); Query OK, 1 row affected (0.00 sec) mysql> quit Bye   注意,默認情況下,所有的資料庫放在/var/lib/mysql/下面。每個資料庫佔一個目錄,目錄名就是資料庫名。你創建資料庫的時候,系統自動就把它放在這個目錄下面了。 4.2 編寫一個php腳本   下面我們來編寫一個簡單的php腳本,來調用上面資料庫裡面的內容。文件名比如叫做mytest.php。 \n"; echo "查詢:$queryStr< /tr>\n"; echo "結果:$errMsg< /tr>\n"; echo "

\n"; } } //定義一個函數,用來顯示數據 function viewData($dbname,$tablename,$page,$rowperpage) { global $mysqlHandle, $PHP_SELF, $errMsg, $orderby; echo "

下面是您所查的數據:

\n"; $queryStr = stripslashes( $queryStr ); if( $queryStr == "" ) { $queryStr = "SELECT * FROM $tablename"; if( $orderby != "" ) $queryStr .= " ORDER BY $orderby"; } $pResult = mysql_db_query( $dbname, $queryStr ); $errMsg = mysql_error(); $GLOBALS[queryStr] = $queryStr; if( $pResult == false ) { echoQueryResult(); return; } if( $pResult == 1 ) { $errMsg = "成功"; echoQueryResult(); return; } echo "
\n"; $row = mysql_num_rows( $pResult ); $col = mysql_num_fields( $pResult ); if( $row == 0 ) { echo "沒有數據!表格是空的。"; return; } if( $rowperpage == "" ) $rowperpage = 20; if( $page == "" ) $page = 0; else $page--; mysql_data_seek( $pResult, $page * $rowperpage ); echo "\n"; echo "\n"; echo '\n"; echo '\n"; echo '\n"; echo '\n"; echo "\n"; for( $i = 0; $i < $rowperpage; $i++ ) { $rowArray = mysql_fetch_row( $pResult ); if( $rowArray == false ) break; echo "\n"; $key = ""; for( $j = 0; $j < $col; $j++ ) { $data = $rowArray[$j]; $field = mysql_fetch_field( $pResult, $j ); if( $field->primary_key == 1 ) $key .= "&" . $field->name . "=" . $data; if( strlen( $data ) > 30 ) $data = substr( $data, 0, 30 ) . "..."; $data = htmlspecialchars( $data ); echo '\n"; } echo "\n"; } echo "
'; echo "用戶名\n"; echo "'; echo "口令\n"; echo "'; echo "出生日期\n"; echo "'; echo "是否激活\n"; echo "
'; echo "$data\n"; echo "
\n"; echo "
"; //$PHP_SELF echo ""; echo "
"; echo ""; echo "第".($page+1)."頁/共".(int)($row/$rowperpage+1)."頁"; echo "\n"; echo " | "; if( $page > 0 ) { echo "上一頁\n"; } else echo "上一頁"; echo " | "; if( $page < ($row/$rowperpage)-1 ) { echo "下一頁\n"; } else echo "下一頁"; echo " | "; if( $row > $rowperpage ) { echo "\n"; echo "頁"; } echo "
"; echo "
"; echo " 目前每頁顯示記錄數為".$rowperpage."條,您可以"; echo ""; echo "條/頁"; echo "
\n"; echo "
\n"; } ?>   我好長時間沒寫程序了,連php的語法都快忘了,呵呵。我去年給公司的生產線編寫了一個應用,上面就是摘抄下來的,我本來想寫一個最簡單的程序在這裡,但是我還是把兩個函數保留在裡面了,為的是讓初學者有個借鑒,呵呵。 4.3 測試   把這個mytest.php複製到/var/www下面,在你的瀏覽器裡面,訪問這個mytest.php,就會看到資料庫的內容。   之所以把mytest.php放到/var/www下面,是因為,默認情況下,Apache的httpd.conf裡面定義了把/var/www作為文檔根目錄。   初學者注意,在linux控制台下面有好幾款瀏覽器,w3c,lynx,links等等。三個各有優劣,都不完美。個人感覺links比較適合初學者,因為按下esc鍵之後有菜單出現。 5 結束語   本文是《Debian伺服器設置入門》系列教程之第一章,建議您按照順序閱讀,有問題可以和作者kanaka聯繫。

[火星人 ] 《Debian伺服器設置入門》系列教程 第一章已經有648次圍觀

http://coctec.com/docs/linux/show-post-135484.html