这个其实牵扯到一个通信协议的问题,各语言都有自己的socket,thread的库,直接调用即可。但是这个通信协议就需要自己来完成了。既不能太简单,太简单了,明码传输,如果别人获知了这个接口,就很容易执行一些令人讨厌的 *** 作。也不能太复杂,太复杂了等于是给自己找麻烦,所以简单的数据包编解码的工作或者用token验证的方式是需要的。通信协议起码要两种,一种是传输命令执行的协议,一种是传输文件的协议。
二、跨语言的socket通信
为什么要跨语言,主控端和代理端通信,用什么语言开发其实无所谓。但是为了给自己省事,尽可能使用服务器上已经有了的默认语言,Ambari前期采用php+puppet的方式管理集群,这不是不可以,puppet自己解决了socket通信协议和文件传输的问题,可你需要为了puppet在每台服务器上都安装ruby。我是个有点服务器和代码洁癖的人。光是为了一个puppet就装个ruby,我觉得心里特对不起服务器的资源。所以我自己写了一个python的代理端。python是不管哪个linux系统在安装的时候就都会有了。然后主控端的通信,可以用python实现,也可以用php实现,但是考虑到对于更多的使用者来说,改php可能要比改tornado简单许多,所以就没用python开发。hadoop分支版本众多,发布出去,用户要自己修改成安装适合自己的hadoop发行版,就势必要改源码,会php的明显比会python的多。php里面的model封装了所有的 *** 作,而python只是个 *** 作代理人的角色而已。
所以也延伸出一个问题,什么语言用来做这种分布式管理系统的代理端比较合适,我自己觉得,也就是python比较合适了, *** 作系统自带,原生的package功能基本够用。用java和php也可以写agent,但是你势必在各节点预先就铺设好jre或者php运行环境。这就跟为什么用python和java写mapred的人最多是一样的。没人拦着你用nodejs写mapred,也可以写,就是你得在每个节点都装v8的解释引擎,不嫌麻烦完全可以这样干。原理参看map/reduce论文,不解释。perl也是 *** 作系统原生带的,但是perl的可维护性太差了,还是算了吧。
所以这就牵扯到一个跨语言的socket问题,理论上来说,这不存在什么问题。但这是理论上的,实际开发过程中确实存在问题,比如socket长连接,通信数据包在底层的封装方式不同。我没有使用xml-rpc的原因之一就是我听说php的xmlrpc跟其他语言的xmlrpc有不同的地方,需要修改才能用,我就没有用这种办法。最早是自己定义的 *** 作协议,这时就遇到了这些问题,所以后来直接采用了thrift方式。就基本不存在跨语言的socket通信问题了。
三、代理端执行结果的获取
无论命令还是文件是否在代理端执行成功,都需要获取到执行结果返回给中央端。所以这里也涉及一个读取节点上的stdout和stderr的问题。这个总体来说不是很难,都有现成的包。当然这个时候你需要的是阻塞执行,而不能搞异步回调。
还有个问题是,我要尽可能使用python默认就带的包,而尽量不让服务器去访问internet下载第三方的包。
还有代理端最重要的一点,就是python的版本兼容性。centos5用python 24,centos6用python 26,ubuntu基本默认都是27。所以一定要最大限度的保证语言的跨版本兼容性。一、使用Apache
≡ PHP 525 的安装 ≡
1、到其官方站点下载 php-525-Win32zip 并解压(据说:不要下载及使用它的Installer,这种方式虽然很自动化、很智能,但也存在很多方面的限制,因为不推荐。)到一个目录"D:\PHP\PHP"。
将PHP目录(D:\PHP\PHP)下的phpini-recommended复制到windows(有的系统是winnt目录)目录下,并改名为phpini,并找到extension_dir,将它修改为extension_dir="D:\PHP\PHP\ext"。其实使用phpini-dist也能达到同样的效果,但建议使用 phpini-recommended,因为此文件对默认设置作了性能和安全上的优化。
PHPini部分说明:
default_charset="gb2312" ,修改默认字符集,这里,如果前面有分号“;”,去掉这个分号;
register_globals=Off 改为 register_globals=On ,使传递全局变量有效;
extension=php_dbadll 如果前面有分号,取消分号,以下同;
extension=php_dbasedll
extension=php_gd2dll GD库做图,一般用于图形验证码;
extension=php_mysqldll 用于连接MYSQL数据库;
short_open_tag=On 支持<php…>和<…>,Off为仅支持<php…>
复制D:\PHP\PHP目录下的php5tsdll和libmysqldll(用于支持mysql)文件到windows的系统文件夹里,即:C:\windows\system32。
≡ Apache 228 的安装 ≡
1、到其官方站点下载 apache_228-win32-x86-no_sslmsi 并执行。
按3次Next按钮,安装程序要求输入你的Network Domain(网络域名)、Server Domain(服务器域名)和网站管理员的E-mail,有的话就如实填写,本说明介绍的是本地自建测试环境,所以随便一下,前两个填 localhost ,邮件写自己的即可。
进入Next后,默认的安装路径是"C:\Program Files\Apache Software Foundation\Apache22\",修改路径,改为自己所要的"D:\PHP\Apache22"。
然后一路下去,直到安装结束;此时,打开D盘下的PHP文件夹,可以看到有一个名为Apache22的文件夹。
2、打开IE,然后在地址栏输入:">
现在很多站长PHP构建网站,因为PHP相对于其他的语言功能强大又简单易学,PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及 *** 作系统。最大的原因可能是因为几乎所有用PHP编写的网站程序都开源,可以直接下载使用并修改,这给站长们特别是个人站长建设网站节约了很多的时间和精力。我们在用PHP建网站的时候,首先要面临的问题就是php环境搭建,今天笔者就跟大家分享一下如何在windows下配置搭建PHP开发环境,笔者主要讲的是搭建Apache+php开发环境。
配置搭建Apache+php环境的软件准备:
Apache官方下载地址:apache_2055-win32-x86-no_sslmsi
php官方下载地址:php-505-Win32zip
一、安装Apache,配置成功一个普通网站服务器
运行下载好的“apache_2055-win32-x86-no_sslmsi”,
出现Apache >
确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续
将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续
设置系统信息,在Network Domain下填入您的域名(比如:qdsuliancom),在Server Name下填入您的服务器名称(比如:>
选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续
出现选择安装选项界面,如图所示,左键点选“Apache >
我这里选择安装在“D:\”,各位自行选取了,一般建议不要安装在 *** 作系统所在盘,免得 *** 作系统坏了之后,还原 *** 作把Apache配置文件也清除了。选“OK”继续。
返回刚才的界面,选“Next”继续。
确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。
正在安装界面,请耐心等待,直到出现下面的画面。
装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装
我们来熟悉一下这个图标,很方便的,在图标上左键单击,出现如下界面,有“Start(启动)”、“Stop(停止)”、“Restart(重启动)”三个选项,可以很方便的对安装的Apache服务器进行上述 *** 作。
好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打“>
现在开始配置Apache服务器,使它更好的替我们服务,事实上,如果不配置,你的安装目录下的Apache2\htdocs文件夹就是网站的默认根目录,在里面放入文件就可以了。这里我们还是要配置一下,有什么问题或修改,配置始终是要会的,如图所示,“开始”、“所有程序”、“Apache >
XP的记事本有了些小变化,很实用的一个功能就是可以看到文件内容的行、列位置,按下图所示,点“查看”,勾选“状态栏”,界面右下角就多了个标记,“Ln 78, Col 10”就表示“行 78,列 10”,这样可以迅速的在文件中定位,方便解说。当然,你也可以通过“编辑”,“查找”输入关键字来快速定位。每次配置文件的改变,保存后,必须在 Apache服务器重启动后生效,可以用前面讲的小图标方便的控制服务器随时“重启动”。
现在正式开始配置Apache服务器,“Ln 228”,或者查找关键字“DocumentRoot”(也就是网站根目录),找到如下图所示地方,然后将""内的地址改成你的网站根目录,地址格式请照图上的写,主要是一般文件地址的“\”在Apache里要改成“/”。
“Ln 253”,同样,你也可以通过查找“
“Ln321”,DirectoryIndex(目录索引,也就是在仅指定目录的情况下,默认显示的文件名),可以添加很多,系统会根据从左至右的顺序来优先显示,以单个半角空格隔开,比如有些网站的首页是indexhtm,就在光标那里加上“indexhtm ”文件名是任意的,不一定非得“indexhtml”,比如“testphp”等,都可以。
这里有一个选择配置选项,以前可能要配置,现在好像修正过来了,不用配置了,就是强制所有输出文件的语言编码,html文件里有语言标记(,这个就是设定文档语言为gb2312)的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上述 html语言标记,如果没有,添加上去就能正常显示了。把“#DefaultLanguage nl”前面的“# ”去掉,把“nl”改成你要强制输出的语言,中文是“zh-cn”,保存,关闭。
简单的Apache配置就到此结束了,现在利用先前的小图标重启动,所有的配置就生效了,你的网站就成了一个网站服务器,如果你加载了防火墙,请打开80或8080端口,或者允许Apache程序访问网络,否则别人不能访问。
二、php的安装、以module方式,将php与apache结合使你的网站服务器支持php服务器脚本程序
将下载的php安装文件php-505-Win32zip右键解压缩。
指定解压缩的位置,我的设定在“D:\php”
查看解压缩后的文件夹内容,找到“phpini-dist”文件,将其重命名为“phpini”,打开编辑,找到下面图中的地方, Ln385,有一个“register_globals = Off”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“Off”,就只能用“$_POST['变量名']、$_GET['变量名 ']”等来取得送过来的值,如果设为“On”,就可以直接使用“$变量名”来获取送过来的值,当然,设为“Off”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“On”就看自己感觉了,是安全重要还是方便重要?
这里还有一个地方要编辑,功能就是使php能够直接调用其它模块,比如访问mysql,如下图所示,Ln563,选择要加载的模块,去掉前面的 “;”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到哪去,比如我要用mysql,就要把“;extension= php_mysqldll”前的“;”去掉。所有的模块文件都放在php解压缩目录的“ext”之下,我这里的截图是把所有能加载的模块都加载上去了,前面的“;”没去掉的,是因为“ext”目录下默认没有此模块,加载会提示找不到文件而出错。这里只是参考,一般不需要加载这么多,需要的加载上就可以了,编辑好后保存,关闭。
如果上一步加载了其它模块,就要指明模块的位置,否则重启Apache的时候会提示“找不到指定模块”的错误,这里介绍一种最简单的方法,直接将php安装路径、里面的ext路径指定到windows系统路径中——在“我的电脑”上右键,“属性”,选择“高级”标签,点选“环境变量”,在“系统变量”下找到“Path”变量,选择,双击或点击“编辑”,将“;D:\php;D:\php\ext”加到原有值的后面,当然,其中的“D:\php” 是我的安装目录,你要将它改为自己的php安装目录,如下图所示,全部确定。系统路径添加好后要重启电脑才能生效,可以现在重启,也可以在所有软件安装或配置好后重启。
现在开始将php以module方式与Apache相结合,使php融入Apache,照先前的方法打开Apache的配置文件,Ln 173,找到这里,添加进如图所示选中的两行,第一行“LoadModule php5_module D:/php/php5apache2dll”是指以module方式加载php,第二行“PHPIniDir "D:/php"”是指明php的配置文件phpini的位置,是当然,其中的“D:/php”要改成你先前选择的php解压缩的目录。
还是Apache的配置文件,Ln 757,加入“AddType application/x->
前面所说的目录默认索引文件也可以改一下,因为现在加了php,有些文件就直接存为php了,我们也可以把“indexphp”设为默认索引文件,优先顺序就自己排了,我的是放在第一位。编辑完成,保存,关闭。
现在,php的安装,与Apache的结合已经全部完成,用屏幕右下角的小图标重启Apache,你的Apache服务器就支持了php。在windows下配置搭建Apache+php环境就此大功告成。
由于现在宽带速度已经很快,电脑配置也越来越高,所以可以把自用PC电脑作为互联网网站服务器,首先需要分清宽带IP和本机IP是有区别的,演示的1921681134是本机IP,另外一个地址是宽带IP地址。步骤如下:
1、首先本地电脑要搭建好内网能访问的服务器,本地电脑搭建网站的教程很多,本步骤省略,用本地IP能访问的的服务器,在地址栏中输入本机IP地址1921681134访问自己的电脑网站;
2、如何让外网能访问,打开路由器设定;
3、进入转发规则-虚拟服务器-添加新条目;
4、如图输入,根据自己的本机IP进行输入,保存;
5、现在用固定宽带IP已经能外网访问了;
6、本地电脑的宽带IP地址,可以百度查询;
7、如何通过本地的域名也能外网访问呢,进去域名管理后台,将域名解析A记录指向本地的宽带IP地址;
8、现在,地址栏输入本地的域名可以访问了;
做网站怎么设置本地服务器?
我用的是“asp代码调试工具”。
其实这个不到一兆的软件已经十分够用,除礌你有什么非常特别的需求,比如说iis专业的组件,否则这个软件已经全部可以胜任。
我是Ghostxp系统,IIS从来都装不上。每次都是用这个
我使用的是2个版本,
一个是“asp代码调试工具”,测试打开的网址是 99端口。
第二个是“网站调试工具”,端口是默认80如果80被占用,那么就随机开启一个端口。
其实也都是netbox核心的。
除了某些高级函数,比如 responsechaset sessionchaset 用不上以为其他根本和IIS没什么两样,
如何搭建本地 tp服务器?
安装 tp软件,如一般的邮件系统软件,本地开放25端口。例如:安装贰urbomail后就是一个 tp服务器了。
如何在windows xp上面搭建一个服务器? 10分
用什么访问的啊,是>网站服务器其实就是我们通常说的web主机,对应不同的编程语言,单间网站服务器的软件不同,一般情况下,在windows环境下,一般以asp net html为主,在这种情况下,搭建网站服务器就主要用到微软系统自带的iis(互联网信息服务)就可以了,Linux环境下就是php了,相对应搭建的软件就是apache+mssql了。java是跨平台的,哪个都可以。对于初学者来说,建议使用asp方面服务器,一方面是asp程序比较简单易懂,在修改过程中,还可以借助Dreamweaver等可视化编程工具,进行可视化编辑,另一方面windows环境下iis安装极其简单,在控制面板中——添加删除程序——windows组建,下拉找到iis,放入系统盘即可安装,无需下载任何东西。
在我们网站编程实际应用过程中,我们其实还用到一个简易的iis服务器,百度一下就能找到“简易iis服务器”,这是一些热心的网友开发出来的网站服务应用程序,同样可以起到iis的作用,但是支持的范围有限,对于一些高端的iis服务不支持,但是作为日常测试网站程序已经是足够了。如果你准备搭建的网站服务器是准备支持php的,那我推荐你安装“一键php集成调试环境”,安装极其简单,下载后,下一步就可以,这个集成环境,融合了,php解释器,mssql服务器,phpadmin,Apache服务器,php加速等。可以说是一个完美的php服务器环境。
这里还没有完,下面还需要对网站服务器就行设置,设置网站的路径,使其指向你网站程序的存放目录,设置网站首页例如:indexasp,indexphp等。然后测试一下自己的ip地址是多少,如果你的这台网站服务器是放置在局域网环境当中的,那还需要你再路由器上设置一下端口映射,否则外网的电脑是访问不了你这台电脑的,路由器就由于一道墙,他阻隔了你与外界的交流,也就是说保护着你这台电脑,但是你现在想让外部的电脑访问你,就必须让外部电脑了解你的位置,所以做一个端口映射就可以实现,具体如果做,请查看你所使用的路由器的型号来设置了,这里不详叙了,切记一定把80端口映射就可以,网站服务器默认的端口是80端口先正确安装Windows2008 *** 作系统,然后安装IIS7(一定要选择IIS6兼容模块)。再安装PHPWEB一体包,然后做些简单IIS绑定网站的工作就搞定了。
PHP套件是一款自动安装配置PHP+MySQL+PhpMyAdmin等web环境的组件,一键 *** 作省去很多的麻烦,只需要花上您几分钟的时间既可以迅速为您配置好。首先,到微软官网下载符合系统位数的Apache和PHP 一、安装并配置Apache Apache版本:Apache2418 解压目录:D:Acpache24 1、下载回来的是解压文件,解压好放到要安装的位置。 2、打开Apache24conf下>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)