PHP+MySQL+Dreamweaver整合教學(PHPMaker運用設計網站教學):快速設計網站與網頁
總教頭特別企畫【專業整合課程】比傳統的學習的還要快速與實用!


感謝您造訪 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地。 你可進入教學詳細內容介紹頁面,詳細瞭解PHP程式設計+MySQL資料庫(PHPMaker運用設計網站教學)及相關技術維護影片教學(完整配套措施),馬上可以設計架站程式與PHP網頁,快速建立MySQL資料庫、自動生成PHP網頁。可對資料庫進行瀏覽、修改、查詢、加入和刪除(整合成我們需要的網站)。

要在網路上經營網站賺大錢,不能只會下載現有的程式來架站(自己設計才能完全符合專業的特殊需求),你不用死背PHP語法,更可以完全不用花錢用購買資料庫(PHPMySQL完全免費!)你可以透過技術學習,讓PHP程式網頁+網路資料庫+Dreamweaver整合教學→讓你快速成為:【動態網站程式設計專家→你能因此賺大錢】!

 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學):

http://por.tw/php/new-E_learning/index.php


PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用教學)密訓基地  總教頭  敬上

瀏覽模式: 普通 | 列表

mysql常見錯誤提示及解決方法

mysql常見錯誤提示及解決方法

130 :檔案格式不正確。(還不是很清楚錯誤的狀況)
145  :檔案無法開啟。
1005:建立表失敗。
1006:建立資料庫失敗。
1007:資料庫已存在,建立資料庫失敗。
1008:資料庫不存在,刪除資料庫失敗。
1009:不能刪除資料庫檔案導致刪除資料庫失敗。
1010:不能刪除資料目錄導致刪除資料庫失敗。
1011:刪除資料庫檔案失敗。
1012:不能讀取系統表中的記錄。
1016:檔案無法開啟,使用後台修復或是使用 phpmyadmin 進行修復。
Quote:
開始=>所有程式=>附件=>指令提示符
  輸入 mysql 所在硬碟盤符
    cd mysql 所在目錄
    cd bin
  輸入 myisamchk -f D:usr/local/mysql/data/bbs/PW_members.MYI
  ps : D:usr/local/mysql/data/bbs 是你論壇資料庫的路徑
    -f 根據具體情況選取,一般也可以選取 -r
    注意你的 系統C盤或放資料庫的硬碟空間是否足夠,一般小於 1G 很容易出現錯誤。
或用mysqlcheck指令進行修復。具體的方法:利用指令行進入mysql/bin目錄,執行
mysqlcheck -o -r phpwind -uroot -p                                                      
其中phpwind是你資料庫的名稱,root是你的資料庫使用者名,然後會提示你輸入密碼。然後就會修復你的資料庫。
1017:伺服器非法關機,導致該檔案損壞。
1020:記錄已被其他使用者修改。
1021:硬碟剩餘空間不足,請加大硬碟可用空間。
1022:關鍵字重複,變更記錄失敗。
1023:關閉時發生錯誤。
1024:讀檔案錯誤。
1025:變更名字時發生錯誤。
1026:寫檔案錯誤。
1030:可能是伺服器不穩定。(具體原因不是很清楚)
1032:記錄不存在。
1036:資料表是唯讀的,不能對它進行修改。
1037:系統記憶體不足,請重啟資料庫或重啟伺服器。
1038:用於排序的記憶體不足,請增大排序緩沖區。
1040:已到達資料庫的最大連線數,請加大資料庫可用連線數。
Quote:
在my.ini 修改max_connections=100為max_connections=1000或更大,重啟mysql
1041:系統記憶體不足。
1042:無效的主電腦名。
1043:無效連線。
1044:資料庫使用者權限不足,請聯繫空間商解決。
1045:資料庫伺服器/資料庫使用者名/資料庫名/資料庫密碼錯誤,請聯繫空間商檢查帳戶。
Quote:
方法:確保論壇data目錄下的sql_config.php使用者名與密碼都正確.如果使用者忘記了資料庫的密碼,可以按如下模式進行密碼的修改:
如果 MySQL 正在運行,首先停止。
啟動 MySQL :bin/safe_mysqld --skip-grant-tables &
就可以不需要密碼就進入 MySQL 了。
然後就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
1046:沒有選取資料庫。
1048:欄位不能為空。
1049:資料庫不存在。
1050:資料表已存在。
1051:資料表不存在。
1054:欄位不存在,自行建立欄位。
1060:欄位重複,導致無法插入這個欄位。
1062:欄位值重複,入庫失敗
Quote:
  1.如果出類似主碼為"65535"的錯誤,可以檢視關聯表的自增欄位,將欄位值改在就可以
  2.確保關聯資料表中主碼重複的欄位是否存在,如果存在刪除這條記錄
  3.備份資料庫,修復關聯表(注:這種情況比較常見,如pw_posts表,對表進行修復的時候不要忘記備份).
1064:MySQL 不支援錯誤提示中的編碼。
1065:無效的 SQL 語句,SQL 語句為空。
1067:MySQL 版本為 5,不支援空的預設值。
1081:不能建立 Socket 連線。
1114:資料表已滿,不能容納任何記錄。
1115:設定的字集在 MySQL 並沒有支援。
1116:開啟的資料表太多。
1129:資料庫出現異常,請重啟資料庫。
1130:連線資料庫失敗,沒有連線資料庫的權限。
1133:資料庫使用者不存在。
1135:可能是記憶體不足夠,請聯繫空間商解決。
1141:現用的使用者無權訪問資料庫。
1142:現用的使用者無權訪問資料表。
1143:現用的使用者無權訪問資料表中的欄位。
1146:資料表缺失,請還原備份資料
1147:未定義使用者對資料表的訪問權限。
1149:SQL 語句語法錯誤。
1158:網路錯誤,出現讀錯誤,請檢查網路連線狀況。
1159:網路錯誤,讀逾時,請檢查網路連線狀況。
1160:網路錯誤,出現寫錯誤,請檢查網路連線狀況。
1161:網路錯誤,寫逾時,請檢查網路連線狀況。
1169:欄位值重複,更新記錄失敗。
1177:開啟資料表失敗。
1180:送出事務失敗。
1181:返回事務失敗。
1193:不支援字集限定(SET NAMES)。
1203:現用的使用者和資料庫建立的連線已到達資料庫的最大連線數,請增大可用的資料庫連線數或重啟資料庫。
1205:加鎖逾時。
1211:現用的使用者沒有建立使用者的權限。
1216:外鍵約束檢查失敗,更新子表記錄失敗。
1217:外鍵約束檢查失敗,刪除或修改主表記錄失敗。
1226:現用的使用者使用的資源已超過所容許的資源,請重啟資料庫或重啟伺服器。
1227:權限不足,您無權進行此操作。
1235:MySQL版本過低,不具有本功能。
1250:用戶端不支援伺服器要求的認證協定,請考慮升級用戶端。
1251:Client 不能支援 authentication protocol 的要求
Client does not support authentication protocol requested by server; consider upgrading MySQL client
Quote:
方法1:mysql> SET PASSWORD FOR
-> ' some_user '@' some_host ' = OLD_PASSWORD(' newpwd ');
結合我們的實際情況,在 MySQL Command Line Client 下運行:
set password for root@localhost = old_password('123456');
方法2:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
    -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
上面紅色的部分請按自己實際情況修改。
1267:不合法的混合字集。
2002:伺服器埠不對,請咨詢空間商正確的埠。
2003:MySQL 服務沒有啟動,請啟動該服務。
2008:MySQL client ran out of memory
錯誤指向了MySQL客戶mysql。這個錯誤的原因很簡單,客戶沒有足夠的記憶體存儲全部結果。
2013:遠端連線資料庫是有時會有這個問題,MySQL 伺服器在執行一條 SQL 語句的時候失去了連線造成的。
10048:
Quote:
建議在my.ini檔案中修改最大連線數,
  把 mysql_connect() 方法都改成了 mysql_pconnect() 方法.
  要修改mysql_pconnect(),可以在論壇的data目錄的sql_config.php中
  $pconnect = 0; //是否持久連線
  修改成$pconnect = 1;
  開啟防重整,嚴禁重整太快.
10055:沒有快取空間可利用
Quote:
檢視下你的C盤空間是否已經滿,清除一些沒有用的檔案.
  可以在後台的"論壇核心設定","核心功能設定"裡"程式改善"開啟,"GZIP 壓縮輸出"關閉.
搜尋了一下10055(沒有快取空間可利用)出錯的原因,分析了my.ini的配製檔案,在my.ini中如下:
default-storage-engine=INNODB
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=10M
innodb_log_file_size=10M
innodb_thread_concurrency=8
覺得可以把innodb_buffer_pool_size=10M 加大如100M或是1000M
以上是對mysql5的
如果是mysql4可以在my.ini中增加如下:
#innodb_data_file_path = ibdata1:2000M;ibdata2:2000M
#innodb_data_home_dir = c:ibdata
#innodb_log_group_home_dir = c:iblogs
#innodb_log_arch_dir = c:iblogs
#set-variable = innodb_mirrored_log_groups=1
#set-variable = innodb_log_files_in_group=3
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#innodb_log_archive=0
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
#set-variable = innodb_file_io_threads=4
#set-variable = innodb_lock_wait_timeout=50
把前面的#去了
10061:
Quote:
啟動這台機器上的MySQL服務
  如服務啟動失敗
  一定是你的my.ini檔案出了差錯,
  MySQL服務不能標準啟動
  你刪除了它後,MySQL就會按其預設配置運行,
  那就沒有問題了
以上資料根據網上各方面資料整合而成。
標籤: mysql

文字編輯-EmEditor Professional v10.0.0繁體中文化(語系)

文章標題】: 文字編輯-EmEditor Professional v10.0.0繁體中文化(語系)
【文章作者】: 軟體中文化密訓基地-總教頭
【作者信箱】: steven8ster@gmail.com
【作者首頁】: http://por.tw/f2blog
【軟體中文化課程】: http://por.tw/f2blog/2009-tchinese/index.html
【內容分類】: 文字編輯-EmEditor Professional v10.0.0
【附件大小】: 1.19MB
【基地主機】: http://visdacom.com/f2blog
【解壓密碼】: 軟體中文化教學密訓基地
【版權聲明】: 【原創】軟體中文化密訓基地,轉載必須保留完整標頭。刪除者依法追究!
--------------------------------------------------------------------------------
【文章內容】
  文字編輯-EmEditor Professional v10.0.0繁體中文化(語系)
   
  EmEditor Professional從之前7版開始,有時更新版時【序號】還可以沿用!
  到8版時好像也是:對盜版還不是很防範(當時知名度還不是很高)
  到了9版就有了重大改革,似乎開始在注意一組序號被大量使用的問題
  如今10版出來了(網路沒有序號),國外破解專家乾脆把它了(不註冊也不會跳出註冊畫面)
  這些人也真是的,這樣搞人家怎麼【混】啊!如果使用不錯建議購買正版(除非你沒錢)
  官方中文化語系總是:慢辦拍!(出新版,語系用舊版會出現版本不合的警告!)
  來!總教頭再次把最新版給繁體中文化(至於註冊→不註冊的問題就不要問我啦!)

 
  我最喜歡使用EmEditor Professional的原因是:『他開啟一般文字檔時,只要是網址他會自動產生超連結!』。
  EmEditor Professional v10.0.0 是一款功能強大的文字編輯器!
  它啟動速度快,可以完全代替Windows自帶的記事本。
  足以勝任日常的文字編輯工作,而且良好地支援Unicode和中文字元
  還支援20多種寫程式語言的語法突出顯示。
  此專業版,增強了程式的編輯功能
  使其更適合寫程式人員對個別程式代碼進行編輯修改。
 
  繁體中文化方法:
  請自己先自備英文原版程式(安裝或綠色版英文或簡體都可以!)
  將本目錄下mui與PlugIns目錄複製到程式目錄下覆蓋即可!

 
 
   上菜啦!各位看倌請慢用!
 
 
attachments/201007/9503282316.gif
 
 --------------------------------------------------------------------------------
  【補充說明】
  EmEditor Professional v10.0.0 可以直接點擊開啟網頁、郵件位址。而不用像陽春記事本浪費複製貼上的動作。
  各種編輯功能以工具列顯現,不用像記事本一樣要回到選單裡面去選。
  列印前可以預覽列印。沒錯,原版的記事本一列印就直接給你印下去了。
  可以自訂外部連結的外部工具列。例如設定翻譯軟體,讓閱讀寫作更方便。
  具有[指定編碼重新讀取]功能。原本Windows的記事本如果碰到不是以Unicode編碼的簡體文件時,會顯示亂碼。而
  Emeditor可以將該文件重新編碼,使文字正常顯現,只要到[檔案]裡選擇[指定編碼重新讀取]即可。當然,各種原本
  不相容於繁中系統的文字編碼都可以適用。
  高亮度顯示特殊程式語法。
  最近開啟文件的歷史紀錄。
  IE7都從善如流的加入了標籤瀏覽,記事本當然也需要囉!Emeditor可以在一個視窗裡開啟多個瀏覽標籤,還可以設定並排
  顯示。
  可以將視窗定位在最上層。
  像我自己通常都使用記事本來記錄很多文字類資料(畢竟開個Word有點大才小用了),所以這些實用的功能對於記事本的
  使用增加了很多便利性,大家也可以試用看看喔!
  EmEditor is a fast, lightweight, yet extendable, easy-to-use text editor for Windows.
  EmEditor won many awards including Shareware Industry Award 2008 in the Best Applications category!
  The text editor supports powerful macros, Unicode, and very large files.
  Emurasoft's timeless mission is to achieve our clients' needs and wants by listening to them with empathy
  and expertise.
  We value supporting customers in a timely manner, and are honored to have distinguished users including
  major corporations,
  educational institutions, institutions of the European Union, ministries of Japan, and governments from all
  over the world.
   
  New Snippets Plug-in ‧ Brackets/Quotation Mark Auto-Complete ‧ Narrowing ‧ CSV, TSV ‧ Full Screen View
  ‧ Clipboard History ‧ Wildcard Support ‧ Workspace Including Undo Information ‧ New External Tools ‧
  Pin to List ‧ Save in Protected Folder ‧ Supports Windows 7 Jump List ‧ Large File Controller ‧
  Vertical Selection Editing ‧ Binary Editing ‧ Optimized Search and Replace ‧ Improved Projects Plug-in
  ‧ Optimized to Open Large Files ‧ Find Bar, HTML Bar, Projects plug-ins ‧ Word Complete ‧ Keystroke and
  Mouse Operation Recording and Playback ‧ New Objects, Properties, and Methods for Macros ‧ Macros Toolbar
  ‧ Portability Options (Ready for a USB Drive Install) ‧ Explorer, Diff, Outline, Web Preview, Search
  plug-ins ‧ External Tool Standard Output displayed within EmEditor ‧ Quick Start ‧ ActiveScript Support
  ‧ Light-Weight, Single-Process, Multi-Threading, and Low Memory Usage ‧ Tabbed Windows ‧ Detect All
  Result dialog ‧ Supports More Unicode Characters ‧ Application Error Handler Support ‧ Powerful and
  functionally-rich macros ‧ Finding in files ‧ Replacing in Files ‧ Keyword Highlighting ‧ Unicode
  Support ‧ Plug-ins ‧ Drag and Drop ‧ Best Quality ‧ For Web Designers ‧
   
  文字編輯-EmEditor Professional v10.0.0繁體中文化版下載之檔案位址:
   
  http://por.tw/Downloads/EmEditor-Professional-v10.rar
 
 
--------------------------------------------------------------------------------
你還在自己摸索如何將英文、日文或簡體中文軟體如何繁體中文化嗎?有【技術顧問服務】可諮詢嗎?
往往一個問題無法解決你可能要發很多時間處理(或許永遠找出答案)那就是軟體中文化痛苦的開始!
購買【軟體中文化】函授課程錄影DVD教學課程,你就可獲得【軟體中文化】技術的【顧問諮詢服務】!

伺服器配置:Squid配置詳解

伺服器配置:Squid配置詳解
 
基本配置
安裝完成後,接下來要對Squid的運行進行配置(不是前面安裝時的配置)。所有項目都在squid.conf中完成。Squid自帶的squid.conf內含非常詳盡的說明,相當於一篇使用者手冊,對配置有任何疑問都可以參照解決。

在這個例子中,代理伺服器同時也是通訊閘,內定網路介面eth0的IP位址為192.168.0.1,外部網路接eth1的IP位址為202.103.x.x。下面是一個基本的代理所需要配置選項:

http_port 192.168.0.1:3128

預設埠是3128,當然也可以是任何其它埠,只要不與其它服務發生衝突即可。為了安全起見,在前面加上IP位址,Squid就不會監聽外部的網路介面。 下面的配置選項是伺服器管理者的電子信件,當錯誤發生時,該位址會顯示在錯誤頁面上,便於使用者聯繫:

cache_mgr start@por.com

以下這些參數告訴Squid快取的檔案系統、位置和快取策略:

cache_dir ufs /var/squid cache_mem 32MB cache_swap_low 90 cache_swap_high 95

在這裡,Squid會將/var/squid目錄作為儲存快取資料的目錄,每次處理的快取大小是32兆位元組,當快取空間使用達到95%時,新的內容將 取代舊的而不直接新增到目錄中,直到空間又下降到90%才停止這一活動。

如果不想Squid快取任何檔案,如某些存儲空間有限的專有系統,可以使用 null檔案系統(這樣不需要那些快取策略):

cache_dir null /tmp

下面的幾個關於快取的策略配置中,較主要的是第一行,即使用者的訪問記錄,可以通過分析它來瞭解所有使用者訪問的詳盡位址:

cache_access_log /var/squid/access.log cache_log /var/squid/cache.log cache_store_log /var/squid/store.log

下面這行配置是在較新版本中出現的參數,告訴Squid在錯誤頁面中顯示的伺服器名稱:

visible_hostname No1.proxy

以下配置告訴Squid如何處理使用者,對每個請求的IP位址作為單獨位址處理:

client_netmask 255.255.255.255

如果是普通代理伺服器,以上的配置已經足夠。但是很多Squid都被用來做透明代理。

所謂透明代理,就是用戶端不知道有代理伺服器的存在,當然也不需要進行任何與代理有關的設定,從而大大方便了系統管理員。關聯的選項有以下幾個:

httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_user_host_header on

在Linux上,可以用iptables/ipchains直接將對Web埠80的請求直接轉信到Squid埠3128,由Squid接手,而使用者瀏覽器仍然認為它訪問的是對方的80埠。例如以下這條指令:

iptables -t nat -A PREROUTING -s 192.168.0.200/32 -p tcp --dport 80 -j REDIRECT 3128

page
    就是將192.168.0.200的所有針對80埠的訪問重導至3128埠。

所有設定完成後,關鍵且重要的任務是訪問控制。Squid支援的管理模式很多,使用起來也非常簡單(這也是有人寧願使用不做任何快取的Squid,也 不願意單獨使用iptables的原因)。

Squid可以通過IP位址、主電腦名、MAC位址、使用者/密碼認證等識別使用者,也可以通過功能變數名、功能變數副檔名、檔案類 型、IP位址、埠、URL符合等控制使用者的訪問,還可以使用時間區間對使用者進行管理,所以訪問控制是Squid配置中的重點。

Squid用ACL (Access Control List,訪問控制清單)對訪問類型進行劃分,用http_access deny 或allow進行控制。根據需求首先定義兩組使用者advance和normal,還有代表所有未指明的使用者組all及不容許上網的baduser,配置代 碼如下:

acl advance 192.168.0.2-192.168.0.10/32 acl normal src 192.168.0.11-192.168.0.200/32 acl baduser src 192.168.0.100/32 acl baddst dst www.soocol.com acl all src 0.0.0.0/0 http_access deny baduser http_access allow advance http_access allow normal

可以看出,ACL的基本格式如下: acl 清單名稱 控制模式 控制目的 比如acl all src 0.0.0.0/0,其名稱是all,控制模式是src源IP位址,控制目的是0.0.0.0/0的IP位址,即所有未定義的使用者。出於安全考慮,總是在最後禁止這個清單。 下面這個清單代表進階使用者,內含IP位址從192.168.0.2到192.168.0.10的所有電腦:

acl advance 192.168.0.2-192.168.0.20/32

下面這個baduser清單只包括一台電腦,其IP位址是192.168.0.100:

acl baduser 192.168.0.100/32

ACL寫完後,接下來要對它們分別進行管理,代碼如下:

http_access deny baduser http_access allow advance http_access allow normal

上面幾行代碼告訴Squid不容許baduser組訪問Internet,但advance、normal組容許(此時還沒有指定詳細的權限)。由 於 Squid是按照順序讀取規則,會首先禁止baduser,然後容許normal。如果將兩條規則順序顛倒,由於baduser在normal範圍中, Squid先容許了所有的normal,那麼再禁止baduser就不會起作用。

特別要注意的是,Squid將使用allow-deny-allow-deny……這樣的順序套用規則。例如,當一個使用者訪問代理伺服器時, Squid會順序測試Squid中定義的所有規則清單,當所有規則都不符合時,Squid會使用與最後一條相反的規則。

就像上面這個例子,假設有一個使用者 的IP位址是192.168.0.201,他試圖通過這台代理伺服器訪問Internet,會發生什麼情況呢?我們會發現,他能夠標準訪問,因為 Squid找遍所有訪問清單也沒有和192.168.0.201有關的定義,便開始應用規則,而最後一條是deny,那麼Squid預設的下一筆處理規則 是allow,所以192.168.0.201反而能夠訪問Internet了,這顯然不是我們希望的。所以在所有squid.conf中,最後一條規則 永遠是http_access deny all,而all就是前面定義的「src 0.0.0.0」。

進階控制

前面說過,Squid的控制功能非常強大,只要理解Squid的行為模式,基本上就能夠滿足所有的控制要求。下面就一步一步來瞭解Squid是如何進行控制管理的。

通過IP位址來識別使用者很不可靠,比IP位址更好的是網路卡的MAC物理位址。要在Squid中使用MAC位址識別,必須在編譯時加上「--enable-arp-acl」選項,然後可以通過以下的語句來識別使用者:

acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b ...

它直接使用使用者的MAC位址,而MAC位址一般是不易修改的,即使有普通使用者將自己的IP位址改為進階使用者也無法通過,所以這種模式比IP位址可靠得多。

假如不想讓使用者訪問某個網站應該怎麼做呢?可以分為兩種情況:一種是不容許訪問某個站台的某個主電腦,比如ok的主電腦是ok.sina.com.cn,而其它的新浪資源卻是容許訪問的,那麼ACL可以這樣寫:

acl sinapage dstdomain ok.sina.com.cn ... ... http_access deny ok ... ...

page
    另一種情況是整個網站都不許訪問,那麼只需要寫出這個網站共有的功能變數名即可,配置如下:

acl qq dstdomain .tcccent.com.cn

注意tcccent前面的「.」,正是它指出以此功能變數名結尾的所有主電腦都不可訪問,否則就只有tcccent.com.cn這一台主電腦不能訪問。

如果想禁止對某個IP位址的訪問,如202.118.2.182,可以用dst來控制,代碼如下:

acl badaddr dst 202.118.2.182

當然,這個dst也可以是功能變數名,由Squid查詢DNS伺服器將其轉換為IP。

還有一種比較廣泛的控制是檔案類型。如果不希望普通使用者通過代理伺服器下載MP3、AVI等檔案,完全可以對他們進行限制,代碼如下:

acl mmxfile urlpath_regex .mp3$ .avi$ .exe$ http_access deny mmxfile

看到regex,很多讀者應該心領神會,因為這條語句使用了標準的規則表達式(又叫正則表達式)。它將符合所有以.mp3、.avi等結尾的URL請求,還可以用-i參數忽略大小寫,例如以下代碼:

acl mmxfile urlpath_regex -i .mp3$

這樣,無論是.mp3還是.MP3都會被拒絕。當然,-i參數適用於任何可能需要區分大小寫的地方,如前面的功能變數名控制。

如果想讓普通使用者只在上班時間可以上網,而且是每週的工作日,用Squid應當如何處理呢?看看下面的ACL定義:

acl worktime time MTWHF 8:30-12:00 14:00-18:00 http_access deny !worktime

首先定義容許上網的時間是每週工作日(星期一至星期五)的上午和下午的固定時段,然後用http_access 定義所有不在這個時間段內的請求都是不容許的。

或是為了保證進階使用者的頻寬,希望每個使用者的並發連線不能太多,以免影響他人,也可以通過Squid控制,代碼如下:

acl conncount maxconn 3 http_access deny conncount normal http_access allow normal

這樣,普通使用者在某個固定時刻只能同時發起三個連線,從第四個開始,連線將被拒絕。

總之,Squid的ACL配置非常靈活、強大,更多的控制模式可以參考squid.conf.default。

認證

使用者/密碼認證為Squid管理提供了更多便利,最常用的認證模式是NCSA。從Squid 2.5版本開始,NCSA認證包括在了basic中,而非以前單獨的認證模組。下面來看看實現認證的具體操作。

首先在編譯時配置選項應內含以下配置:

--enable-auth="basic" --enable-basic-auth-helpers="NCSA"

page
    「make install」以後,需要將「helpers/basic_auth/NCSA/ncsa_auth」複製到使用者可執行目錄中,如/usr/bin(如 果在該目錄中找不到這個執行檔案,在編譯時請使用make all而不是make,或是直接在該目錄中執行make),然後需要借助Apache的密碼管理程式htpasswd來生成使用者名/密碼對應的檔案,就像 下面這行代碼:

htpasswd -c /var/squid/etc/password guest

在輸入兩遍guest使用者的密碼後,一個guest使用者就生成了。如果以後需要加入使用者,把上面的指令去掉-c參數再運行即可。

Squid 2.5在認證處理上有了較大的改變,這裡就只討論2.5版本的處理方法,2.4及以下版本請參考squid.conf.default。在2.5版的squid.conf中,內含以下幾個關聯選項:

該選項指出了認證模式(basic)、需要的程式(ncsa_auth)和對應的密碼檔案(password)

auth_param basic program /usr/bin/ncsa_auth /var/squid/etc/password

指定認證程式的程式數

auth_param basic children 5

瀏覽器顯示輸入使用者/密碼對話框時的領功能變數內容

auth_param basic realm My Proxy Caching Domain

基本的認證有效時間

auth_param basic credentialsttl 2 hours

普通使用者需要通過認證才能訪問Internet

acl normal proxy_auth REQUIRED http_access allow normal

通過以上的配置即可完成認證工作。有的讀者可能要問:認證只針對普通使用者,而進階使用者是直接上網的,該怎麼處理呢?其實,這兩種使用者是可以共存的。

如 前所述,Squid是順序處理http_access的,所以在http_access處理過程中,如果先處理normal使用者,那麼現用的使用者無論是否屬 於進階使用者,都會被要求進行認證;相反如果先處理進階使用者,剩下的就只有需要認證的普通使用者了。例如以下配置代碼:

... http_access allow normal (需要認證) http_access allow advance (不需要認證) ...

不管是否為noauth使用者,都要求進行使用者名/密碼驗證。正確的方法是將二者位置交換,代碼如下:

... http_access allow advance http_access allow normal ...

這時,進階使用者不會受到任何影響。

總結

下面把整個squid.conf總結一下:

伺服器配置

http_port 192.168.0.1:3128 cache_mgr start@por.com cache_dir null /tmp cache_access_log /var/squid/access.log cache_log /var/squid/cache.log cache_store_log /var/squid/store.log visible_hostname No1.proxy client_mask 255.255.255.255 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_user_host_header on

使用者分類

acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b ... acl normal proxy_auth REQUIED acl all src 0.0.0.0

行為分類

acl mmxfile urlpath_regex .mp3$ .avi$ .exe$ acl conncount maxconn 3 acl worktime time MTWHF 8:30-12:00 14:00-18:00 acl sinapage dstdomain ok.sina.com.cn acl qq dstdomain .tcccent.com.cn

處理

http_access allow advance http_access deny conncount normal http_access deny !worktime http_access deny mmxfile http_access deny sinapage http_access deny qq http_access allow normal

配置後的狀況是,advance組可以不受任何限制地訪問Internet,而normal組則只能在工作時間上網,而且不能下載多媒體檔案,不能訪問某些特定的站台,而且傳送請求不能超過3個。

通過本文的介紹,它可以瞭解Squid的基本能力。當然,它的能力遠不止此,可以建立強大的代理伺服器陣列,可以說明本地的Web伺服器提高效能,可以提高本地網路的安全性等。要想發揮它的功效,還需要進一步控制。

php.ini中的php-5.2.0配置指令詳解

php.ini中的php-5.2.0配置指令詳解

本文並非是對英文版 php.ini 的簡單翻譯,而是參考了眾多資料以後,結合自己的理解,

在原有 php.ini 基礎上增加了一些實用模組的配置說明,同時對檔案內容的安排進行了調整。

由於作者不喜歡 no-free 的玩意兒,所以刪除了除 MySQL 和 PostgreSQL 以外的其他資料庫模組配置選項。

關於php.ini ;;

這個檔案必須命名為''php.ini''並放置在httpd.conf中的PHPIniDir指令特殊的目錄中。

語法

該檔案的語法非常簡單。空白字元和以分號開始的行被簡單地忽略。

章節標題(例如: [php])也被簡單地忽略,即使將來它們可能有某種意義。

設定指令的格式如下:

directive = value

指令名(directive)是大小寫敏感的!所以"foo=bar"不同於"FOO=bar"。

值(value)可以是:

1. 用引號界定的字串(如:"foo")

2. 一個數字(整數或浮點數,如:0, 1, 34, -1, 33.55)

3. 一個PHP常量(如:E_ALL, M_PI)

4. 一個INI常量(On, Off, none)

5. 一個表達式(如:E_ALL & ~E_NOTICE)

INI檔案中的表達式僅使用:位運算符、邏輯非、圓括號:

| 位或

& 位與

~ 位非

! 邏輯非

布爾標誌用 On 表示開啟,用 Off 表示關閉。

一個空字串可以用在等號後不寫任何東西表示,或是用 none 關鍵字:

foo =     ; 將foo設為空字串

foo = none  ; 將foo設為空字串

foo = "none" ; 將foo設為字串''none''



如果你在指令值中使用動態延伸(PHP延伸或Zend延伸)中的常量,

那麼你只能在加載這些動態延伸的指令行之後使用這些常量。

httpd.conf ;;

還可以在httpd.conf中覆蓋php.ini的值,以進行更靈活的配置:

php_value name value ;設定非bool型的指令,將value設為none則清除先前的設定

php_flag name on|off ;僅用於設定bool型的指令



PHP常量(如E_ALL)僅能在php.ini中使用,在httpd.conf中必須使用相應的遮罩值。

帶"SYS"標誌的指令只能在httpd.conf中的全局配置部分使用,

帶"ini"標誌的指令不能在httpd.conf中使用,它們僅能用於php.ini中。

====================配置指令詳解========================================

以下每個指令的設定值都與 PHP-5.2.0 內建的預設值相同。

也就是說,如果''php.ini''不存在,或是你刪掉了某些行,預設值與之相同。

;;;;;;;;;;;;

Apache ;;

;;;;;;;;;;;;

[Apache]

僅在將PHP作為Apache模組時才有效。

engine = On

是否啟用PHP解析引擎。

可以在httpd.conf中基於目錄或是虛擬主電腦來開啟或是關閉PHP解析引擎。

last_modified = Off

是否在Last-Modified應答頭中放置該PHP腳本的最後修改時間。

xbithack = Off

是否不管檔案結尾是什麼,都作為PHP可執行位組來解析。

child_terminate = Off

PHP腳本在請求結束後是否容許使用apache_child_terminate()函數終止子程式。

該指令僅在UNIX平台上將PHP安裝為Apache1.3的模組時可用。其他情況下皆不存在。

;;;;;;;;;;;;;

PHP核心 ;;

;;;;;;;;;;;;;

[PHP-Core-DateTime]

前四個配置選項目前僅用於date_sunrise()和date_sunset()函數。

date.default_latitude = 31.7667

預設緯度

date.default_longitude = 35.2333

預設經度

date.sunrise_zenith = 90.583333

預設日出天頂

date.sunset_zenith = 90.583333

預設日落天頂

date.timezone =

未設定TZ環境變量時用於所有日期及時間函數的預設時區。

中國大陸應當使用"PRC"

應用時區的優先順序為:

1. 用date_default_timezone_set()函數設定的時區(如果設定了的話)

2. TZ 環境變量(如果非空的話)

3. 該指令的值(如果設定了的話)

4. PHP自己推測(如果操作系統支援)

5. 如果以上都不完成,則使用 UTC

[PHP-Core-Assert]

assert.active = On

是否啟用assert()斷言評估

assert.bail = Off

是否在發生失敗斷言時中止腳本的執行
 
回復 引用 舉報頂端  
落伍 離線
   

層級: 管理員
 
UID: 818
精華: 1
發帖: 232
金錢: 12043 金
威望: 293 點
貢獻值: 1 點
交易幣: 0 元
線上時間: 7(時)
註冊時間: 2008-09-18
最後登入: 2010-05-12  沙發  發表於: 2008-10-15    只看該作者 │  小 中 大


assert.callback =

發生失敗斷言時執行的回呼函數

assert.quiet_eval = Off

是否使用安靜評估(不顯示任何錯誤訊息,相當於error_reporting=0)。

若關閉則在評估斷言表達式的時候使用現用的的error_reporting指令值。

assert.warning = On

是否對每個失敗斷言都發出警示

[PHP-Core-SafeMode]

安全模式是為了解決共享伺服器的安全問題而設立的。

但試圖在PHP層解決這個問題在結構上是不合理的,

正確的做法應當是修改web伺服器層和操作系統層。

因此在PHP6中廢除了安全模式,並打算使用open_basedir指令取代之。

safe_mode = Off

SYS

是否啟用安全模式。

開啟時,PHP將檢查現用的腳本的擁有者是否和被操作的檔案的擁有者相同,

相同則容許操作,不同則拒絕操作。

safe_mode_gid = Off

SYS

在安全模式下,預設在訪問檔案時會做UID比較檢查。

但有些情況下嚴格的UID檢查反而是不適合的,寬鬆的GID檢查已經足夠。

如果你想將其放寬到僅做GID比較,可以開啟這個參數。

safe_mode_allowed_env_vars = "PHP_"

SYS

在安全模式下,使用者僅可以變更的環境變量的首碼清單(逗號分隔)。

容許使用者設定某些環境變量,可能會導致潛在的安全漏洞。

注意: 如果這一參數值為空,PHP將容許使用者變更任意環境變量!

safe_mode_protected_env_vars = "LD_LIBRARY_PATH"

SYS

在安全模式下,使用者不能變更的環境變量清單(逗號分隔)。

這些變量即使在safe_mode_allowed_env_vars指令設定為容許的情況下也會得到保護。

safe_mode_exec_dir = "/usr/local/php/bin"SYS

在安全模式下,只有該目錄下的可執行程式才容許被執行系統程式的函數執行。

這些函數是:system, escapeshellarg, escapeshellcmd, exec, passthru,

proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec

safe_mode_include_dir =

SYS

在安全模式下,該組目錄和其子目錄下的檔案被包括時,將略過UID/GID檢查。

換句話說,如果此處的值為空,任何UID/GID不符合的檔案都不容許被包括。

這裡設定的目錄必須已經存在於include_path指令中或是用完整路徑來包括。

多個目錄之間用冒號(Win下為分號)隔開。

特殊的限制實際上是一個首碼,而非一個目錄名,

也就是說"/dir/incl"將容許訪問"/dir/include"和"/dir/incls"

如果您希望將訪問控制在一個特殊的目錄,那麼請在結尾加上斜線。

sql.safe_mode = Off

SYS

是否使用SQL安全模式。

如果開啟,指定預設值的資料庫連線函數將會使用這些預設值代替支援的參數。

對於每個不同資料庫的連線函數,其預設值請參考相應的手冊頁面。

[PHP-Core-Safe]

allow_url_fopen = On

ini

是否容許開啟遠端檔案

allow_url_include = Off

SYS

是否容許include/require遠端檔案。

disable_classes =

ini

該指令接受一個用逗號分隔的類名清單,以禁用特定的類。

disable_functions =

ini

該指令接受一個用逗號分隔的函數名清單,以禁用特定的函數。

enable_dl = On

SYS

是否容許使用dl()函數。dl()函數僅在將PHP作為apache模組安裝時才有效。

禁用dl()函數主要是出於安全考慮,因為它可以繞過open_basedir指令的限制。

在安全模式下始終禁用dl()函數,而不管此處如何設定。

expose_php = On

ini

是否暴露PHP被安裝在伺服器上的事實(在http頭中加上其簽名)。

它不會有安全上的直接威脅,但它使得用戶端知道伺服器上安裝了PHP。

open_basedir =

SYS

將PHP容許操作的所有檔案(內含檔案自身)都限制在此組目錄清單下。

當一個腳本試圖開啟一個指定目錄樹之外的檔案時,將遭到拒絕。

所有的符號連線都會被解析,所以不可能通過符號連線來避開此限制。

特殊值''.''指定了存放該腳本的目錄將被當做基準目錄。

但這有些危險,因為腳本的工作目錄可以輕易被chdir()改變。

對於共享伺服器,在httpd.conf中靈活設定該指令將變得非常有用。

在Windows中用分號分隔目錄,UNIX系統中用冒號分隔目錄。

作為Apache模組時,父目錄中的open_basedir路徑將自動被繼承。

特殊的限制實際上是一個首碼,而非一個目錄名,

也就是說"/dir/incl"將容許訪問"/dir/include"和"/dir/incls",

如果您希望將訪問控制在一個特殊的目錄,那麼請在結尾加上一個斜線。

預設是容許開啟所有檔案。

[PHP-Core-Error]

error_reporting = E_ALL & ~E_NOTICE  
回復 引用 舉報頂端  
落伍 離線
   

層級: 管理員
 
UID: 818
精華: 1
發帖: 232
金錢: 12043 金
威望: 293 點
貢獻值: 1 點
交易幣: 0 元
線上時間: 7(時)
註冊時間: 2008-09-18
最後登入: 2010-05-12  2樓  發表於: 2008-10-15    只看該作者 │  小 中 大


錯誤報告層級是位欄位的疊加,推薦使用 E_ALL | E_STRICT

1 E_ERROR       致命的運行時錯誤

2 E_WARNING      運行時警示(非致命性錯誤)

4 E_PARSE       編譯時解析錯誤

8 E_NOTICE      運行時提醒(經常是bug,也可能是有意的)

16 E_CORE_ERROR    PHP啟動時起始化過程中的致命錯誤

32 E_CORE_WARNING   PHP啟動時起始化過程中的警示(非致命性錯)

64 E_COMPILE_ERROR   編譯時致命性錯

128 E_COMPILE_WARNING  編譯時警示(非致命性錯)

256 E_USER_ERROR    使用者自訂的致命錯誤

512 E_USER_WARNING   使用者自訂的警示(非致命性錯誤)

1024 E_USER_NOTICE    使用者自訂的提醒(經常是bug,也可能是有意的)

2048 E_STRICT      編碼標準化警示(建議如何修改以向前相容)

4096 E_RECOVERABLE_ERROR 接近致命的運行時錯誤,若未被捕獲則視同E_ERROR

6143 E_ALL        除E_STRICT外的所有錯誤(PHP6中為8191,即包括所有)

track_errors = Off

是否在變量$php_errormsg中儲存最近一個錯誤或警示訊息。

display_errors = On

是否將錯誤訊息作為輸出的一部分顯示。

在最終發佈的web站台上,強烈建議你關掉這個特性,並使用錯誤日誌代替(參看下面)。

在最終發佈的web站台開啟這個特性可能暴露一些安全訊息,

例如你的web服務上的檔案路徑、資料庫規劃或別的訊息。

display_startup_errors = Off

是否顯示PHP啟動時的錯誤。

即使display_errors指令被開啟,關閉此參數也將不顯示PHP啟動時的錯誤。

建議你關掉這個特性,除非你必須要用於除錯中。

report_memleaks = On

是否報告記憶體洩漏。這個參數只在以除錯模式編譯的PHP中起作用,

並且必須在error_reporting指令中包括 E_WARNING

report_zend_debug = On

尚無說明文件

html_errors = On

是否在出錯訊息中使用HTML標示。

注意: 不要在發佈的站台上使用這個特性!

docref_root = ;"http://localhost/phpmanual/"

docref_ext =  ;".html"

如果開啟了html_errors指令,PHP將會在出錯訊息上顯示超連線,

直接連結到一個說明這個錯誤或是導致這個錯誤的函數的頁面。

你可以從http://www.php.net/docs.php下載php手冊,

並將docref_root指令指向你本地的手冊所在的URL目錄。

你還必須設定docref_ext指令來指定檔案的副檔名(必須含有''.'')。

注意: 不要在發佈的站台上使用這個特性。

error_prepend_string = ;"<font color=#f00>"

用於錯誤訊息前輸出的字串

error_append_string =  ;"</font>"

用於錯誤訊息後輸出的字串

xmlrpc_errors = Off

xmlrpc_error_number = 0

尚無文件

[PHP-Core-Logging]

define_syslog_variables = Off

是否定義各種系統日誌變量,如:$LOG_PID, $LOG_CRON 等等。

關掉它以提高效率的好主意。

你可以在運行時呼叫define_syslog_variables()函數來定義這些變量。

error_log =

將錯誤日誌記錄到哪個檔案中。該檔案必須對Web伺服器使用者可寫。

syslog 表示記錄到系統日誌中(NT下的事件日誌, Unix下的syslog(3))

如果此處未設定任何值,則錯誤將被記錄到Web伺服器的錯誤日誌中。

log_errors = Off

是否在記錄檔案裡記錄錯誤,具體在哪裡記錄取決於error_log指令。

強烈建議你在最終發佈的web站台時使用日誌記錄錯誤而不是直接輸出,

這樣可以讓你既知道那裡出了問題,又不會暴露敏感訊息。

log_errors_max_len = 1024

設定錯誤日誌中附加的與錯誤訊息關聯聯的錯誤源的最大長度。

這裡設定的值對顯示的和記錄的錯誤以及$php_errormsg都有效。

設為 0 可以容許無限長度。

ignore_repeated_errors = Off

記錄錯誤日誌時是否忽略重複的錯誤訊息。

錯誤訊息必須出現在同一檔案的同一行才被被視為重複。

ignore_repeated_source = Off

是否在忽略重複的錯誤訊息時忽略重複的錯誤源。

[PHP-Core-Mail]

要使信件函數可用,PHP必須在編譯時能夠訪問sendmail程式。

如果使用其它的信件程式,如qmail或postfix,確保使用了相應的sendmail包裝。

PHP首先會在系統的PATH環境變量中搜尋sendmail,接著按以下順序搜尋:

/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib

強烈建議在PATH中能夠找到sendmail。

另外,編譯PHP的使用者必須能夠訪問sendmail程式。

SMTP = "localhost"

mail()函數中用來傳送信件的SMTP伺服器的主電腦名稱或是IP位址。僅用於win32。

smtp_port = 25

SMTP伺服器的埠號。僅用於win32。

sendmail_from =

傳送信件時使用的"From:"頭中的信件位址。僅用於win32

該選項還同時設定了"Return-Path:"頭。

sendmail_path = "-t -i"

SYS

僅用於unix,也可支援參數(預設的是''sendmail -t -i'')

sendmail程式的路徑,通常為"/usr/sbin/sendmail或/usr/lib/sendmail"。

configure腳本會嘗試找到該程式並設定為預設值,但是如果失敗的話,可以在這裡設定。

不使用sendmail的系統應將此指令設定為sendmail替代程式(如果有的話)。

例如,Qmail使用者通常可以設為"/var/qmail/bin/sendmail"或"/var/qmail/bin/qmail-inject"。

qmail-inject 不需要任何選項就能正確處理信件。

mail.force_extra_parameters =

作為額外的參數傳遞給sendmail庫的強制特殊的參數附加值。

這些參數總是會取代掉mail()的第5個參數,即使在安全模式下也是如此。

[PHP-Core-ResourceLimit]

default_socket_timeout = 60

預設socket逾時(秒)

max_execution_time = 30

每個腳本最大容許執行時間(秒),0 表示沒有限制。

這個參數有助於阻止劣質腳本無休止的佔用伺服器資源。

該指令僅影響腳本本身的運行時間,任何其它花費在腳本運行之外的時間,

如用system()/sleep()函數的使用、資料庫查詢、檔案上傳等,都不內含在內。

在安全模式下,你不能用ini_set()在運行時改變這個設定。  

memory_limit = 16M

一個腳本所能夠申請到的最大記憶體位元組數(可以使用K和M作為單位)。

這有助於防止劣質腳本消耗完伺服器上的所有記憶體。

要能夠使用該指令必須在編譯時使用"--enable-memory-limit"配置選項。

如果要取消記憶體限制,則必須將其設為 -1 。

設定了該指令後,memory_get_usage()函數將變為可用。

max_input_time = -1

每個腳本解析輸入資料(POST, GET, upload)的最大容許時間(秒)。

-1 表示不限制。

post_max_size = 8M

容許的POST資料最大位元組長度。此設定也影響到檔案上傳。

如果POST資料超出限制,那麼$_POST和$_FILES將會為空。

要上傳大檔案,該值必須大於upload_max_filesize指令的值。

如果啟用了記憶體限制,那麼該值應當小於memory_limit指令的值。

realpath_cache_size = 16K

SYS

指定PHP使用的realpath(規範化的絕對路徑名)緩沖區大小。

在PHP開啟大量檔案的系統上應當增大該值以提高效能。

realpath_cache_ttl = 120

SYS

realpath緩沖區中訊息的有效期(秒)。

對檔案很少變動的系統,可以增大該值以提高效能。

[PHP-Core-FileUpLoad]

file_uploads = On

SYS

是否容許HTTP檔案上傳。

參見upload_max_filesize, upload_tmp_dir, post_max_size指令

upload_max_filesize = 2M

容許上傳的檔案的最大尺寸。

upload_tmp_dir =

SYS

檔案上傳時存放檔案的臨時目錄(必須是PHP程式使用者可寫的目錄)。

如果未指定則PHP使用系統預設的臨時目錄。

[PHP-Core-MagicQuotes]

PHP6將取消魔術引號,相當於下列指令全部為 Off

magic_quotes_gpc = On

是否對輸入的GET/POST/Cookie資料使用自動字串轉義( '' "  NULL )。

這裡的設定將自動影響 $_GEST $_POST $_COOKIE 陣列的值。

若將本指令與magic_quotes_sybase指令同時開啟,則僅將單引號('')轉義為(''''),

其它特殊字元將不被轉義,即( "  NULL )將保持原樣!!

建議關閉此特性,並使用自訂的過濾函數。

magic_quotes_runtime = Off

是否對運行時從外部資源產生的資料使用自動字串轉義( '' "  NULL )。

若開啟本指令,則大多數函數從外部資源(資料庫,文字檔案等)返回資料都將被轉義。

例如:用SQL查詢得到的資料,用exec()函數得到的資料,等等---www.bianceng.cn

若將本指令與magic_quotes_sybase指令同時開啟,則僅將單引號('')轉義為(''''),

其它特殊字元將不被轉義,即( "  NULL )將保持原樣!!

建議關閉此特性,並視具體情況使用自訂的過濾函數。

magic_quotes_sybase = Off

是否採用Sybase形式的自動字串轉義(用 '''' 表示 '')

[PHP-Core-HighLight]

highlight.bg = "#FFFFFF"

highlight.comment = "#FF8000"

highlight.default = "#0000BB"

highlight.html = "#000000"

highlight.keyword = "#007700"

highlight.string = "#DD0000"

語法高亮模式的色彩(通常用於顯示 .phps 檔案)。

只要能被<font color=xxx>接受的東西就能標準工作。

[PHP-Core-Langue]

short_open_tag = On

是否容許使用"<? ?>"短標識。否則必須使用"<?php ?>"長標識。

除非你的php程式僅在受控環境下運行,且只供自己使用,否則請不要使用短標示。

如果要和XML結合使用PHP,可以選取關閉此選項以方便直接內嵌"<?xml ... ?>",

不然你必須用PHP來輸出:<? echo ''<?xml version="1.0"''; ?>

本指令也會影響到縮寫形式"<?=",它和"<? echo"等價,要使用它也必須開啟短標示。

asp_tags = Off

是否容許ASP風格的標示"<% %>",這也會影響到縮寫形式"<%="。

PHP6中將刪除此指令

arg_separator.output = "&"

PHP所產生的URL中用來分隔參數的分隔設定。

另外還可以用"&"或","等等。

arg_separator.input = "&"

PHP解析URL中的變量時使用的分隔設定清單。

字串中的每一個字元都會被當作分割符。

另外還可以用",&"等等。

allow_call_time_pass_reference = On

是否強迫在函數呼叫時按引用傳遞參數(每次使用此特性都會收到一條警示)。

php反對這種做法,並在將來的版本裡不再支援,因為它影響到了代碼的整潔。

鼓勵的方法是在函數聲明裡明確指定哪些參數按引用傳遞。

我們鼓勵你關閉這一選項,以保證你的腳本在將來版本的語系裡仍能標準工作。

auto_globals_jit = On

是否僅在使用到$_SERVER和$_ENV變量時才建立(而不是在腳本一啟動時就自動建立)。

如果並未在腳本中使用這兩個陣列,開啟該指令將會獲得效能上的提升。

要想該指令生效,必須關閉register_globals和register_long_arrays指令。

auto_prepend_file =

auto_append_file =

指定在主檔案之前/後自動解析的檔名。為空表示禁用該特性。

該檔案就像呼叫了include()函數被包括進來一樣,因此會使用include_path指令的值。

注意:如果腳本通過exit()終止,那麼自動副檔名將不會發生。---www.bianceng.cn

variables_order = "EGPCS"

PHP註冊 Environment, GET, POST, Cookie, Server 變量的順序。

分別用 E, G, P, C, S 表示,按從左到右註冊,新值覆蓋舊值。

舉例說,設為"GP"將會導致用POST變量覆蓋同名的GET變量,

並完全忽略 Environment, Cookie, Server 變量。

推薦使用"GPC"或"GPCS",並使用getenv()函數訪問環境變量。

register_globals = Off

是否將 E, G, P, C, S 變量註冊為全局變量。

開啟該指令可能會導致嚴重的安全問題,除非你的腳本經由非常仔細的檢查。

推薦使用預定義的超全局變量:$_ENV, $_GET, $_POST, $_COOKIE, $_SERVER

該指令受variables_order指令的影響。

PHP6中已經刪除此指令。

register_argc_argv = On

是否聲明$argv和$argc全局變量(包括用GET方法的訊息)。

建議不要使用這兩個變量,並關掉該指令以提高效能。

register_long_arrays = On

是否啟用舊式的長式陣列(HTTP_*_VARS)。

鼓勵使用短式的預定義超全局陣列,並關閉該特性以獲得更好的效能。

PHP6中已經刪除此指令。

always_populate_raw_post_data = Off

是否總是生成$HTTP_RAW_POST_DATA變量(原始POST資料)。

否則,此變量僅在遇到不能識別的MIME類型的資料時才產生。

不過,訪問原始POST資料的更好方法是 php://input 。

$HTTP_RAW_POST_DATA對於enctype="multipart/form-data"的表單資料不可用。

unserialize_callback_func =

如果解序列化處理器需要案例化一個未定義的類,

這裡特殊的回呼函數將以該未定義類的名字作為參數被unserialize()呼叫,

以免得到不完整的"__PHP_Incomplete_Class"對象。

如果這裡沒有指定函數,或特殊的函數不包括(或實現)那個未定義的類,將會顯示警示訊息。

所以僅在確實需要實現這樣的回呼函數時才設定該指令。

若要禁止這個特性,只需置空即可。

y2k_compliance = On

是否強制開啟2000年適應(可能在非Y2K適應的瀏覽器中導致問題)。

zend.ze1_compatibility_mode = Off

是否使用相容Zend引擎I(PHP 4.x)的模式。

這將影響對象的複製、構造(無屬性的對象會產生FALSE或0)、比較。

相容模式下,物件將按值傳遞,而不是預設的按引用傳遞。

precision = 14

浮點型資料顯示的有效位數。

serialize_precision = 100

將浮點型和雙精度型資料序列化存儲時的精度(有效位數)。

預設值能夠確保浮點型資料被解序列化程式解碼時不會丟失資料。

[PHP-Core-OutputControl]

輸出控制函數很有用,特別是在已經輸出了訊息之後再傳送HTTP頭的情況下。

輸出控制函數不會作用於header()或setcookie()等函數傳送的HTTP頭,

而只會影響類似於echo()函數輸出的訊息和內嵌在PHP代碼之間的訊息。

implicit_flush = Off

是否要求PHP輸出層在每個輸出塊之後自動重整資料。

這等效於在每個 print()、echo()、HTML塊 之後自動呼叫flush()函數。

開啟這個選項對程式執行的效能有嚴重的影響,通常只推薦在除錯時使用。

在CLI SAPI的執行模式下,該指令預設為 On 。

output_buffering = 0

輸出緩沖區大小(位元組)。建議值為4096~8192。

輸出緩衝容許你甚至在輸出正文內容之後再傳送HTTP頭(內含cookies)。

其代價是輸出層減慢一點點速度。

設定輸出緩衝可以減少寫入,有時還能減少網路封包的傳送。

這個參數的實際收益很大程度上取決於你使用的是什麼Web伺服器以及什麼樣的腳本。

output_handler =

將所有腳本的輸出重導至一個輸出處理函數。

比如,重導至mb_output_handler()函數時,字元編碼將被透明地轉換為特殊的編碼。

一旦你在這裡指定了輸出處理程式,輸出緩衝將被自動開啟(output_buffering=4096)。

注意0: 此處僅能使用PHP內建的函數,自訂函數應在腳本中使用ob_start()指定。

注意1: 可移植腳本不能依賴該指令,而應使用ob_start()函數明確指定輸出處理函數。

使用這個指令可能會導致某些你不熟悉的腳本出錯。

注意2: 你不能同時使用"mb_output_handler"和"ob_iconv_handler"兩個輸出處理函數。

你也不能同時使用"ob_gzhandler"輸出處理函數和zlib.output_compression指令。

注意3: 如果使用zlib.output_handler指令開啟zlib輸出壓縮,該指令必須為空。

[PHP-Core-Directory]

doc_root =

SYS

PHP的"根目錄"。僅在非空時有效。

如果safe_mode=On,則此目錄之外的檔案一概被拒絕。

如果編譯PHP時沒有指定FORCE_REDIRECT,並且在非IIS伺服器上以CGI模式運行,

則必須設定此指令(參見手冊中的安全部分)。

替代專案是使用的cgi.force_redirect指令。

include_path = ".:/path/to/php/pear"

指定一組目錄用於require(), include(), fopen_with_path()函數尋找檔案。

格式和系統的PATH環境變量類似(UNIX下用冒號分隔,Windows下用分號分隔):

UNIX: "/path1:/path2"

Windows: "path1;path2"

在包括路徑中使用''.''可以容許相對路徑,它代表現用的目錄。

user_dir =

SYS

告訴php在使用 /~username 開啟腳本時到哪個目錄下去找,僅在非空時有效。

也就是在使用者目錄之下使用PHP檔案的基本目錄名,例如:"public_html"

extension_dir = "/path/to/php"

SYS

存放延伸庫(模組)的目錄,也就是PHP用來尋找動態延伸模組的目錄。

Windows下預設為"C:/php5"

[PHP-Core-HTTP]

default_mimetype = "text/html"

default_charset = ;"utf-8"

PHP預設會自動輸出"Content-Type: text/html" HTTP頭。

如果將default_charset指令設為"utf-8",

那麼將會自動輸出"Content-Type: text/html; charset=utf-8"。

[PHP-Core-Unicode]

detect_unicode = On

尚無文件

[PHP-Core-Misc]

auto_detect_line_endings = Off

是否讓PHP自動偵測行結束符(EOL)。

如果的你腳本必須處理Macintosh檔案,

或是你運行在Macintosh上,同時又要處理unix或win32檔案,

開啟這個指令可以讓PHP自動偵測EOL,以便fgets()和file()函數可以標準工作。

但同時也會導致在Unix系統下使用換行符(CR)作為項目分隔設定的人遭遇不相容行為。

cgi.rfc2616_headers = 0

指定PHP在傳送HTTP響應代碼時使用何種報頭。

0 表示傳送一個"Status: "報頭,Apache和其它web伺服器都支援。

若設為1,則PHP使用RFC2616標準的頭。

除非你知道自己在做什麼,否則保持其預設值 0

cgi.nph = Off

在CGI模式下是否強制對所有請求都傳送"Status: 200"狀態碼。

fastcgi.impersonate = Off

IIS中的FastCGI支援模仿用戶端安全令牌的能力。

這使得IIS能夠定義運行時所基於的請求的安全上下文。

Apache中的mod_fastcgi不支援此特性(03/17/2002)

如果在IIS中運行則設為On,預設為Off。

fastcgi.logging = On

是否記錄通過FastCGI進行的連線。

[PHP-Core-Weirdy]

這些選項僅存在於文件中,卻不存在於phpinfo()函數的輸出中

async_send = Off

是否異步傳送。

from = ;"john@doe.com"

定義匿名ftp的密碼(一個email位址)

近核心模組 ;;

[Pcre]

Perl相容正則表達式模組

pcre.backtrack_limit = 100000

PCRE的最大回溯(backtracking)步數。

pcre.recursion_limit = 100000

PCRE的最大遞歸(recursion)深度。

如果你將該值設的非常高,將可能耗盡程式的棧空間,導致PHP崩潰。

[Session]

除非使用session_register()或$_SESSION註冊了一個變量。

否則不管是否使用了session_start(),都不會自動加入任何session記錄。

內含resource變量或有迴圈引用的對象包括指向自身的引用的對象,不能儲存在會話中。

register_globals指令會影響到會話變量的存儲和還原。

session.save_handler = "files"

存儲和檢索與會話關聯的資料的處理器名字。預設為檔案("files")。

如果想要使用自訂的處理器(如基於資料庫的處理器),可用"user"。

有一個使用PostgreSQL的處理器:http://sourceforge.net/projects/phpform-ext/

session.save_path = "/tmp"

傳遞給存儲處理器的參數。對於files處理器,此值是建立會話資料檔的路徑。

Windows下預設為暫存檔夾路徑。

你可以使用"N;[MODE;]/path"這樣模式定義該路徑(N是一個整數)。

N表示使用N層深度的子目錄,而不是將所有資料檔都儲存在一個目錄下。

[MODE;]可選,必須使用8進位數,預設600(=384),表示每個目錄下最多儲存的會話檔案數量。

這是一個提高大量會話效能的好主意。

網頁設計軟體、HTML 編輯器 | Adobe Dreamweaver CS5 繁體中文版
Adobe Dreamweaver是Adobe公司的著名網站開發工具。它使用所見即所得的介面,亦有HTML編輯的功能。

設計。開發。測試和發佈。更快捷。
 
AdobeR DreamweaverR CS5 軟體給設計師和開發人員莫大助益,讓他們架設標準型
網站時胸有成竹。設計網頁時可用視覺化方法亦可直接寫程式,並用內容管理系統
開發網頁,而且由於和 Adobe CS Live 新推出的線上服務 Adobe BrowserLab整合
,所以能精確測試瀏覽器的相容性。

attachments/201009/1975286727.jpg
 
CSS 檢查
能詳細圖解 CSS 方塊模型,而且切換 CSS 屬性非常輕鬆,無須讀取程式碼或使用
其他公用程式。
 
與 Adobe Business Catalyst 整合
由於和 Adobe Business CatalystR 整合,因此能以範本架設小型企業網站,又快
又簡單。
 
支援 Subversion
由於加強支援 Subversion 軟體,因此能在共同作業、版本控制的環境下,提高網
站檔案的管理效果。
 
網站特有的程式碼提示
Dreamweaver CS 能讓非標準檔案與目錄可顯示程式碼提示,極為方便。
 
簡易架站
前所未有的架站速度,即使是有多台伺服器的分段或網路類站台亦然。

它現在有Mac和Windows系統的版本。
原本由Macromedia公司所開發。

Dreamweaver自MX版本開始,使用了Opera軟體公司的排版引擎「Presto」作為網頁預覽。

Adobe® Dreamweaver® CS5 軟體給設計師和開發人員莫大助益,讓他們架設標準型網站時胸有成竹。
設計網頁時可用視覺化方法亦可直接寫程式,並用內容管理系統開發網頁,而且由於和 Adobe CS Live 新推出的線上服務 Adobe BrowserLab 整合,所以能精確測試瀏覽器的相容性。

Adobe Dreamweaver CS5 繁體中文版官方網站:

http://www.adobe.com/tw/products/dreamweaver/

標籤: Dreamweaver

Google 正式發表 Android 2.3 Nexus S

Google 正式發表 Android 2.3 Nexus S
    
Nexus S 則具備了 LED 閃燈,另外更重要的則是加入了 NFC (Near Field Communication) 能力,將可支援像是悠遊卡之類的非接觸感應功能。
            
Google 今日正式發表搭載了 Android 2.3 (Gingerbread) 的新款智慧型手機 Nexus S,讓最近不斷的謠言終於能塵埃落定。
這款與 Samsung Galaxy S (i9000) 相當神似的新機(當然也是由 Samsung 代工),同樣採用了 Super AMOLED 螢幕、1GHz 處理器、16GB 內建記憶體,以及 5MP 相機+前方 VGA 視訊鏡頭。
不過,Nexus S 則具備了 LED 閃燈,另外更重要的則是加入了 NFC (Near Field Communication) 能力,將可支援像是悠遊卡之類的非接觸感應功能。
Nexus S 預計在 12/16 之後於美國 Best Buy 行動產品店面上市,12/20 則會在英國上市。

attachments/201012/8456892671.jpg

Nexus S 也將是市面上第一款 Android 2.3 手機,Google 也在今日釋出了 Gingerbread SDK/NDK。Android 2.3 改良了介面風格,也讓選單與設定更加方便使用。
此外,虛擬鍵盤也重新設計,並終於支援 multitouch 組合鍵的輸入方式,譬如可同時按著 shift 改變大小寫,也可利用持續按著鍵盤滑動來操作多層的選單。
此外還改進了 copy/paste 方式。Android 2.3 並改進電力管理讓電池續航力更強。

Google 也在 Android 2.3中引進了網路電話,只要有 SIP 帳號,便可輕易與其他 SIP 用戶透過網路電話聊天。
Android 2.3 其他的改進還有下載管理、遊戲功能強化等。
SDK 說明與下載網址如下: http://developer.android.com/sdk/android-2.3.html

從 PHP 4 移植到 PHP 5需要注意的事項

從 PHP 4 移植到 PHP 5需要注意的事項

向後不相容的改變

儘管大部分 PHP 4 的代碼應該不用修改就能運行,還是應該留意以下向後不相容的改變:

    *

      有了一些新關鍵字。
    *

      strrpos() 和 strripos() 如今使用整個字串作為 needle。
    *

      非法使用字串偏移量會導致 E_ERROR 而不是 E_WARNING。一個非法使用的例子:$str = 'abc'; unset($str[0]);.
    *

      array_merge() 被改成只接受陣列。若果傳遞入非陣列變量,對每個此類參數都會發出一條 E_WARNING 訊息。要小心因為你的代碼有可能瘋狂發出 E_WARNING。
    *

      PATH_TRANSLATED 伺服器變量在 Apache2 SAPI 中不再暗中設定,這和 PHP 4 中的情形相反,若果 Apache 沒產生此值則其被設為和 SCRIPT_FILENAME 伺服器變量一樣的值。此修改是為了遵守 CGI 規範。更多訊息見 bug #23610,並參考手冊中 $_SERVER['PATH_TRANSLATED'] 的說明。此問題也影響到 PHP >= 4.3.2 的版本。
    *

      Tokenizer 增加不再定義 T_ML_COMMENT 常量。若果把 error_reporting 設為 E_ALL,PHP 將產生一條訊息。儘管 T_ML_COMMENT 從來都沒用到過,還是在 PHP 4 中定義了。在 PHP 4 和 PHP 5 中 // 和 /* */ 都被解析為 T_COMMENT 常量。但是 PHPDoc 風格的注解 /** */,自 PHP 5 開始被 PHP 解析,被識別為 T_DOC_COMMENT。
    *

      若果 variables_order 內含「S」,$_SERVER 應該帶有 argc 和 argv 被產生。若果會員特別配製系統不建立 $_SERVER,那此變量當然就不存在了。改變的地方是不管 variables_order 怎麼設定,在 CLI 版本中 argc 和 argv 總是可用的。本來 CLI 版不是總會產生全局變量 $argc 和 $argv 的。
    *

      沒有屬性的對象不再被當成「empty」。
    *

      有些情況下類必須在使用前被定義。這僅在使用了一些 PHP 5 的新特性的時候發生。其它情況下行為都沒變。
    *

      get_class(),get_parent_class() 和 get_class_methods() 如今返回的類/方法名和定義時的名字一致(區分大小寫),對於依賴以前行為(類/方法名總是返回小寫的)的老腳本可能產生問題。一個可能的解決方法是在腳本中搜尋所有這些函數並使用 strtolower()。

      區分大小寫的改變也適用於魔術常量 __CLASS__,__METHOD__ 和 __FUNCTION__。其值都會嚴格按照定義時的名字返回(區分大小寫)。
    *

      ip2long() 在傳遞入一個非法 IP 作為參數時返回 FALSE,不再是 -1。
    *

      若果在包括檔案中定義有函數,則不管在 return() 之前還是之後都可以在主檔案中呼叫。若果檔案被包括兩次,PHP 5 會發出致命錯誤,因為函數已經被定義,而 PHP 4 不管這個。因此推薦使用 include_once() 而不要去檢查檔案是否已被包括以及在包括檔案中有條件返回。
    *

      include_once() 和 require_once() 在 Windows 下先將路徑規格化,因此包括 A.php 和 a.php 只會把檔案包括一次。

例子 B-1. strrpos() 和 strripos() 如今用整個字串作為 needle
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

例子 B-2. 沒有屬性的對象不再被當成「empty」
<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Will be executed
}
?>

例子 B-3. 有些情況下類必須在使用之前定義
<?php

//works with no errors:
$a = new a();
class a {
}


//throws an error:
$a = new b();

interface c{
}
class b implements c {
}

?>

[MySQL改善] -- 如何使用SQL Profiler 效能分析器

[MySQL改善] -- 如何使用SQL Profiler 效能分析器

mysql 的 sql 效能分析器主要用途是顯示 sql 執行的整個過程中各項資源的使用情況。分析器可以更好的展示出不良 SQL 的效能問題所在。
下面我們舉例介紹一下 MySQL SQL Profiler 的使用方法:

    * 首先,開啟 MySQL SQL Profiler


mysql> SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
| 0 |
+-------------+
1 row in set (0.00 sec)
mysql> SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
預設情況下 profiling 的值為 0 表示 MySQL SQL Profiler 處於 OFF 狀態,開啟 SQL 效能分析器後 profiling 的值為 1.


    * 通過 sql 效能分析器,我們來對照一下 下列語句前後 2 次執行過程的差異,對我們瞭解 sql 的詳細執行過程是非常有說明的。


mysql> create table t_engines select * from t_engines1;
Query OK, 57344 rows affected (0.10 sec)
Records: 57344 Duplicates: 0 Warnings: 0
mysql> select count(*) from t_engines;
+----------+
| count(*) |
+----------+
| 57344 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from t_engines;
+----------+
| count(*) |
+----------+
| 57344 |
+----------+
1 row in set (0.00 sec)
mysql> SHOW PROFILES;
+----------+------------+-------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------------------------+
| 26 | 0.10213775 | create table t_engines select * from t_engines1 |
| 27 | 0.00032775 | select count(*) from t_engines |
| 28 | 0.00003850 | select count(*) from t_engines |
+----------+------------+-------------------------------------------------+
15 rows in set (0.01 sec)
mysql> SHOW PROFILE FOR QUERY 27;
+--------------------------------+------------+
| Status | Duration |
+--------------------------------+------------+
| (initialization) | 0.00000425 |
| checking query cache for query | 0.00004050 |
| checking permissions | 0.00001050 |
| Opening tables | 0.00018250 |
| System lock | 0.00000450 |
| Table lock | 0.00001775 |
| init | 0.00001075 |
| optimizing | 0.00000550 |
| executing | 0.00002775 |
| end | 0.00000450 |
| query end | 0.00000325 |
| storing result in query cache | 0.00000400 |
| freeing items | 0.00000400 |
| closing tables | 0.00000500 |
| logging slow query | 0.00000300 |
+--------------------------------+------------+
15 rows in set (0.00 sec)
mysql> SHOW PROFILE FOR QUERY 28;
+-------------------------------------+------------+
| Status | Duration |
+-------------------------------------+------------+
| (initialization) | 0.00000350 |
| checking query cache for query | 0.00000750 |
| checking privileges on cached query | 0.00000500 |
| checking permissions | 0.00000525 |
| sending cached result to client | 0.00001275 |
| logging slow query | 0.00000450 |
+-------------------------------------+------------+
6 rows in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =27 ORDER BY SEQ;
+----------+
| DURATION |
+----------+
| 0.000326 |
+----------+
1 row in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =28 ORDER BY SEQ;
+----------+
| DURATION |
+----------+
| 0.000039 |
+----------+
1 row in set (0.00 sec)
mysql>
從上面的例子中我們可以清晰的看出 2 次執行 count 語句的差別, SHOW PROFILE FOR QUERY 27 展現的是第一次 count 統計的執行過程,包括了 Opening tables 、 Table lock 等操作 。而 SHOW PROFILE FOR QUERY 28 展示了第二次 count 統計的執行過程 , 第二次 count 直接從查詢快取中返回 count 統計結果,通過對照 2 次統計的總執行時間發現,快取讀的速度接近物理讀的 10 倍。通過使用 SQL 效能分析器可以說明我們對一些比較難以確定效能問題的 SQL 進行診斷,找出問題根源。
標籤: mysql

基本使用者管理以及基本安裝方法

基本使用者管理以及基本安裝方法

第一.線上使用者管理指令
        users

         #who

         #startx --:1 再啟用一個圖形介面

         #w

         #last      記錄登入完成訊息

         #lastb     記錄登入失敗訊息

         #lastlog   記錄每個帳號最後一次登入訊息

         #wall      用來廣播訊息
         #wall 「"hello everyone"

         #mesg      顯示現用的是否接受訊息

         #mesg  n   將現用的接受訊息狀態設定為不接受,管理員傳送的訊息除外

         #write     單播
         #write  username

第二。磁碟管理
         #df -h     顯示檔案系統

         #fdisk  -l 檢視磁碟分區

             ::fdisk /dev/sda      對/sda進行分區
                    a   toggle a bootable flag  <---把一個分區標識為可引導
                 b   edit bsd disklabel        <---編輯一個分區的標籤
                 c   toggle the dos compatibility flag
                 d   delete a partition <----刪除一個分區
                 l   list known partition types <-----列出分區類型
                   m   print this menu   <-------說明
                   n   add a new partition <------新增一個分區
                      o   create a new empty DOS partition table
                 p   print the partition table <------列印分區表
                 q   quit without saving changes <------不儲存離開
                 s   create a new empty Sun disklabel
                 t   change a partition's system id <-----改變一個分區的系統ID
                 u   change display/entry units
                 v   verify the partition table
                 w   write table to disk and exit <-----儲存分區表
                 x   extra functionality (experts only)
        
        #partprobe (生成裝置檔案)

        #mkfs.ext3  /dev/sda10 (格式化裝置檔案的檔案類型)
        #mkfs -t  vfat /dev/sda11 (fat32 fat16都歸為vfat)


                分區步驟:
                                1、fdisk /dev/sda
                                2、生成裝置檔案
                                partprobe
                                3、格式化新的分區
                                # mkfs.ext3  /dev/sda10
                                # mkfs -t vfat /dev/sda11
                                4、掛載格式化後的分區                                                                                                        臨時掛載:                                                                                                                        # mount -t ext3  /dev/sda10  /mnt/sda10
                                     # mount -t vfat /dev/sda11 /mnt/sda11
補充:
        mount -o loop,ro  /share/rhel-5.3.iso  /mnt
        mount -o ro -t iso9660 /dev/cdrom  /mnt
        mount --bind /etc/  /tmp/test

                                永久掛載:
#vim /etc/fstab


LABEL=/                 /                       ext3    defaults        1 1
LABEL=/df               /df                     ext3    defaults        1 2
LABEL=/home             /home                   ext3    defaults        1 2
LABEL=/usr              /usr                    ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda3         swap                    swap    defaults        0 0

要被掛載的分區         掛載的路徑              分區的類型 掛載選項  是否支援dump備份 是否支援磁碟檢驗

/dev/sda10                /mnt/sda10                ext3        defaults        0 0
/dev/sda11                /mnt/sda11                vfat        defaults,ro        0 0
/dev/sda12                swap                        swap        defaults        0 0
或是標簽形式
LABEL=/hello          /mnt/sda10              ext3    defaults        0 0


改標簽(支援ext2,ext3檔案系統)
    #e2label  /dev/sda2
     檢視分區sda2標簽
    #e2label /dev/sda5 /vmware
    變更sda5標簽名稱

交換分區的建立

        mkswap /dev/sda12  (mkswap -L SWAP-sda12  /dev/sda12)
        swapon /dev/sda12
        swapoff /dev/sda3

===============================================================================軟體包安裝
          軟體包的分類:
                          rpm <----red hat package management
                          rpm源程式碼包
                          c語系的源程式碼包<---於平台不關聯
                          二進位包<---直接運行就可以安裝
        rpm包
        光碟裡或是網路
        http://www.rpmfind.net/
        http://www.pbone.net/

        命名習慣:
        acl-2.2.47-4.fc11.i586.rpm
        acl-2.2.23-5.3.el4.src.rpm
        acl-2.2.49-4.fc13.src.rpm
        acl-2.2.49-2.fc12.ppc.rpm

rpm包的安裝
        例子1:虛擬機的安裝
        rpm -ivh VMware-workstation-6.0.2-59824.i386.rpm
         i 安裝
         v 顯示安裝進度
         h 校驗包

        例子2:
        rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm

        warning: heartbeat-2.1.3-3.el5.centos.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
        error: Failed dependencies:
         heartbeat-pils = 2.1.3-3.el5.centos is needed by heartbeat-2.1.3-3.el5.centos.i386
         heartbeat-stonith = 2.1.3-3.el5.centos is needed by heartbeat-2.1.3-3.el5.centos.i386
         libpils.so.1 is needed by heartbeat-2.1.3-3.el5.centos.i386
         libstonith.so.1 is needed by heartbeat-2.1.3-3.el5.centos.i386
        解決辦法:
        1、從際網路去下載這些包,如果提示的是某個檔案缺少,也可以通過專門的rpm包網站搜尋到
        2、進到光碟目錄去找軟體包
        3、如果報的是缺少某個檔案,就可以在一台已經安裝過這個軟體包的電腦上查詢這個檔案到底來自哪個rpm包
        [root@dns Server]# updatedb
        [root@dns Server]# locate libpils.so.1
        /usr/lib/libpils.so.1
        /usr/lib/libpils.so.1.0.0
        [root@dns Server]# rpm -qf /usr/lib/libpils.so.1
        heartbeat-pils-2.1.3-3.el5.centos

# rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
# rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
然後再安裝:
# rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm

              例子3:

        [root@bogon soft]# rpm -ivh xlockmore-5.18-2.2.el5.rf.i386.rpm
        warning: xlockmore-5.18-2.2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
        error: Failed dependencies:
         libXm.so.4 is needed by xlockmore-5.18-2.2.el5.rf.i386
        解決的思路:
        [root@dns Server]# ls | grep -i libXm
        [root@dns Server]# rpm -qlp libXmu-1.0.2-5.i386.rpm | grep -i libXm.so.4

        [root@dns Server]# ls | grep -i openmotif
        openmotif22-2.2.3-18.i386.rpm
        openmotif-2.3.1-2.el5.i386.rpm
        openmotif-devel-2.3.1-2.el5.i386.rpm
        [root@dns Server]# rpm -qlp openmotif22-2.2.3-18.i386.rpm | grep -i grep -i libXm.so.4
        grep: libXm.so.4: 沒有那個檔案或目錄
        [root@dns Server]# rpm -qlp openmotif22-2.2.3-18.i386.rpm | grep -i libXm.so.4
        [root@dns Server]# rpm -qlp openmotif-2.3.1-2.el5.i386.rpm | grep -i libXm.so.4
        /usr/lib/libXm.so.4
        /usr/lib/libXm.so.4.0.1
        

        [root@bogon Server]# rpm -ivh openmotif-2.3.1-2.el5.i386.rpm
        warning: ../openmotif-2.3.1-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
        error: Failed dependencies:
         libXp.so.6 is needed by openmotif-2.3.1-2.el5.i386

        [root@dns Server]# ls | grep -i libXp
        libXp-1.0.0-8.1.el5.i386.rpm
        libXp-devel-1.0.0-8.1.el5.i386.rpm
        libXpm-3.5.5-3.i386.rpm
        libXpm-devel-3.5.5-3.i386.rpm
        [root@dns Server]# rpm -qlp libXp-1.0.0-8.1.el5.i386.rpm | grep -i libXp.so.6
        /usr/lib/libXp.so.6
        /usr/lib/libXp.so.6.2.0


        rmp的常用指令:
                情景一:找某個檔案來自哪個包?
                rpm -qf /檔案的路徑

                     情景二:看一下我準備安裝的軟體包會釋放哪些檔案到哪個目錄?
                rpm -qlp xxx.rpm

                情景三:檢視某個軟體包是否安裝
                rpm -qa  | grep -i xxx_keyword
                或是
                rpm -q package_fullname

                情景四:檢視已經安裝了的軟體包釋放了什麼檔案
                rpm -ql soft_name
                
                卸載軟體包
                rpm -e 刪除


        rpm的其他指令:
        -i  安裝某個沒有安裝過軟體包,不管是舊版本還是新版本
        -U  安裝某個軟體包,但前系統必須已經安裝了比這個軟體包低版本的,如果原來沒有安裝過低版本,那麼就直接安裝新版本
        -F  強制安裝安裝包,不管原來安裝的軟體包的版本高低,都強制安裝。如果原來沒有安裝過類似的軟體,就不能安裝

        特殊參數:
        --nopre  不執行安裝前的腳本
        --nopost 不執行安裝後的腳本
        --force  強制安裝,一般來說解決檔案衝突
        --nodeps 忽略依賴關係 ,一般不要使用

        rpm源程式碼包編譯:

        # rpmbuild  --rebuild acl-2.2.47-2.fc9.src.rpm
        Wrote: /usr/src/redhat/RPMS/i386/acl-2.2.47-2.i386.rpm
        Wrote: /usr/src/redhat/RPMS/i386/libacl-2.2.47-2.i386.rpm
        Wrote: /usr/src/redhat/RPMS/i386/libacl-devel-2.2.47-2.i386.rpm
        Wrote: /usr/src/redhat/RPMS/i386/acl-debuginfo-2.2.47-2.i386.rpm

        安裝編譯好的軟體包:
        [root@bogon soft]# rpm -ivh /usr/src/redhat/RPMS/i386/acl-2.2.47-2.i386.rpm
        自動解決rpm包的依賴關係
        yum
        1、搭建yum源(軟體倉庫:分為本地,網路)
        file:///mnt/Server 本地資源
        ftp://10.1.1.20/Server 或 ftp://10.1.1.1/Server
        http://10.1.1.20/Server <---這裡伺服器沒有提供這種協定
                                                                
        2、編寫yum用戶端的配置檔
        [Server]
        name=Server
        baseurl=file:///mnt/Server  <---建議大家用永久路徑
        enabled=1
        gpgcheck=0

        [Cluster]
        name=Cluster
        baseurl=file:///mnt/Cluster
        enabled=1
        gpgcheck=0

        [ClusterStorage]
        name=ClusterStorage
        baseurl=file:///mnt/ClusterStorage
        enabled=1
        gpgcheck=0

          [VT]
        name=VT
        baseurl=file:///mnt/VT
        enabled=1
        gpgcheck=0

        yum clean all

        3、重整
        yum list

        4、使用

        yum install softname  

        yum install softname -y

        更新軟體清單
        yum clean all
        yum list
        yum grouplist

        搜尋軟體
        yum list | grep -i 關鍵字

        安組軟體分組:
        # yum groupinstall "Development Tools" -y

        卸載
        yum erase softname
        yum groupremove  groupname


安裝源程式碼包的步驟:

例子1:按裝ntfs

1、解壓到一般路徑
        

2、配置
        ./configure  <--產生Makefile

常見的編譯參數
        --prefix  指定軟體安裝路徑

3、編譯
        make <---根據前面的配置產生編譯參數檔案進行對源程式碼包編譯
4、安裝
        make install

使用方法:
        mount -t ntfs-3g /dev/sda1 /mnt/windows
or
        ntfs-3g /dev/sda1 /mnt/windows

        
安裝fuse
cd  /usr/src/fuse-xxxx
./configure
make
make install
modprobe fuse


例子2:
tar -xvf   xlockmore-5.29.1.tar.bz2 -C /usr/src
./configure --enable-allow-root --without-gtk2 --without-gtk
make
make install

[root@bogon ~]# which xlock
/usr/local/bin/xlock

資料庫管理-phpMyAdmin3.3.6多國語系(繁體)版

資料庫管理-phpMyAdmin3.3.6多國語系(繁體)版

phpMyAdmin是一個用PHP編寫的,可以通過際網路控制和操作MySQL。
通過phpMyAdmin可以完全對資料庫進行操作,例如建立、複製/刪除資料等等。
可以用來管理MySQL-server以及單一資料庫的PHP程式,對於不熟悉MySQL指令列指令的人來說,是很方便的管理工具。

資料庫管理-phpMyAdmin3.3.6多國語系(繁體)版

什麼是資料庫?資料庫是動態網站資料存放資料之所在,程式取得資料後寫入資料庫
當網頁需要顯現資料時,程式會呼叫資料庫資料而將數字.文字.圖片.連結出現於網頁頁面....
很多架站程式都需要使用到資料庫,像是五大購物車網站或WordPress部落格、Discuz討論區等等都是
使用者可利用phpmyadmin來建立MySQL資料庫。
建立好資料庫後,就可以安裝網站程式啦!

attachments/201009/1373833310.png


phpMyAdmin是一個用PHP編寫的,可以通過際網路控制和操作MySQL。
通過phpMyAdmin可以完全對資料庫進行操作,例如建立、複製/刪除資料等等。
可以用來管理MySQL-server以及單一資料庫的PHP程式
對於不熟悉MySQL指令列指令的人來說,是很方便的管理工具。

phpMyAdmin是一套以php寫成,針對MySQL資料庫系統的Web管理界面。
它可以很方便地以圖形化界面,來對MySQL資料庫內之資料做增刪的做動,更可以做資料庫本身的增刪管理。
另外附帶的好處是,您也可以籍著這個界面來學習SQL正確的語法。

很多架站程式都需要使用到資料庫,像是五大購物網站或WordPress部落格、Discuz討論區等等都是
不過一般使用者頂多利用phpmyadmin來建立MySQL資料庫。
但如果你是程式開發人員,建立資料庫是非常基礎的
更重要的要會個別新建資料庫內的結構、新增資料、看懂SQL語法,否則程式也無法開發下去了。
那如果是新手(或是沒有程式基礎)的網站及營者,那發生進階的技術問題該怎麼辦呢?
有【技術顧問諮詢】才有網站經營的技術後盾,而經營才能無後顧之憂
購買總教頭的密技基地課程享有:免費【技術顧問諮詢】服務
不然發生問題時你要問誰?網站經營你還在自己閉門造車嗎?那就錯啦!
還在網路上到處貼文問路人甲、路人乙嗎?那就太不牽強了!
要成功很簡單!就是問已經成功者(或花錢聘請專業人士當顧問)那顧問費可不是幾千元就能解決的喔!

資料庫管理-phpMyAdmin3.3.6多國語系(繁體)版下載網址:


http://por.tw/Downloads/phpMyAdmin-3.3.6.rar

標籤: phpMyAdmin
本PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地立志於收集各類PHP程式設計、MySQL資料庫及網頁設計技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!