Jexus不仅支持ASP.NET,而且能够通个自带的PHP-FCGI服务以及PHP-FPM等方式灵活支持PHP而且还可以以.NET(Phalanger)方式支持PHP。

PHP-FCGI服务支持PHP

1、安装PHP-CGI:

[azureuser@mono ~]$ sudo yum -y install php-cgi

2、配置:

1)修改“/etc/php.ini”文件:

找到cgi.force_redirect=1一行,把前边的"#"号去掉,把值从1改为0,如:

cgi.force_redirect=0

2)修改jws.conf。打开jexus文件夹中的jws.conf,作如下配置:

填写PHP-CGI程序路径和工作进程数。如:“php-fcgi.set=/usr/bin/php-cgi,6”。

3)修改网站配置。在需要使用PHP的网站的配置文件中添加:

fastcgi.add=php|socket:/var/run/jexus/phpsvr

1、 以管理员身份重启jexus。

在网站目录下创建一个phpinfo的页面index.php

PHP-FPM服务支持PHP

1、安装:

PHP-FPM之前,你必须卸载系统中以前安装的Apache和PHP。默认情况下,CentOS的官方资源是没有php-fpm的, 但我们可以从Remi的RPM资源中获得,它依赖于EPEL资源。我们可以这样增加两个资源库:

[azureuser@mono ~]$ sudo yum install yum-priorities -y

[azureuser@mono ~]$

sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

[azureuser@mono ~]$

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

[azureuser@mono ~]$yum --enablerepo=remi install php php-fpm

2、配置

1)修改fpm配置(可以不用改):打开/etc/php-fpm.d/www.conf文件,把pm.max_children等的值没为你需要的值。

2)修改网站配置文件,在需要运行PHP的网站配置文件中添加:

fastcgi.add=php|tcp:127.0.0.1:9000

3、启动FPM服务:

[azureuser@mono siteconf]$ sudo service php-fpm start

如果你想在系统启动时自动运行php-fpm,输入下列命令:

[azureuser@mono siteconf]$ sudo chkconfig --level 345 php-fpm on

PHP仅安装了核心模块,你很可能需要安装其他的模块,比如MySQL、 XML、 GD等等,你可以输入下列命令:

[azureuser@mono siteconf]$ sudo yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt

4、以管理员身份重启jexus。

在网站目录下创建一个phpinfo的页面index.php:

.NET(Phalanger)支持PHP

Phalanger简介

Phalanger(https://phalanger.codeplex.com/)是一种PHP语言编译器,也是针对.NET的PHP运行时。 它可以用于把PHP web项目编译成.NET字节码,并在Windows中使用IIS或者在Linux上使用Mono和Apache作为ASP.NET应用程序来执行。 然而,Phalanger不仅仅是把已经存在的PHP应用编译到.NET中。

我们可以使用Phalanger创建组合.NET和PHP的解决方案,所采用的方式用标准的PHP解释器是不可能做到的。 有了Phalanger扩展,PHP程序可以直接使用.NET类,而.NET程序(比方说用C#编写的)也可以动态地调用PHP脚本,或者使用在PHP中实现的函数和类。

Phalanger在很大程度上与PHP 5兼容,可以运行大量开源的PHP项目,包括WordPress和MediaWiki。 我们可以使用它把这些项目集成到.NET生态系统中,也可以开发新的项目,它会兼有PHP和.NET的优势。

Phalanger的组件

Phalanger包括多个部分独立的组件,可以用来开发运行在.NET上的PHP应用程序,并使用.NET或Mono来运行它们:

l Phalanger编译器Phalanger会把PHP源代码编译成.NET程序集,它可以使用.NET JIT(Just-in-time编译器,它会为当前平台生成本地代码)执行。 编译后的PHP代码会使用Phalanger运行时和动态语言运行时,从而提供了PHP语言动态特性的高效率实现。

l Phalanger运行时和类库Phalanger运行时提供了对数组之类PHP特性的实现。 Phalanger还包含了针对I/O、正则表达式以及其他标准PHP类库的.NET实现。

l Phalanger可以通过托管的PHP 4扩展。

l 托管的扩展 通过包装.NET中提供的类似功能,PHP扩展也可以重新实现。 这些扩展可以是由任何.NET语言编写,并提供很好的性能。 Phalanger中包含多个扩展,包括SPL、JSON、SimpleXML、MySQL和MS SQL的提供程序。 DEVSENSE【9】还提供了附加的扩展,像Memcached、图像和cURL等。

l 与Visual Studio的集成Phalanger还与Visual Studio集成(最近的更新支持Visual Studio 2010)。 集成功能添加了针对PHP文件的颜色突出显示和智能提示功能,让我们可以调试使用Phalanger运行的PHP应用程序。

Jexus下运行Phalanger

Jexus可以同时用普通方式(PHP-CGI/PHP-FPM)以及.NET(Phalanger)方式支持PHP,为了不引起混淆,用.NET方式支持PHP时,要注意如下事项:

1、网站配置文件中的UsePHP的值为false,或者不用这一句。

2、网站配置文件中添加一行 ASPNET_Exts=php,说明php网页按ASP.NET处理,如果已经有这一项,就在末尾添一个php(用英文件逗号与已有扩展名分隔)。

3、Jexus启用.NET4工作模式(在jws.conf中添一行“Runtime=v4.0.30319”)。

4、在网站的web.config添加Phalanger有关配置。

Jexus 支持PHP的三种方式的更多相关文章

  1. 根据服务端生成的WSDL文件创建客户端支持代码的三种方式

    第一种:使用wsimport是JDK自带的工具,来生成 生成java客户端代码常使用的命令参数说明: 参数 说明 -p 定义客户端生成类的包名称 -s 指定客户端执行类的源文件存放目录 -d 指定客户 ...

  2. 架构设计哲学【三种方式:支持DevOps的原则】

    三种方式:支持DevOps的原则 2012年8月22日作者Gene Kim 45条评论 这篇文章是杨波老师分享的一篇文章:这几年对他架构影响最深的一篇文章.主要描述是关于DevOps的,但对系统架构同 ...

  3. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  4. JDBC的批处理操作三种方式 pstmt.addBatch()

    package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java ...

  5. C#批量插入数据到Sqlserver中的三种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成 ...

  6. JavaScript判断图片是否加载完成的三种方式

    JavaScript判断图片是否加载完成的三种方式 有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.有三种方式实现,下面一一介绍. 一.load事件 1 2 3 4 5 6 7 8 9 10 ...

  7. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  8. HTML5实现动画三种方式

    编者注:作者以一个运动的小车为例子,讲述了三种实现HTML5动画的方式,思路清晰,动画不仅仅是canvas,还有css3和javascript.通过合理的选择,来实现最优的实现. PS:由于显卡.录制 ...

  9. [OpenSource]浅谈.Net和Java互相调用的三种方式

    在很多的大型系统开发中,开发工具往往不限制于同一种开发语言,而是会使用多种开发语言的混合型开发.目前Java和.Net都声称自己占85%的市场份额,不管谁对谁错,Java和.Net是目前应用开发的两个 ...

随机推荐

  1. Datazen笔记索引

      Datazen介绍 http://www.cnblogs.com/aspnetx/p/4557547.html   Datazen安装 http://www.cnblogs.com/aspnetx ...

  2. 解决Trauncate table没权限

    错误信息Cannot find the object "TableName" because it does not exist or you do not have permis ...

  3. Power服务器中KVM克隆新虚拟机

    查看当前所有虚拟机:virsh list --all 克隆新虚拟机:virt-clone  -o guest01 -n guest02 -f /var/lib/libvirt/images/guest ...

  4. Beginning Scala study note(7) Trait

    A trait provides code reusability in Scala by encapsulating method and state and then offing possibi ...

  5. sip协议音视频性能测试

    http://www.cnblogs.com/wxiaoqin/p/3629926.html https://www.myvoipapp.com/cn/docs/faq/performance_tes ...

  6. z-stack协议uart分析(DMA)

    1.从ZMain里面的main函数开始分析 2.进入int main( void ); HalDriverInit();   //硬件相关初始化,有DMA初始化和UART初始化 3.进入HalDriv ...

  7. python学习5 常用三方模块

    watchdog: 监控指定目录/文件的变化并自定义处理事件 例子

  8. Asp.net中static变量和viewstate的使用方法(谨慎)

    在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...

  9. github push时,要求密码的问题

    整几次才搞的有点明白: 1 clone 项目 用 SSH: 在github 上如下图 2 C:\Users\<用户名> 下如果有 "_netrc" 文件: 如果含有 如 ...

  10. sass基础用法

    嵌套: 1.选择器嵌套: 2.属性嵌套; .box {     border-top: 1px solid red;     border-bottom: 1px solid green; } .bo ...