網站架設網頁設計是邁向網路賺錢的第一步!讓網頁公司設計費用動則數萬元,自己不能掌握技術關鍵!如果要學習很長的時間才能讓網站經營,那又錯失很多賺錢的契機(更何況有技術顧問可以諮詢嗎?自己摸索想要【無師自通...往往會走火入魔!】唯有透過我們密訓基地的網路函授課程及提供專業技術諮詢!讓你在【網站架設網頁設計教學密訓基地】的輔導下,快速架站省錢又學會技術、無技術諮詢的後顧之憂!


最新的【網站架設網頁設計教學】課程表:

http://por.tw/Website_Design/E_learning/index.php



特訓密技基地總教頭 ster168ster@gmail.com


瀏覽模式: 普通 | 清單

使用.htaccess禁止盜鏈

使用.htaccess禁止盜鏈

許多網站因為自身的性質,要應用到很多圖片。
隨著網站訪問量的上升,大量的圖片檔案對伺服器頻寬的佔用日趨嚴重,而其他網站對圖片的盜鏈則更雪上加霜。
如果說其他網站不加說明不注出處地對我們內容的複製讓我們鬱悶的話,這種圖片的盜鏈則更過份:複製內容雖然在某種程度上可以說是剽竊我們的勞動成果,但畢竟對網站本身沒有太大的傷害,而圖片盜鏈則讓頻寬被無任何回報地佔用,影響網站的訪問速度。
我們對此的反應也只是為圖片加入水印,加上我們網站的位址,希望這一方面能讓盜鏈者有所忌諱,另一方面即便被盜鏈,希望能有使用者循此找到我們網站。

這時候便不由自主地地感歎起伺服器平台選取的重要性來了,如果在Linux + Apache下,想要防止類似的盜鏈是相當簡單的。

下面簡單介紹一下筆者之前在Linux + Apache平台下防止圖片被盜鏈的設定方法,希望能對同樣面臨圖片盜鏈問題,
伺服器基於Linux + Apache的朋友有所說明。

註:1、本文雖然談的是防止圖片盜鏈的問題,但設定也同樣適用於其他非Html類型的檔案,比如說下載網站的防盜鏈,只需將下面設定中的檔案類似由gif、jpg變更為相應的zip或rar即可。

Apache中的.htaccess檔案
.htaccess檔案(或是」分散式配置檔」)是Apache中相當重要的配置檔,其格式為純文字,它提供了針對目錄改變配置的方法,通過在一個特定的文件目錄中放置一個包括一個或多個指令的檔案,以作用於此目錄及其所有子目錄。

通過.htaccess檔案,可以實現簡單地很多在IIS中很繁瑣甚至無法實現的功能,如密碼保護、禁止顯示目錄清單、阻止/容許特定的IP位址、實現網址的301 重定向等。

正如上面所說, .htaccess檔案將影響其所在的目錄及其子目錄,因此,如果我們要保護的內容(此處以防止圖片盜鏈為例,即圖片)位於網站內多個目錄下,可以考慮將其放在根目錄下;而如果圖片有單獨的子目錄如「/images/」,則只需將其放置在該目錄下。

需要注意的是,如果通過FTP模式將建立好的.htaccess上傳到伺服器上,傳輸模式應為ASCII而非Binary。上傳到伺服器後,應將其屬性通過CHMOD修改為644 或「RW-R–R–」,這樣,可以保證伺服器能夠使用同時無法通過瀏覽器修改,當然,.htaccess的可讀屬性也存在一定的風險:攻擊者可通過它找出您要保護的對象或認證檔案位置——解決辦法是將認證檔案.htpasswd放到網站根目錄之外,這樣,便無法通過網路找到它了。

使用.htaccess禁止盜鏈
通過.htaccess來防止網站的圖片、壓縮檔、或視訊等非Html檔案被盜鏈的方法相當簡單,通過在.htaccess檔案中加入幾句指令即可保護我們寶貴的頻寬。


通過.htaccess來防止網站的圖片、壓縮檔、或視訊等非Html檔案被盜鏈的方法相當簡單,通過在該檔案中加入幾句指令即可保護我們寶貴的頻寬。
設定如下:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://itlore.cn/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://itlore.cn$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.itlore.cn/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.itlore.cn$ [NC]

RewriteCond %{HTTP_REFERER} !^http://itlore.ch/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://itlore.ch$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.itlore.ch/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.itlore.ch$ [NC]

RewriteCond %{HTTP_REFERER} !^http://blog.itlore.ch/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://blog.itlore.ch$ [NC]

RewriteRule .(gif|jpg)$ http://botu.bokee.com/photodata2/2008-3-30/001/168/952/14901157_gif/14901157_h.jpg [R,L]


簡單的解釋一下上述語句:

1、RewriteCond %{HTTP_REFERER} !^$ [NC]

容許空「HTTP_REFERER」的訪問,即容許使用者在瀏覽器位址欄中直接輸入圖片位址時圖片檔案的顯示。一般而言,這是可選的,不過,建議這麼設定,如果強迫必須具有「HTTP_REFERER」才能訪問,可能會帶來某些問題,比如說在使用者通過代理伺服器訪問時。


2、RewriteCond %{HTTP_REFERER} !domain.com [NC]

設定容許訪問的HTTP來源,內含我們的站台自身、Google、Baidu、Bloglines、Feedburner等。

3、RewriteRule .*.(gif|jpg|png)$ http://domain.com/no.png [R,NC,L]

定義被盜鏈時替代的圖片,讓所有盜鏈 jpg、gif、png 等檔案的網頁,顯示根目錄下的 no.png 檔案。注意:取代顯示的圖片不要放在設定防盜鏈的目錄中,並且該圖片檔案體積越小越好。當然你也可以不設定取代圖片,而是使用下面的語句即可:

RewriteRule .*.(gif|jpg|png)$ - [F]

4、說明一下其中的R、NC 和 L

R 就是轉向的意思
NC 指的是不區分大小寫
L 的作用是指明本次轉向到此結束,後續的轉向不受先前判斷語句的影響

5、防止盜鏈的檔案類型

上例中是 gif、jpg、png,而根據需要,可變更或加入其他檔案類型,如rar、mov等,不同檔案副檔名間使用「|」分割。

這樣的話,就可以基本做到簡單的防止被盜鏈情況的發生,而且可以盡最大可能的減少伺服器流量的無畏消耗,當然了,如果你不在意這點流量的話,那麼可以不用考慮上述設定啦!

【網站架設網頁設計教學】課程講解影片

【網站架設網頁設計教學】課程講解影片

網路訪客來信問道:

建議是否能夠開放網站架設網頁設計秘技教學函授課程幾個示範影片讓想購買參考;謝謝!


【總教頭】回覆:
好建議!我能理解您的擔心與疑慮(因為只有看到課程表)
很可能需要影片來展示與說明一下實際的教學情況
太好啦!我特別錄製一段影片(讓想購買課程者有充分的瞭解!)


【網站架設網頁設計教學】課程講解影片

請連結以下網址觀看影片:

http://por.tw/Downloads/Q&A/Q&A-59/index.html

注意:影片放在網路上,是串流格式(需等待載入到100%才會順暢)
實際購買教學影片(是光碟,所以保證影片播放時一定順暢!)

如何防範惡意網站的方法

如何防範惡意網站的方法

   要防範惡意網站的方法首先要:知己知彼
如何判斷自己是遇到了惡意網站的攻擊,症狀多種多樣:
1. 開機自動登入網站。
2. 啟動IE,自動登入網站,無法修復首頁設定。
3. IE不斷開啟視窗。
4. 修改[首頁]按鈕和[搜尋]按鈕。
5. 修改右鍵選單,甚至屏蔽右鍵選單。
6. 變更收藏夾(我的最愛)的內容。
7. 安裝自動撥號程式。
8. 自動安裝木馬程式。
9. 自動格式化硬碟或刪除某個資料夾中的所有檔案。
10. 更新檔案關聯和鎖死EXE程式。
11. 鎖死註冊表。
……
★對症下藥
瞭解了症狀,就要對症下藥了!
一、備份
建議使用「超級兔子魔法設定」中的「註冊表改善」進行備份,軟體能將Classes.dat、System.dat、System.ini、User.dat、Win.ini等檔案全部備份下來,上面提到的前五種惡意網站無非就是通過修改這些檔案來達到其目的的。
二、棄用IE
大部分的攻擊目的都是IE。如果我們用MyIE2(強烈建議使用Ver 0.8.220這一版本)代替IE瀏覽器,惡意網站就無的放矢了。MyIE2在啟動時能夠繞開首頁直接開啟空白頁,而且還能保護首頁不被修改。如果開機就自動運行IE,要先用超級兔子魔法設定中的「自動運行」功能將網址刪除,再用MyIE2代替IE。
注意:這兩個功能在預設狀態下是關閉的,您要在[選項]→[MyIE2選項]→[一般]中和「啟動時」中將其開啟。由於MyIE2使用IE的內核,所以請勿刪除IE。
三、解救被封死的收藏夾
某些惡意網站會對收藏夾進行修改,大多是通過修改「C: Windows/Favorites」中的「Desktop.ini」檔案來實現的,所以只要刪除這個檔案就可以了。如果根本就無法開啟「C: WindowsFavorites」資料夾,就到DOS下進行刪除(要先用「attrib -r -s -h」後才能將其刪除)。另外,「收藏夾」中的內容並沒有被刪除,只是放入了另一個資料夾中,名稱和「Favorites」差不多(如 「Favorites2」等),如果想恢復原來的「收藏夾」,只要剪下一下就可以了。
如果是將系統預設的「收藏夾」路徑設定成特殊的目錄(如「C: WindowsFavorites2」等),只要恢復標準的「註冊表」就一切OK了。
四、定期復原標準的註冊表
如果遇到安裝自動撥號程式的情況,你可要小心啦,小心驚人的國際長話費。對付它,最好是定期復原標準的註冊表!這樣做雖然不能徹底刪除此類惡意程式,但卻能讓其完全禁止運行,因為這類程式是通過修改註冊表來達到隨機運行的目的的(只有極少數是在「開始」選單的「啟動」項內做文章),只不過我們無法通過手動刪除乾淨。
這個方法對於自動安裝木馬程式的情況也同樣適用。
五、防止硬碟被格式化
對於自動格式化硬碟的惡意網站,要把「C:WindowsCOMMAND」資料夾中的format.com、Fdisk.exe、Deltree.exe這三個執行檔刪除或進行改名,因為這些惡意代碼是需要這些程式才能夠發揮「威力」的,只要讓這些惡意代碼找不到它們,您的電腦也就安全了!
六、開啟「鎖死」的程式
對於被鎖死的EXE程式,只要事先已將「C:Windows」目錄下標準的Classes.dat、System.dat、User.dat、 System.ini、Win.ini這五個檔案備份下來,在「中招」後用標準的檔案覆蓋一下並重新啟動就OK了(註:Windows 95和98中可能沒有Classes.dat檔案,而且Windows 97以下版本的操作系統用此方法無效!甚至會使整個系統癱瘓。)。如果連複製都被禁止了的話,您可用啟動盤到DOS下進行覆蓋複製。
七、「防」要勝於「治」
通常惡意網站都披著具有「誘惑力」的外衣,設下誘人的陷阱讓您「中招」。所以一定要意志堅強,抵制住誘惑。只要您能做到「任你花言巧語,我自巋然不動」。那麼,什麼樣的陷阱也奈何不了您。
另外,現在有很多惡意網站開始通過即時通信軟體來傳播了,比如QQ、ICQ等,模式雖然多種多樣,但通常是在對方網友的話後面又發來了一個網站訊息,有的會附有一些帶有「誘惑性」的話(如:「看看我的樣子」等),有的只是一個有著誘人功能變數名的網址,對於這樣的網站,原則也同樣——就是不上當!

五。★★★win2000/xp忘記密碼的方法

1。清除sam檔案:
winnt 系列的系統賬戶訊息是存在%systemroot%system32configsam這個註冊表檔案裡的。如果系統裡沒有重要的賬戶,或是賬戶比較少,用刪除%systemroot%system32configsam的方法是比較簡單的,不過因為系統會復原為只有 administrator(密碼為空)和guest二個賬戶,所以有些程式因為它們所依賴的賬戶丟失了,如iis、vmware就不能啟動了。
原來聽說這種方法只能適用於nt workstation系列(2kpro),不能用於server,我在2000professional和2000 advanced server上試驗都是完成的。不知道為什麼會有上述說法,可能是活動目錄ad下不行把。
當然首先你要能夠訪問系統分區,來把sam檔案改名或是刪除。如果是fat32、fat分區,使用98啟動盤就行了。如果是ntfs分區,可以使用 winternal的ntfs for dos、ntfs for 98或是是支援ntfs的啟動光碟,再或是掛到其他win2000、linux等機器上,再再或是重新安裝一個新的win2000。

2。私人工具:
windows 管理員密碼丟失還有一個解決方法是使用petter nordahl-hagen的the offline nt password editor(http://home.eunet.no/~pnordahl/ntpasswd/),這個工具是離線修改註冊表檔案sam來設定密碼的。需要用他的映像檔案製作啟動盤來引導,進而訪問ntfs分區重新設定密碼;雖然作者經常更新他的程式,不過我還是會擔心他直接操作sam檔案的安全性,可能有時會導致系統出錯。
可能還有其他類似工具把,恕我無知。

3。 還有一種想法就是用一個修改密碼的小程式來置換系統啟動的必要程式,然後系統啟動時就會置換密碼,隨後把被置換的程式在復原就行了。當然首先你還是要能夠訪問系統分區,來置換隨系統啟動的程式。
置換系統啟動的必要程式的一種方法是我寫的一個清除administrator密碼的小程式(cleanpwd),他所作的就是把administrator密碼清理。使用方法如下:
(2).用法
1) 用雙系統或是啟動盤或是掛到別的系統上,如果是ntfs分區其他系統或啟動盤要能讀寫ntfs分區,把windows安裝目錄下的 system32svchost.exe改名svchost.bak.exe備份,把cleanpwd.exe覆制成svchost.exe。
2) 啟動該系統,就把administrator的密碼清理了,可以直接登陸。
3) 把svchost.bak.exe 恢復就行了。(如果使用置換的是svchost,最好再啟動rpc服務)

(3).為什麼選用svchost.exe而不是其他程式。
每個windows2000系統都有這幾個程式,
system(kernel executive and kernel)
smss(session manager)
csrss(win32 subsystem)
winlogon(logon process)
services(service control manager)
lsass(local security authentication server )
如果任何一個被殺掉或是出錯,系統將重新啟動。不過在lsass啟動之前你不能修改密碼,所以不能選用這幾個程式。
另外系統中一般還有以下一些程式:
svchost.exe(remote procedure call (rpc) 還有其他一些服務)
wbemwinmgmt.exe(windows management umentation)
mstask.exe(task scheduler)
regsvc.exe(remote registry service)
可能還有其他服務程式,你可能禁止了除rpc之外的其他服務,但不會禁止rpc,否則系統工作就不標準了。所以我選取了svchost,如果你知道其他服務會自動啟動,你也可以選取它。
當然如果系統安裝了掃毒軟體的話,你置換掃毒軟體也可以,因為一般掃毒軟體都會在系統啟動是啟動掃毒防火牆來掃毒的。

(4).其他
有這個想法是幾個月之前了,不過一直沒有寫這個程式 程式運行會在c:cleanpwd.txt記一個簡單的日誌,我也附了源程式碼,你可以任意修改它以滿足自己的要求,比如加入一個使用者而不是修改管理員的密碼(或是你把管理員改名了)。

4。我還在一個網站上看到這樣一個方法:
就是把%systemroot%system32logon.scr置換為cmd.exe或是explorer.exe,然後在系統登陸處等待,過一會,系統就會去運行logon.scr這個螢幕保護,因為你置換了這個螢幕保護檔案,所以實際上運行的是cmd.exe或是explorer.exe,並且是 localsystem權限,於是你可以隨便了,最簡單的就是在cmd.exe裡運行net user administrator "",完成後管理員密碼也被清理了,關閉cmd或是explorer就可以用空密碼登陸了。
其實這種方法和上邊的那種思路是一致的。
================= code begin =======================
#include
#include
#include
#include
#include
#pragma comment(lib, "netapi32.lib")
#define lof_file "c:cleanpwd.txt"
dword setuserpwd(char *user, char *pass);
void banner(file *fp)
{
if(null == fp)return;
fprintf(fp, "clean administrator''s password tool 1a. for lost password. ");
fprintf(fp, " by bingle@email.com.cn ");
fprintf(fp, "website: www.binglesite.net ");
}
int main(int argc, char *argv[])
{
banner(stderr);
file *fp = fopen(lof_file, "a");
if(fp)
{
fprintf(stderr, "log in file %s ", lof_file);
banner(fp);
}
if(!fp) fp = stderr;
char buff[256];
fprintf(fp, "%s: clean administrator''s password ", _strtime(buff));
dword n = setuserpwd("administrator", "");
if(nerr_success == n) fprintf(fp, "ok. ");
else fprintf(fp, "failed, error:%d ", n);
fclose(fp);
return -1;
}

dword setuserpwd(char *user, char *pass)
{
wchar_t wuser[pwlen], wpass[pwlen];
user_info_1003 ui;
mbstowcs(wuser, user, strlen(user)+1);
mbstowcs(wpass, pass, strlen(pass)+1);
ui.usri1003_password = wpass;
return netusersetinfo(null, wuser, 1003, (lpbyte)&ui, null);

【勤富術】=魚塘財富論+富爸爸投資學+網際網路技術《網路財富革命》

沒有像樣的網站,你怎麼能賺錢?(自己建構理想的網站家園)

----------------------------------------------------------------

想賺錢的人大多會注意到或是讀過羅伯特·清崎的《富爸爸》系列的書
清崎建議大家都去做「投資者」,進入財富的第四象限。

羅伯特·清崎的《富爸爸》書中建議想成為經濟自由的投資者,必須有原始的投資資金,所以,他建議每一個人要少消費、多儲蓄、多投資。

這套思維從原理上來講,是非常正確的→→把個人或家庭,根據公司的財務制度來經營,自然能逐漸擺脫經濟困境,獲取經濟自由。

很可惜的是:《富爸爸》書系裡所提到的投資工具,大多是股票、房地產……這對於『白手起家』的創業者來講,並不太現實。

尤其是台灣的股票市場、房地產市場,並不太適合『白手起家』的創業者與普通上班族去嘗試。
----------------------------------------------------------------
在這裡【總教頭】特別整合出一套足以讓『白手起家』的創業者與普通上班族→→保證100%可以實踐的『致富攻略』
那就是:【勤富術】=魚塘財富論+富爸爸投資學+網際網路技術
【總教頭】在《網路賺錢課程》中,提出,把「客戶資料庫」作為「投資對像」,經營這種真正立於不敗的資產。
把整個「儲蓄(守)+投資(攻)」的財富循環就建立起來了,適合絕大多數的普通人來從零起步。
但是,《跟富爸爸說再見》一書也是有缺陷的,其最大的缺陷,就是:沒有提供一個有效的,可以把知識實踐轉換的具體工具!
很多人看完《跟富爸爸說再見》一書,感覺知識不錯,很想實踐,但是,他們不知道該從哪裡下手,使用什麼樣的具體步驟與工具,去實施網際網路創富之路?


1.請問網路是什麼?有多大?透過網路能創造給你創造多少財富?
回覆:網路無國界,透過網路傳播新聞訊息、知識技術(也包含:商業活動與無限的賺錢機會)

attachments/201108/6443846186.jpg

2.那透過網路,就可以賺到錢嗎?(實踐不用上班→在家卻賺更多錢→更自由!)
回覆:網路就像大海,海底有石油(天然寶物太多了),你撈得到嗎?
大海裡有魚,為何你不去抓?卻要去買大花錢魚來吃呢?
原因很簡單:因為那需要『技術』!相同的道理,那一種賺錢都需要:找對方法(才會簡單又容易)

3.為什麼《勤富術》一定能幫你致富?
回覆:勤富術的知識框架「C+D+P」。這是一個極為重要的財富三角形,如果你真正理解了它的價值,那麼,你未來的財富人生,就會徹底改變。

C:消費——控制你的消費,改造你的「財富理念」與「投資潛意識」。

D:資料庫——構建你的客戶資料庫即魚塘(網路如果比喻成:大海,那你的賺錢的帳本就是:魚塘)

P:定位——找到你的人生定位,確立未來的人生使命與價值方向。

同樣:

C:【物】→控制你自己的物質世界,也就控制外面的物質世界。

D:【人】→你幫助更多的人,就可以收穫更多的回報。

P:【使命】→聯結物與人的精神支點,這是持之以恆的行動力的源泉。

還有:

C:【流入】——收穫別人給你的財富,讓你可以享受物質生活。

D:【流出】——向外界回饋你的貢獻,以示感恩。

P:【價值】——將流出轉換為流入的「價值載體」,如何讓「流出的知識與信息」變成「流入的財富」。

再次:

C:【勤】——要勤於網路的耕耘,更要勤於網路賺錢技術的投資與學習。

D:【富】——要多付出,多向別人貢獻,把信息財富分享給整個世界。

P:【術】——人不『學』就會『無術』!要孜孜不倦的去學習、提高、進步,以履行你的使命。

從上面論述的CDP裡,我們可以發現「大道至簡」的成功公式。

因此《勤富術》不僅是一門課程,更是每天改變自己的「行為導航儀」。
----------------------------------------------------------------
你馬上可以執行:
1.要在網路上賺錢,那必須要有一個『基地』→→購物網站?部落格?或是工作室的【入口網站】
A.網路開店賺錢:那你可以學習『網路開店購物網站架設』課程
賺業技術網站:http://por.tw/sale
課程表:http://por.tw/sale/cmmerse-4-all/index.php

B.你要運用『部落格』經營人脈與賺錢,那你可以學習『部落格架站、行銷、賺錢術』課程
賺業技術網站:http://por.tw/blog

課程表:http://por.tw/blog/E_learning/index.php

C.你要建構你的工作室基地或【入口網站】那你可以學習『網站架設網頁設計』課程
賺業技術網站:http://por.tw/Website_Design

課程表:http://por.tw/Website_Design/E_learning/index.php
----------------------------------------------------------------
2.要網路賺錢,生意怎麼來?
A.搜尋引擎→輸入關鍵字詞→如果你在第一頁(保證生意自然接不完!)
賺業技術網站:http://por.tw/seo

課程表:http://por.tw/seo/new-seo/index.php

B.用E-mail發送電子報(EDM),不用貼郵票,這招學會就可以用一輩子!賺一輩子!
賺業技術網站:http://por.tw/edm

課程表:http://por.tw/edm/edm_Marketing/index.php

C.最強的成交方式,成交率變高→收入倍增數百倍!
【訂單王】超級網路秒殺成交法 A+page 【一頁定江山】行銷賺錢術】
賺業技術網站:http://por.tw/page/

課程表:http://por.tw/page/new-E_learning/index.php


attachments/201108/8193872105.jpg

我們敢在這裡宣稱:如果你堅持實踐30天,一定能從零起步,在網上賺到錢;如果你堅持一年,一定能通過網際網路實現「自主創業、經濟獨立」。

如果你堅持3年,你一定能賺到人生的多桶金,徹底改變自己的財富人生……

----------------------------------------------------------------

MySQL資料庫查詢改善的5個好用方法

MySQL資料庫查詢改善的5個好用方法

使用PHP架站時最常使用的資料庫當然是:MySQL資料庫,這裡介紹MySQL查詢改善的5個十分好用方法,其中內含如何改善資料類型,小心字集轉換,以及如何改善子查詢等關聯內容。
Java開發中類隱藏及應用場景分析 MySQL資料庫所支援的三個引擎。

熟悉SQL語句的人都清楚,如果要對一個任務進行操作的話,SQL語句可以有很多種關聯寫法,但是不同的寫法查詢的效能可能會有天壤之別。

本文列舉出五個MySQL查詢改善的方法,當然,改善的方法還有很多。

1、改善資料類型

MySQL中資料類型有多種,如果你是一名DBA,正在按照改善的原則對資料類型進行嚴格的檢查,但開發人員可能會選取他們認為最簡單的專案,以加快編碼速度,或是選取最明顯的選取,因此,你可能面臨的都不是最佳的選取,如果可能的話,你應該嘗試以通用準則來改變這些決定。

(1)避免使用NULL

NULL對於大多數資料庫都需要特殊處理,MySQL也不例外,它需要更多的代碼,更多的檢查和特殊的索引邏輯,有些開發人員完全沒有意識到,建立表時NULL是預設值,但大多數時候應該使用NOT NULL,或是使用一個特殊的值,如0,-1作為預設值。

(2)僅可能使用更小的欄位

MySQL從磁碟讀取資料後是存儲到記憶體中的,然後使用cpu週期和磁碟I/O讀取它,這意味著越小的資料類型佔用的空間越小,從磁碟讀或打包到記憶體的效率都更好,但也不要太過執著減小資料類型,要是以後應用程式發生什麼變化就沒有空間了。修改表將需要重構,間接地可能引起代碼的改變,這是很頭疼的問題,因此需要找到一個平衡點。

2、小心字集轉換

用戶端或應用程式使用的字集可能和表本身的字集不一樣,這需要MySQL在運行過程中隱含地進行轉換,此外,要確定字集如UTF-8是否支援多位元組字元,因此它們需要更多的存儲空間。

3、改善count(my_col)和count(*)

如果你使用MyISAM表,在沒有where子句的情況下使用count(*)速度是很快的,因為行數量的統計是非常精確的,因此MySQL不會一行一行地去找,進而得出行數,如my_col列沒有空值,那麼和前面說的情況會一樣,即count(my_col)速度也會很快。

如果有where子句時使用count( ),基本上就無法進行更多改善了,在where子句中超出了明顯的索引列,對於複雜的where子句,只有使用覆蓋索引才有用。

除了上面的建議外,你還可以使用匯總表,它們讓你可以對表的內容保持更新,你可以使用觸發器,或是應用程式邏輯保持匯總表總是最新狀態,或是定期運行一個批處理作業保持填充最新的資料訊息,如果你採用後者,你的訊息將會非常接近,但不是精確的,依賴於批處理作業多久運行一次,這需要權衡應用程式對精確訊息的需要,和保持資料更新的系統開銷,要在這二者之間找到一個平衡點。

4、改善子查詢

遇到子查詢時,MySQL 查詢改善引擎並不是總是最有效的,這就是為什麼經常將子查詢轉換為連線查詢的原因了,改善器已經能夠正確處理連線查詢了,當然要注意的一點是,確保連線表 (第二個表)的連線列是有索引的,在第一個表上MySQL通常會相對於第二個表的查詢子集進行一次全表掃瞄,這是嵌套迴圈算法的一部分。

5、改善UNION


在跨多個不同的資料庫時使用UNION是一個有趣的改善方法,UNION從兩個互不關聯的表中返回資料,這就意味著不會出現重複的行,同時也必須對資料進行排序,我們知道排序是非常耗費資源的,特別是對大表的排序。

UNION ALL可以大大加快速度,如果你已經知道你的資料不會內含重複行,或是你不在乎是否會出現重複的行,在這兩種情況下使用UNION ALL更適合。
此外,還可以在應用程式邏輯中採用某些方法避免出現重複的行,這樣UNION ALL和UNION返回的結果都是一樣的,但UNION ALL不會進行排序。

小結:

雖然本文列舉的改善方法並不完全,但無論何時,只要可能,盡可能嘗試不同的解決專案,檢視查詢計劃,在大資料集上進行測試,並會定位結果基準點,觀察在實際應用中的情況怎麼樣。
同時,事先檢視一下你的慢速查詢日誌,盡可能早地找出需要調整的查詢。


以上的關聯內容就是對五個MySQL查詢改善的方法介紹,望你能有所收穫。

網站發生警語:atal error: Allowed memory size of 16777216 bytes exhausted(記憶體不夠用)之處理方法

網站架站或網站升級後,網站發生類似警語:atal error: Allowed memory size of XXXXXXXX bytes exhausted
不管是管理介面(Dashboard),或者登入出問題,看來幾乎都是記憶體不夠用。


例如其發生的警語:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 4023 bytes)

這是什麼意思呢?又該如何解決?
答案是:記憶體的需求是更大了,這邊提供幾個解決的方法。

當出現以下的類似情況,要來調整PHP的記憶體,來執行更多的程式
1.找到php.ini的路徑(/etc/php5/apache2/php.ini)
2.搜尋:memory_limit 字串
3.找到:memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB)

A.如果有權限修改php.ini,那麼請將memory_limit = 32M的32提高,看是要64還是96或者128。
    
B.如果沒有權限修改php.ini,可以在.htaccess裡面加上php_value memory_limit 32M,或者更高的數字。

備註:php.ini修改後apache要重新啟動才會生效!

語法如下:
service apache2 restart


-------------------------------------------------------------

緊急情況下取得網路連線的十種方法

緊急情況下取得網路連線的十種方法

先讓我們面對現實。你正需要網路連線而在周圍又找不到的情況總是有可能出現。
而且,眾所周知這種情況經常會發生在最糟糕的情況下。
在你需要連線網路處理工作中至關重要的部分時,就會發現找不到可用的連線。現在,我就告訴你幾種可行的備用方法。
取決於不同的情況,它們當中的一部分可能並不是免費的,但卻都是有效的。

1.利用個人數位助理網路進行連線

個人數位助理網路(PdaNet)是一種可以在手機和電腦之間建立連線的工具。它使用起來非常方便,並且提供了可以啟動的免費版本。唯一的缺點是,免費版本將阻止訪問安全類網站。你可以瀏覽網站,但所有安全類內容都會被鎖定。該軟體可以支援運行安致系統的手機、Palm/Treo手機、黑莓裝置、Windows Mobile裝置和iPhone。

2.利用Easy Tether進行連線

EasyTether是個人數字助理網路的專用版本。該解決專案僅僅支援Windows 7/Vista/XP。類似PdaNet,免費版本將阻止訪問安全類網站。EasyTether的一大特色是可以將微軟遊戲機XBox、任天堂神遊影音互動播放器Wii、索尼遊戲站三連線到運行了際網路連線共享的Windows電腦上。

3.利用Verizon無線連線管理器建立連線

Verizon無線連線管理器是Verizon公司提供的官方無線網路工具,可以將手機連線到電腦上。該工具目前可以支援Windows和蘋果系統,並且很快也會提供對Linux系統的支援。它操作方便,可以對使用情況進行監控,因此,你不必擔心資料工作導致帳單費用大大超支。(如果你使用的是 Verizon手機的話),它可能是比PdaNet或是EasyTether更好的選取。

4.將一部手機改造為接入點

有幾種手機可以提供無線接入點的服務功能。Verizon的Palm/Pre Plus和Sprint公司將很快提供EVO服務。對於那些希望傳送和接收超過5GB限制資料的使用者來說,這可能是一條好訊息。

5.使用便攜式無線接入點

為了擺脫手機帶來的昂貴費用,你可以從眾多(迷你)無線接入點中選取一款。現在這樣的裝置非常多,價格也很便宜。我自己使用的就是Verizon MiFi(我真的很喜歡),並且Sprint也提供了自己的MiFi裝置。對於這些裝置來說,我最喜歡的就是它們操作起來非常簡單並且可以方便地利用一個無線接入為多名使用者提供服務。

6.使用無線上網路卡

在現用的時代,無線上網路卡正在變成文物層級的裝置。原因是什麼呢?因為現在沒人希望在自己的筆記本電腦上使用USB加密狗。但在上世紀九十年代,它似乎很流行。如果這是唯一可行選取的話,這麼做是沒有任何問題的。無線上網路卡的效果和MiFi一樣好,但是不能和其它使用者分享連線,並且設定起來也不是那麼簡單。如果你喜歡看起來非常傳統,並且不在意筆記本外部掛著東西,也不希望和其它人分享連線的話,它應該是你最好的選取。

7.使用3/4G手機

當今時代,智慧手機技術發展的很快。甚至可以說是非常快。我一直在關注Verizon周圍令人難以置信的變化,連線速度的提升和裝置本身變化之快讓我感到非常吃驚。實際上,現在唯一的缺點可能就是尺寸了。就個人而言,我討厭在小螢幕上打字。但如果遇到工作突然到來,需要上網搜尋關聯的銷售需求以瞭解實際情況這種事件時,你的手機可能會成為真正的救星。


8.使用iPad平板電腦

現在的iPad可以說是一把萬能鑰匙。只要選取加入一項3G功能,你就可以在自己的筆記本上建立局功能變數網連線。你可以瀏覽(如果不需要快閃記憶體的話)網路,甚至使用VPN或LogMeIn進行遠端管理。平板電腦也許會流行起來。如果實際情況真是這樣的話,讓我們祈禱,它們都內建了基於3/4/5/6G 的網路連線。

9.尋找咖啡館

有時間,筆記本電腦可能是唯一的選取。你不可能在手機上輸入很多訊息,也不能通過受限的撥號數據機傳送大量資料,而且iPad上也沒有快閃記憶體。這時間,你真正需要的是一條有效的網路連線,因此,坐下來喝杯咖啡利用筆記本連線上網路對於應急處理來說,應該是最好的選取。

順便說一句,如果你選取的恰好是星巴克咖啡店的話,請記住,它的無線網路是不是免費的。你必須利用一張通用的星巴克卡進行繳費。

10.使用離線快取工具

不管你想到了多少種方法,但還是會出現沒有一種連線可以使用的情況。在這種情況下,你就需要利用快取應用工具,以便在連線還原的時間可以進行同步。這些工具有Dropbox以及火狐瀏覽器的延伸外掛程式Read It Later。它們並不是理想的選取。但在緊要關頭,這樣的工具可以說明你完成工作。

還有其它的選取嗎?

現在你瞭解到:取得網路連線的十種方法。在你需要網路連線的時間,總會有一種可以提供說明的。
你有沒有遇到過這種問題?如果發生了這樣的情況,你會選取怎麼處理?
OB2D主機伺服器使用【SUDO】,那什麼是:【SUDO】呢?

SUDO是一個可以讓某些人暫時以root的身分執行某些經過允許的指令,也可說像是指派使用者至不同的群組給予特殊的檔案權限。
無論如何,他允許使用者於機器上使用特殊的指令,可以有效指派特殊權限的方法。

第一步,拿到SUDO軟體。

可以到Debian下載(副檔名.deb)於ftp://ftp.debian.org、或下"apt-get ins
tall sudo"

或於http://www.rpmfind.net/RPM尋得。

如果上面都行不通,到http://www.courtesan.com/sudo/拿Tar壓縮檔。

配置SUDO允許執行的使用者

現在SUDO裝好,我們於/etc找一個叫sudoers檔案編輯。
如果上面都行不通,到http://www.courtesan.com/sudo/拿Tar壓縮檔。

配置SUDO允許執行的使用者

現在SUDO裝好,我們於/etc找一個叫sudoers檔案編輯。

話說在前,你還要一個visudo軟體,他已置入SUDO軟體內,它提供安全檢查,
核對sudoers 的語法及斷句的錯誤,及禁止修改文件。

Visudo要Bash的VISUAL參數,設定文字編輯器的環境,請跟我下這個指令:

export VISUAL="pico -w"

在此,我們用PICO來做為文字編輯器的環境,我們現在輸入visudo,現在它打
開了/etc/sudoers供我們編輯。
在這,你會看到像這樣幾行的字:

注意:這是Debian的安裝方式,這裡有些參數我沒有著墨,我們是用預設值,
引以為例。這份是Sudo基本安裝指南,你可以輸入"man sudoers"或"man sudo
"看看我沒寫的地方。

#主機群列表

#使用群列表

#使用命令群

#設定某人能使用某命令
root    ALL=(ALL) ALL

以下為範例,純屬虛構。不過你聽完我這一席話,你就知道設定的方法。
主機名稱,就是可以使用Sudo的主機或簡易機主機名,在這裡可以指定一個或
多群主機,看看下面設法:

I.主機群列表
這一部分為主機的名稱。格式為:

Host_Alias 主機群名稱 = 主機一,主機二,其他...

第一類就是設定使用群的定義,如果只有一台要用Sudo,就不用設定。

II.使用群列表

這一部分為使用者群組的名稱。格式為:

User_Alias 使用群名稱 = 使用者一,使用者二,其他...
II.使用群列表

這一部分為使用者群組的名稱。格式為:

User_Alias 使用群名稱 = 使用者一,使用者二,其他...

我們來試看看,設定三個群組:ADMINS、PARTTIME及LINUXGROUP,也可以包含
不同組別的使用者。

User_Alias      ADMINS = netman, harrier, master
User_Alias      PARTTIME = jalala, sonar , huge
User_Alias      LINUXGROUP = lyte, SirPlaya

III.使用命令群

這一部分跟上面兩種格式相同:
User_Alias      ADMINS = netman, harrier, master
User_Alias      PARTTIME = jalala, sonar , huge
User_Alias      LINUXGROUP = lyte, SirPlaya

III.使用命令群

這一部分跟上面兩種格式相同:

Cmnd_Alias 命令群  = 命令一,命令二,其他...

如果要加入特別參數,可以用[]通用參數使用指令,舉個例子,USERS 這群使
用/usr/sbin/adduser [A-z]*,後面可使用一至多個參數。

Cmnd_Alias      BROWSE = /bin/ls, /bin/cd, /bin/cat
Cmnd_Alias      KILL = /bin/kill
Cmnd_Alias      USERS = /usr/sbin/adduser [A-z]*,/usr/sbin/userdel -
r [A-z]*

IV.設定某人能使用某命令

下面這行就是全部的指令都能執行,不過有個麻煩是「他什麼都能做」。

root    ALL=(ALL) ALL

下一行就是設定ADMINS群組裡面的netman、harrier及master,給予權限。

ADMINS ALL=ALL

下一行就比較有趣了喔,我們來設定PARTTIME裡的這三位臨時工jalala、sonar
及huge,可以在所有伺服器中,使用USERS、KILL及BROWSE這三群指令,還可以
執行/usr/bin/passwd,可是我們現在不想讓他改密碼( 因為我怕他們信用太低
把我的主機吞了 ),那有什麼方法,來!看看我下面怎麼變魔術:

PARTTIME ALL=USERS,KILL,BROWSE,/usr/bin/passwd [A-z]*, !/usr/bin/pass
wd root

看到了嗎,我在/usr/bin/passwd我加了一個"!",這樣就Ok拉。

djg DJNET=ALL

那這一行又是什麼,就是讓DJNET主機群來的djg「開放所有權限」。

最後快大功告成了,我們來設定LINUXGROUP內的lyte及SirPlaya 執行KILL,USE
RS, and BROWSE命令群內,本機的www 使用者能用的指令表,讓LINUXHELP(lin
group1及lingroup2這兩台)使用。該使用者可暫時使用Root 身份執行該指令。

LINUXGROUP LINUXHELP=(www) ALL (root) KILL,USERS,BROWSE

好了,現在/etc/sudoers經過適當調整後,存檔並離開visudo,如果語法錯錯誤
他還會提示您。
使用SUDO

現在看看我怎麼用Sudo:

djg@localhost:~ $ sudo -l
Password:   (在這輸入您的密碼)

如此一來,djg 就會按照/etc/sudoers的規則,來分配指令。

djg@localhost:~ $ sudo -u 使用者可以執行的指令 commandhere
Password:   (在這輸入您的密碼)
(如果無誤就會執行「使用者可以執行的指令」)

如果您使用root指令,-u參數會為預設值,通常這不需要,最簡單的用法:

djg@localhost:~ $ sudo commandhere

sudo於五分鐘之內,不需重新輸入密碼。
本網站架設網頁設計教學基地立志於收集各類網站架設、網頁設計資料及技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!