如何在Centos上搭建PHP+JAVA的服务器

如何在Centos上搭建PHP+JAVA的服务器,第1张

一、需要解决中央控制端到各节点服务器之间的通信。
这个其实牵扯到一个通信协议的问题,各语言都有自己的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”,

出现Apache >

确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续

将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续

设置系统信息,在Network Domain下填入您的域名(比如:qdsuliancom),在Server Name下填入您的服务器名称,在Administrator’s Email Address下填入系统管理员的联系电子邮件地址,上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。一般选择如图所示。按“Next”继续。

选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续

出现选择安装选项界面,如图所示,左键点选“Apache >

我这里选择安装在“D:\”,各位自行选取了,一般建议不要安装在 *** 作系统所在盘,免得 *** 作系统坏了之后,还原 *** 作把Apache配置文件也清除了。选“OK”继续。

返回刚才的界面,选“Next”继续。

确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。

正在安装界面,请耐心等待,

安装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装

现在正式开始配置Apache服务器,“Ln 228”,或者查找关键字“DocumentRoot”(也就是网站根目录),找到如下图所示地方,然后将""内的地址改成你的网站根目录,地址格式请照图上的写,主要是一般文件地址的“\”在Apache里要改成“/”。

“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环境就此大功告成。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10590259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存