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有關配置。
文章列表