❶ 編程訓練的四種能力
階段一:無意識,無能力
約翰是一個年輕的網站開發者。他以前是一個法律科的學生,但是他認為他的錢途不在這方面,所以他眼睛一轉,做了轉行的決定。他曾經幫他的朋友修過計算機,而且很成功,所以他認為這方面應該都很容易。
他很快找的了一些能夠讓他學習這些工作的地方(當然,都是靠近他家的地方)。六個月後,他開始聲稱自己是個網站專家了,他的簡歷上已經列舉了不少編程語言、應用程序,以及開發平台。
約翰,實際上,是一個冷酷的「拷貝/粘貼」者。 他以為能夠成功的顯示一個windows提示框,就表示對Javascript已經掌握了。
php? 簡單:他成功的安裝了Wordpress。 linux? 他從LiveCD上啟動了Ubuntu系統,他能夠搭建一個Apache負載均衡集群伺服器。 他的意識告訴他,他已經無所不知了。
問題就在於,約翰沒有意識到他可以學到更多的東西,所以他就簡單的停止學習了。他一直處在一個氣泡中,他經常訪問的在線論壇和郵件列表裡有很多人都非常客氣的告訴他,他的問題在於他膚淺的知識,但沒有人能捅破他的氣泡。 而且更悲哀的是,他在論壇里的能力值比你我加起來都高。約翰是無意識的無能力。
階段二:有意識的無能力
馬克是個數學老師。他在一個小鎮的大學里工作,他希望他的大學里能夠擁至少是五倍於現有數量的資料庫。 他知道在科技領域方面他的大學先對於其他研究機構落後很多,所以他決定自己動手去做這個工作。 他想建立一個在線平台,能在社團里共享他們的課程。
馬克是天生的邏輯型的思維。 他知道為了實現這個東西,他需要去做研究,搜集信息。他的搜索從維基網路開始,但最終在大量的瀏覽閱讀後他明白其實世界上已經有不少團隊對他的這種問題提供了開源方案。
他從那些工程中選擇了一個最能滿足他的需求的一個。 他開始著手閱讀在它的網站上找到的文檔和手冊,最後他把源程序下載下來。他的興奮狀態逐步退去,因為他看到了』資料庫連接錯誤』。他試了又試,不至三次的檢查他的每一步驟,還是不成功。馬克並不惱怒,因為他知道自己在這個領域並不是專家。
他開始轉向它郵件列表平台,在裡面,他用他所知道的(其實很少)最精確的語言描述了他的問題。他提醒每個人,他並不清楚他所做的這個東西,所以他希望能得到更多的文檔去閱讀,或人們給他提供這方面的提示。 他不需要等待很久就能得到解決方案,因為他採取了正確的方法。馬克是有意識的無能力。
階段三:有意識的有能力
自從阿德拿起他的第一本HTML書至今已經有兩年了。很顯然這是一條不歸路,對於阿德來說,每天思考的問題都是如何去提高自己喜愛的這個專業。
在他拿起第一本書幾個月後他得到了他第一個作為自由工作者的身份開發一個網站的工作,他投入了極大的熱情,不管這個工作的薪酬有多低,這個工作有多基礎 (甚至是對於他的水平)。
他深信一點:最好的學習的方式就是堅持不懈,屢戰屢敗,屢敗屢戰。 他經常去研究如何以最好的方式執行一個功能,因為他知道最好的代碼不是第一次就能獲得的。 他必須去優化代碼,他一遍又一遍的審查。 他一次又一次的修正。
之 後,他又給他自己寫了一個大概有30到40行的程序。 幾天之後,他忍不住感到失望,因為他在上網時發現了一段更省事的、而且更簡潔的程序,代碼行只有他的一半。
他渴望知道何時他才能輕松的寫出如此高質量的代碼。 然而,經過一段思考之後,他開始分析他自己的代碼。 他知道必須去重寫這些代碼,否則睡覺都不會安穩。 他不願意去拷貝粘貼它們。
阿德正走在成為一個優秀的專家的路上,但他不會給自己加上這個稱號,他願意去等。阿德是有意識的有能力。
階段四:無意識的有能力
這是編程水平的終極階段。 它不僅僅是知識積累的結果,更是一系列的邏輯規則在數年裡慢慢地刻印到一個人的腦海里的結果。
我們面對這樣的一個人時不得不由衷的佩服他對如此復雜的問題能更如此輕松的應對。 這種編程者看起來就像是能夠嗅出問題的解決方案,而不是思考出的。
優化的編寫,可維護的、安全性的程序,應用各種設計模式,使用正確的開發工具組合,這些會自動的在他的工作中體現出來。 這種人能夠輕松的使用多種語言在多種操作系統平台上工作。
❷ 代碼是thinkphp框架,搭建環境是mysql、php、apapche。現在想做負載均衡,需要怎麼做
以前用PHP做過一個很蹩腳的網站,為什麼這么說呢,因為寫的全是死代碼。做完以後覺得實在是累,前端要div+css,js 後端要php,MySQL,這么多東西要弄,十分頭疼。所以,在接到做網站的任務後,我第一時間想到一定要使用開發框架去做,絕不能跟以前一樣那麼累了。
我選擇的是PHP的ThinkPHP框架。說實話,真的蠻不錯的。瞬間覺得Web開發還是蠻有效率的。
超級鏈接:ThinkPHP中文網
按照套路,首先貼一下實驗環境:
1. WAMP(集成的那種,最Easy的幾乎不需要配置)
2. ZendStudio7.2(中文網址,裡面提供下載,在線注冊機以及使用教程)
3. ThinkPHP框架+網路UEditor編輯器插件
4. Win7-64bit操作系統
5. 瀏覽器(火狐,IE,Chrome),外加火狐FireBug插件用於調試以及偷樣式
❸ nginx實現負載均衡那麼每個nginx伺服器都要有php代碼嗎
lnmp架構
直接放nginx的web文件夾中,通過cgi解析php返回給nginx,如果是lnmpa架構,就是多了個apache,nginx負責分發請求,然後apache調用php_mod解析php,最後返回給nginx
如果是負載均衡,nginx分發請求,每個請求可能請求不同的伺服器,但是每個伺服器的網站程序應該是一致的,並且每個伺服器上都部署了php環境和程序,然後返回給請求者nginx輸出頁面。
❹ linux php mysql 集群,負載均衡
這些問題,要具體深入分析,知道問題才能解決問題
❺ php負載均衡 下面怎麼得到真實ip
1、打開文件:/etc/httpd/conf/httd.conf。
2、在文件中查找:」CustomLog」,找到如下配置塊: 查看到當前使用的LogFormat為」combined」 (如果實際啟用的為其他日誌格式,替換相應的格式定義即可)。
#
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
CustomLog logs/access_log combined
3、在文件中查找:」LogFormat」,找到如下配置塊(combined格式定義):
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
將其修改為:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Forwarded-For}i\" " combined
4、保存並關閉文件/etc/httpd/conf/httd.conf。
5、重啟Apache服務。
你試試吧,我也要努力在後盾人學習,一起加油吧@(*^ェ^)@
❻ php負載均衡怎麼做
術業有專攻。
負載均衡不是PHP的專長,當然也不是說不能做,只不過做出來看起來有點另類。
相反用比較知名的Nginx反向代理或者是使用LVS做起來就想過要好很多。
❼ NGINX+PHP好,還是NGINX+APACHE+PHP好
NGINX+APACHE+PHP會更好,因為可以充分利用NGINX的「反向代理」技術。將靜態文件由NGINX處理,動態文件(PHP)由APACHE處理,這是最高效的處理方式。
但是,一般網站都不需要這么做,因為沒有高並發的情況下,這樣做並不能體現非常大的優勢。
如果是商城,比較注重速度的,就使用NGINX+PHP;如果是政府網站等,比較注重穩定性的,就使用APACHE+PHP。
當然,如果不嫌麻煩,完全可以搭建NGINX+APACHE+PHP的環境。
❽ php負載均衡,伺服器上傳圖片
又看到你了。
你理解錯了吧,訪問B伺服器不一定上傳就得上傳到B伺服器,圖片伺服器應該有自己的域名(img.xxx.com)用戶訪問的是B伺服器做好的網站,但是使用上傳時提交到的是A的域名。
❾ PHP實現負載均衡session共享redis緩存操作示例
本文實例講述了PHP實現負載均衡session共享redis緩存操作。分享給大家供大家參考,具體如下:
1、首先先創建html表單頁面
<meta
chatset='utf-8'>
<center>
<form
action="se.php"
method="post">
<table>
<tr>
<td>帳號:</td>
<td><input
type="text"
name="username"></td>
</tr>
<tr>
<td>密碼:</td>
<td><input
type="password"
name="pwd"></td>
</tr>
<tr>
<td></td>
<td><input
type="submit"
value="登錄"></td>
</tr>
</table>
</form>
</center>
2、創建接受表單的文件
<?php
header('content-type:text/html;charset=utf-8');
set_time_limit(10);
ini_set("session.save_handler",'redis');//開啟php.ini中的redis配置
ini_set("session.save_path","tcp://192.168.1.70:6379");//第一台伺服器的redis
session_start();//開啟session
$username
=
$_POST['username'];
$_SESSION['username']
=
$username;
echo
"<script>alert('登錄成功!');location.href='from.php'</script>";//登錄成功後跳轉到歡迎登錄頁面
?>
3、跳轉到from.php去判斷第一台伺服器的redis中的session是否存到了本台伺服器的session中
<?php
header('content-type:text/html;charset=utf-8');
set_time_limit(10);
ini_set("session.save_handler",'redis');//開啟php.ini中的redis配置
ini_set("session.save_path","tcp://192.168.1.70:6379");//第一台伺服器的redis
session_start();//開啟session
$username
=
isset($_SESSION['username'])
?
$_SESSION['username']
:
'';//判斷當前是否存在session
//$id
=
$_SESSION['PHPSESSID'];
//echo
$id;
if(empty($username)){
echo
"<script>alert('請重新登錄!');location.href='index.php'</script>";
}else{
echo
"歡迎".$username."登錄";
}
?>
這樣就簡單了實現了redis
session共享的功能,要測試的話需要兩台伺服器,建議使用linux
比較好用
linux上安裝redis可參考《Linux平台安裝redis及redis擴展的方法》
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php緩存技術總結》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》、《PHP錯誤與異常處理方法總結》、《php面向對象程序設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:Nginx
安裝筆記(含PHP支持、虛擬主機、反向代理負載均衡)PHP開發負載均衡指南PHP實現負載均衡下的session共用功能Thinkphp結合AJAX長輪詢實現PC與APP推送詳解PHP經典演算法集錦【經典收藏】php
分庫分表hash演算法php的hash演算法介紹PHP中對各種加密演算法、Hash演算法的速度測試對比代碼PHP實現的一致性Hash演算法詳解【分布式演算法】PHP實現負載均衡的加權輪詢方法分析
❿ linux如何打建Mysql+Php+Apche集群,要求熱備,負載均衡。
Red Hat 指著這套集群、熱備技術掙錢呢……
自己作貌似比較難。
不過我也沒做過,實話是連想都不想。