如何让我们的PHP在Jexus中跑起来
最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP。其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的。不过由于没有这个方面的需求,我也一直没有用它这一项功能。
早在前两天,群里一名朋友找到我,他想把一个PHP版的BBS改为.NET版的,问我有没有兴趣,我看了下这个BBS的用途,也乐意的接受了他的邀请。于是问题就来了,这个BBS是PHP版的,我需要先把它挂上服务器,先大概的“玩”一下有些什么功能、好不好使,但是当前手头上,我没有任何可以供PHP运行的环境(早在一年前我就已经没有和LAMP接触了),我需要快速的获得一个PHP的运行环境。
搭建一个新的,这是我唯一的一个选择。如果这是一个新装的系统,并且我只是想单纯的跑PHP的话,我也许会选择经典的LAMP构架(Linux+Apache+Mysql+PHP),但是由于当前的系统中已经存在了一套完整的Linux.NET环境,所以我也不折腾了,直接采用最简单的方式,快速的这个BBS跑起来。
下面开始动手:
我们使用的是最简单最快捷的方式来搭建,因此我选择YUM来安装所需要的所有组建,需要源码安装的朋友可以自行套弄
首先我们先获得我们的PHP环境:
yum install -y php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml
接着是MYSQL数据库:
yum install -y mysql-server
Jexus对PHP的支持有三种方式,他们分别是:
1、使用Jexus自带的CGI去支持
2、使用PHP的CGI
3、使用PHP.NET
详细的可以看:http://www.linuxdot.net/bbsfile-3132
在这里,我使用最简单的方式——使用Jexus自带的CGI去支持。
首先我们需要修改PHP.INI文件,由于我们是通过Yum安装的,所以默认的地方是“/etc/php.ini”(自己源码编译的就不是哦)。
找到“cgi.force_redirect=1”这一行,然后把前面的注释去掉,并把“1”改为“0”
保存退出。
然后,我们找到Jexus程序的存放目录,并修改“Jws.conf”文件。
vi /usr/local/jexus/jws.conf
把“php-fcgi.set=/usr/bin/php-cgi,6”前面的注释去除,这样Jexus就就可以通过CGI的方式支持PHP了
保存退出。
等等,这里还有一点没有完成的,要支持PHP,我们还要在挂PHP的那个网站项目的配置文件中指明一下,我们新建一个名为PHP的网站项目
cp /usr/local/jexus/siteconf/default /usr/local/jexus/siteconf/php
然后用VI打开它
修改好我们的端口和根目录配置,然后注意下方红框的地方,把前面的注释去除,再保存退出。
重启下Jexus。
/usr/local/jexus/jws restart
这里我解析一下:如果各位读者像我一样使用Jexus自带的CGI来支持PHP的,请除去前一个CGI的注释(红框那个),如果是用PHP的CGI的请出去下面那个。
我们在根目录中建一个显示phpinfo的文件(懂PHP的人都知道怎么回事),然后浏览器中访问下:
嘿嘿,然后就出来了。很简单,也很快,不过冲一杯咖啡的时间就搞好了,然后我们可以把自己的PHP项目挂上去跑了。
附:最近Mono更新到了3.2.8,有兴趣的读者可以去下载自己编译升级,下载地址如下:http://download.mono-project.com/sources/mono/mono-3.2.8.tar.bz2
如何让我们的PHP在Jexus中跑起来的更多相关文章
- 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- 让Mongo在Spring中跑起来
本文标题为<让Mongo在Spring中跑起来>,旨在Spring中如何成功连接MongoDB并对其进行增删改查等操作,由于笔者也是刚接触,对其中的一些原由也不甚了解,若有错误之处,敬请指 ...
- 在Docker中跑Hadoop与镜像制作
重复造轮子,这里使用重新打包生成一个基于Docker的Hadoop镜像: Hadoop集群依赖的软件分别为:jdk.ssh等,所以只要这两项还有Hadoop相关打包进镜像中去即可: 配置文件准 ...
- Canvas画图在360浏览器中跑偏的问题
问题描述,canvas画图的js代码中编写的是画正方形的代码,结果在360浏览器上变成了长方形,不知道怎么回事,请问各位大神是否遇到过此类问题? <!DOCTYPE html> <h ...
- hadoop streaming 中跑python程序,自定义模块的导入
今天在做代码重构,以前将所有python文件放到一个文件夹下,上传到hadoop上跑,没有问题:不过随着任务的复杂性增加,感觉这样甚是不合理,于是做了个重构,建了好几个包存放不同功能的python文件 ...
- [转] VS2015中跑OpenGL红宝书第八版的第一章示例代码,运行
Ori Article Link OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资 ...
- VS2015中跑OpenGL红宝书第八版的示例代码
OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资料终于跑起来了,记录一下 一.环境 ...
- idea中跑mapreduce报错, PATH设置错误
问题如题,报错: [root@node01 servers]# hadoop jar loginVisit.jar cn.itcast.loginVisit.step1.Step1Main19/07/ ...
- iOS中跑马灯效果小结
时光过得好快,记忆中刚刚从春节返回没有多久,清明.五一已飞逝而过,眨眼已到盛夏季节.不过还好,济南这两年不算太热,刚开始升温几天,一场及时雨总能让温度保持适宜.为了纪念一下青春的尾巴,也为了能有个健康 ...
随机推荐
- .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布
众所周知,Red Hat和微软正在努力使.NET Core成为Red Hat企业版Linux (RHEL)系统上的一流开发平台选项.这个团队已经一起工作好几个月了,RHEL对.NET有许多需求.今天在 ...
- Android中手机录屏并转换GIF的两种方式
之前在博文中为了更好的给大家演示APP的实现效果,本人了解学习了几种给手机录屏的方法,今天就给大家介绍两种我个人用的比较舒服的两种方法: (1)配置adb环境后,使用cmd命令将手机界面操作演示存为视 ...
- Jquery的事件操作和文档操作
对于熟悉前端开发的小伙伴,相信对于Jquery一定不陌生,相对于JavaScript的繁琐,Jquery更加的简洁,当然简洁不意味着简单,我们可以使用Jquery完成我们想要实现全部功能,这里为小白们 ...
- Node.js:Buffer浅谈
Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...
- jquery屏幕滚动计算事件总结
获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度: $(docume ...
- Java 时间类-Calendar、Date、LocalDate/LocalTime
1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...
- 太多选择——企业如何选择合适的BI工具?
在没认清现状前,企业当然不能一言不合就上BI. BI不同于一般的企业管理软件,不能简单归类为类似用于提高管理的ERP和WMS,或用于提高企业效率的OA.BPM.BI的本质应该是通过展现数据,用于加强企 ...
- Atitit.软件开发的三层结构isv金字塔模型
Atitit.软件开发的三层结构isv金字塔模型 第一层,Implements 层,着重与功能的实现.. 第二次,spec层,理论层,设计规范,接口,等.流程.方法论 顶层,val层,价值观层,原则, ...
- atitit.attilax的软件 架构 理念.docx
atitit.attilax的软件 架构 理念.docx 1. 预先规划.1 2. 全体系化1 3. 跨平台2 4. 跨语言2 5. Dsl化2 5.1. 界面ui h5化2 6. 跨架构化2 7. ...
- jQuery radio的取值与赋值
取值: $("input[name='radioName']:checked").val(); 赋值: $("input[name='radioName'][value= ...