文章摘要:
本文描述了基于arm-linux平台的web服务器搭建(nginx + php);


硬件平台: s3c2410
内核版本: linux-3.10.1
编译器版本:arm-linux-gcc v4.4.3


nginx服务器搭建

软件版本:nginx-0.6.39/pcre-8.35


1.下载PCRE源码并解压至/usr/src

pcre主要是为了使nginx支持rewrite属性,主要用于php;


2.下载nginx源码,并解压至/usr/src

$./configure --prefix=/usr/local/nginx -conf-path=/etc/nginx/nginx.conf --with-pcre=../pcre-8.34/ 

注意事项:
--conf-path=/etc/nginx/nginx.conf 用来指明运行配置文件的位置


3.修改objs/Makefile

CC =  arm-linux-gcc 
CPP = arm-linux-gcc -E

由于nginx不支持--host选项,所以需要手动更改编译器;


4.配置pcre

$ cd ../pcre-8.35
$ ./configure --disable-shared --host=arm-linux

注意事项:
这一步不能提前,只能在修改Makefile后进行,否则Makefile会丢失;
--host指定主机类型后,会自动生成arm-linux-gcc的编译命令;


5.编译

$cd ../nginx-0.6.39
$make

编译好的nginx文件位于objs目录中;


6.部署安装
将nginx文件复制到开发板的/usr/sbin目录中;
将conf目录的所有文件复制到开发板的/etc/nginx目录;


7.运行

# /usr/sbin/nginx

至此可以浏览器访问通过访问静态html页面;


注意事项:
nginx-0.7.69及以上版本,需要md5支持;


php环境搭建

软件版本:php-5.6.27

1.下载php源码
http://www.php.net/downloads.php

2.编译安装

$CC=arm-linux-gcc
$./configure --host=arm-linux --prefix=/opt/php5 --disable-all --enable-fpm --enable-pdo  --with-zlib --without-iconv
$make
$make install

选项说明:
使能fpm模块(重要): --enable-fpm

嵌入式一般不采用mysql数据库,而是采用sqlite数据库:
--with-sqlite3
--with-sqlite
--with-pdo-sqlite


php-fpm.conf

将etc/php-fpm.conf.default文件复制至目标板/etc/php5/fpm/php-fpm.conf

修改php-fpm.conf,指定pid(重要)
pid = /var/run/php5-fpm.pid


如果目标板没有/var/run和/var/log目录的话,则建立该目录;


3.运行php-fpm

# /usr/local/php5/sbin/php-fpm -y /etc/php-fpm.conf

nginx配置示例:

server {
    listen       80;
    server_name  192.168.9.166;
    
    location / {
        root   /var/www/html;
        index  index.php index.html index.htm;
    }

    location ~ \.php$ {
        root   /var/www/html;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }

fastcgi_params文件说明:
主要声明了相关的变量

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

在网站根目录建立index.php文件:

<?php
    phpinfo();
?>

重启nginx,即可通过浏览器访问php页面;


相关下载:
http://www.pcre.org/
http://nginx.org/en/download.html
ftp://ftp.penguin.cz/pub/users/mhi/libmd/libmd-0.3.tar.bz2
http://www.php.net/downloads.php