❶ 编程训练的四种能力
阶段一:无意识,无能力
约翰是一个年轻的网站开发者。他以前是一个法律科的学生,但是他认为他的钱途不在这方面,所以他眼睛一转,做了转行的决定。他曾经帮他的朋友修过计算机,而且很成功,所以他认为这方面应该都很容易。
他很快找的了一些能够让他学习这些工作的地方(当然,都是靠近他家的地方)。六个月后,他开始声称自己是个网站专家了,他的简历上已经列举了不少编程语言、应用程序,以及开发平台。
约翰,实际上,是一个冷酷的“拷贝/粘贴”者。 他以为能够成功的显示一个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 指着这套集群、热备技术挣钱呢……
自己作貌似比较难。
不过我也没做过,实话是连想都不想。