如何在安卓手机里安装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
阅读余下内容
 

发表评论

电子邮件地址不会被公开。 必填项已用*标注