1. 程式人生 > >如何在安卓手機裡安裝Lighttpd + php + sqlite3組合

如何在安卓手機裡安裝Lighttpd + php + sqlite3組合



我們都知道,機房裡24小時不停機的計算機是伺服器,而家裡使用的筆記本或桌上型電腦是個人電腦。大部分程式設計師都有個人電腦,筆記本。這些家裡的個人電腦在用的時候開機,用完了就關機,所以,一些需要24小時執行的任務無法放在個人電腦上,只能放在伺服器上執行——即使只是一些小任務。事實上,每個人家裡都有幾臺24小時不關機的伺服器,只是你沒用意識到它們可以當做伺服器,它們就是你們的安卓手機,安卓手機的底層就是Linux,如果你家裡有舊的安卓手機,千萬別丟,我們可以把它改造成一個小型的伺服器。


之前的文章裡我介紹瞭如何在安卓手機上安裝Linux,下面我將介紹如何在這個安裝了Linux的手機上安裝Lighttpd + php + sqlite3組合。


之所以選擇lighttpd而不是apache,是考慮到手機的效能畢竟不如伺服器,儘量採用輕量級的軟體。下載、編譯、安裝lighttpd的步驟如下:


wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.45.tar.gz


tar xvf lighttpd-1.4.45.tar.gz


cd lighttpd-1.4.45


./configure
make
sudo make install
安裝過程中會出現一些問題,首先報的錯誤是缺少C/C++編譯器,這是因為手機上安卓的Linux系統比較精簡,缺少很多編譯軟體需要的東西。執行下面命令:


sudo apt-get install build-essential
build-essential是一個工具包,裡面包含了編譯Linux核心需要的一些基本的工具和類庫,包括C編譯。安裝完build-essential後,在繼續安裝的過程中還發現缺少幾個類庫,下面列出的就是遇到的編譯問題和解決方法。


錯誤 1


configure: error: pcre-config not found, install the pcre-devel package or build with –without-pcre


解決方法:


sudo apt-get install libpcre3-dev
錯誤 2


configure: error: zlib-headers and/or libs were not found, install them or build with –without-zlib


解決方法:


sudo apt-get install zlib1g-dev
錯誤 3


configure: error: bzip2-headers and/or libs were not found, install them or build with –without-bzip2


解決方法:


sudo apt-get install libbz2-dev
解決了上面三個問題,Lighttpd的編譯安裝過程很順利。接著安裝PHP:


http://117.75.20.11/files/10070000027BB8AD/cn2.php.net/distributions/php-5.6.30.tar.gz


tar xvf php-5.6.30.tar.gz


cd php-5.6.30


./configure
make 
sudo make install
安裝過程中可能會遇到一個錯誤:


configure: error: xml2-config not found. Please check your libxml2 installation.


解決方法是:


sudo apt-get install libxml2-dev
這個編譯過程比較費時,大概要半個小時。安裝完Lighttpd和PHP後,我們需要將它們結合到一起,只需要在Lighttpd的配置檔案裡新增下面的內容:


fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/php-fastcgi.socket",
                                   "bin-path" => "/usr/local/bin/php"
                                 )
                               )
                            )
Lighttpd是Web伺服器,PHP是動態指令碼語言,我們還需要一個數據庫,在PHP5裡內建了sqlite3資料,我們可在PHP5裡直接呼叫SQLite3,下面是一個使用PHP訪問SQLite資料的例子:


<?php
/**
 * Simple example of extending the SQLite3 class and changing the __construct
 * parameters, then using the open method to initialize the DB.
 */
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('mysqlitedb.db');
    }
}


$db = new MyDB();


$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");


$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>
是不是非常的簡單!這個服務架構都安裝好了,下面我們就可以在上面放置一些服務程式了。


附:安裝過程中遇到的很多錯誤是缺少了相關的類庫、工具包,可以用下面的命令一次安裝完成:


sudo apt-get install build-essential zlib1g zlib1g-dev zlibc libxml2 libxml2-dev libpcre3-dev libbz2-dev
標籤:lighttpdlinuxphp