Lighttpd和PHP的使用是Web服務(wù)器與服務(wù)器端腳本語言之間的一個簡單、高效的集成方式。相比于代表信仰和底蘊的Apache,Lighttpd更注重性能和速度,并且具有更小的內(nèi)存占用,更快的響應(yīng)時間以及更少的網(wǎng)絡(luò)連接數(shù)。而PHP則是一種流行的、經(jīng)典的服務(wù)器端腳本語言,應(yīng)用廣泛,功能強大。本文將介紹如何使用Lighttpd集成PHP,并給出一些示例。
首先,我們需要安裝Lighttpd和PHP,然后在Lighttpd配置文件中添加PHP支持。
server.modules += ( "mod_fastcgi" ) fastcgi.server = ( ".php" =>(( "bin-path" =>"/usr/local/bin/php-cgi", "socket" =>"/tmp/php.socket", "max-procs" =>1, "idle-timeout" =>20, "bin-environment" =>( "PHP_FCGI_CHILDREN" =>"4", "PHP_FCGI_MAX_REQUESTS" =>"10000" ), "bin-copy-environment" =>( "PATH", "SHELL", "USER" ), "broken-scriptfilename" =>"enable" )) )在上述配置中,將PHP進程作為FastCGI服務(wù)器來運行,同時也指定了PHP的各種參數(shù),以及與之通信的套接字位置。另外,還可以指定FastCGI服務(wù)器的最大并發(fā)數(shù)和閑置超時時間等參數(shù)。 下面,我們來看一個簡單的PHP程序。該程序隨機生成一個圖片,并輸出到瀏覽器。
<?php header( "Content-type: image/png" ); $img = imagecreatetruecolor( 100, 100 ); $bg = imagecolorallocate( $img, rand(0, 255), rand(0, 255), rand(0, 255) ); $fg = imagecolorallocate( $img, rand(0, 255), rand(0, 255), rand(0, 255) ); imagefill( $img, 0, 0, $bg ); imagettftext( $img, 20, 0, 10, 60, $fg, "/usr/share/fonts/truetype/freefont/FreeSerif.ttf", "Hello, Lighttpd + PHP!" ); imagepng( $img ); imagedestroy( $img ); ?>這個程序并不復(fù)雜,但它卻可以完美地展示Lighttpd和PHP之間的集成。需要注意的是,該程序必須以“.php”為后綴名,并且要放在設(shè)定的FastCGI服務(wù)器的目錄中。 除了支持簡單的圖片輸出外,Lighttpd和PHP還可以完成更加復(fù)雜的任務(wù),例如維護會話狀態(tài)、處理表單、連接數(shù)據(jù)庫等操作。這里我們僅給出會話狀態(tài)維護的示例程序,其它操作可以在文檔中找到相應(yīng)的教程和例子。 首先,啟用PHP的會話功能,并在Lighttpd配置文件中打開對“mod_setenv”模塊的支持。
server.modules += ( "mod_setenv" ) php.session.auto_start = "1"然后,在PHP程序中存儲和取出會話狀態(tài)變量。
<?php session_start(); if( !isset( $_SESSION['counter'] ) ) { $_SESSION['counter'] = 0; } $_SESSION['counter']++; echo "<p>Session counter: " . $_SESSION['counter'] . "</p>"; ?>該程序在每一次訪問時都會增加“counter”變量的值,并將結(jié)果輸出到頁面上。 總之,Lighttpd與PHP的集成使用簡便、高效,既有輕巧和快速的優(yōu)勢,又有功能強大的實現(xiàn),能夠滿足所有的Web應(yīng)用程序的需求。本文只是Lighttpd和PHP集成的一個入門介紹,如果您對此領(lǐng)域感興趣,不妨自己親自試一試,體驗其中的樂趣。
上一篇limit php
下一篇linex 安裝 php