如何在安卓手機裡安裝Lighttpd + php + sqlite3組合
阿新 • • 發佈:2019-01-06
我們都知道,機房裡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