首页 > 代码库 > mtk android内置nginx服务器的方法

mtk android内置nginx服务器的方法

因为项目需要,需要在一台android 6572的方法上内置nginx.
首先,使用arm-linux-gcc编译nginx。
我们先手动安装nginx,看看是否可行,如果可行,然后再在代码中间集成。
1, 现在android上面建立gnulib的环境
先把相关库push到android的/system/lib/上
ld-linux.so.3
libc.so.6
libnsl.so.1
libnss_compat.so.2
libnss_dns.so.2
libnss_files.so.2
libnss_hesiod.so.2
libnss_nis.so.2
libnss_nisplus.so.2
libresolv.so.2
然后把相关配置文件放到/system/etc/
group
host.conf
hosts
localtime
nsswitch.conf
passwd
resolv.conf
还要把nginx服务器的/system/etc/nginx/conf下面
adb remount
adb shell
cd system/etc
mkdir nginx
cd nginx
mkdir conf
文件包括
fastcgi.conf
fastcgi.conf.default
fastcgi_params
fastcgi_params.default
install.sh
koi-utf
koi-win
mime.types
mime.types.default
nginx.conf
nginx.conf.default
scgi_params
scgi_params.default
uwsgi_params
uwsgi_params.default
win-utf
最后把编译的nginx放到/system/bin/,并修改可执行属性
adb push nginx /system/bin/
adb shell chmod 777 /system/bin/nginx
push之后,进入adb shell试验运行
adb shell
nginx -c /system/etc/nginx/conf/nginx.conf
提示
root@android:/ # nginx -c /system/etc/nginx/conf/nginx.cong
nginx: [alert] could not open error log file: open() "/data/data/android.nginx/logs/error.log" failed (2: No such file or directory)
2013/01/01 08:55:24 [emerg] 3592#0: open() "/system/etc/nginx/conf/nginx.cong" failed (2: No such file or directory)
我们需要在/data/data/下面建立android.nginx/logs
adb shell
cd /data/data/
mkdir android.nginx
cd android.nginx
mkdir logs
再次执行,可以正确执行。
打开手机端的浏览器,输入127.0.0.1,可以正确执行。
当然具体执行结果需要安装项目要求定制nginx.conf文件了。

下面把nginx内置到mtk 6572的源代码里面
第一步,内置gnulib库,把
ld-linux.so.3
libc.so.6
libnsl.so.1
libnss_compat.so.2
libnss_dns.so.2
libnss_files.so.2
libnss_hesiod.so.2
libnss_nis.so.2
libnss_nisplus.so.2
libresolv.so.2
放到./alps/vendor/mediatek/project_name/artifacts/out/target/product/project_name/system/lib
第二步,把gnulib的配置文件
group
host.conf
hosts
localtime
nsswitch.conf
passwd
resolv.conf
放到./alps/vendor/mediatek/project_name/artifacts/out/target/product/project_name/system/etc下面

第三步,把nginx服务器的配置相关文件
fastcgi.conf
fastcgi.conf.default
fastcgi_params
fastcgi_params.default
install.sh
koi-utf
koi-win
mime.types
mime.types.default
nginx.conf
nginx.conf.default
scgi_params
scgi_params.default
uwsgi_params
uwsgi_params.default
win-utf
放到./alps/vendor/mediatek/project_name/artifacts/out/target/product/project_name/system/etc/nginx/conf下面

第四步,在./alps/vendor/mediatek/project_name/artifacts/out/target/product/project_name/system/etc/nginx/wwwroot文件夹下放置我所需要放置的文件

第五步,把nginx放到./alps/vendor/mediatek/project_name/artifacts/out/target/product/project_name/system/bin下面

第六步,建立一个脚本文件
#!/system/bin/sh
nginx -c /system/etc/nginx/conf/nginx.conf
命名startNginx
放置到./alps/vendor/mediatek/project_name/artifacts/out/target/product/project_name/system/bin下面

第七步,修改alps/mediatek/config/mt6572/init.rc,在on post-fs-data中添加
    mkdir /data/data/android.nginx
    mkdir /data/data/android.nginx/logs/
第八步,修改alps/mediatek/config/mt6572/init.rc,添加nginx的启动
service init-setup /system/bin/startNginx
    class main
    user root
    group root
    oneshot
on property:sys.boot_completed=1
    start  init-setup

然后new一遍代码。OK。


mtk android内置nginx服务器的方法