因为项目需要,需要在一台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
提示
[email protected]:/ # 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。


更多相关文章

  1. Android 工程中的 R.java 文件丢失后如何重新生成
  2. 【Android Developers Training】 25. 保存文件
  3. Android本地数据存储之.txt文件存储读写
  4. Android代码内存优化建议-OnTrimMemory优化
  5. Android Json 使用jsonschema2pojo生成.java文件文件
  6. android camera以时间来命名照片文件

随机推荐

  1. android自动化测试--monkey runner
  2. python logging 模块(一)
  3. MaterialDesign初探-Theme
  4. Android(安卓)Studio 下载与安装教程(最简
  5. Android开发之ListView详解 以及简单的li
  6. Android中的消息通知-Toast和Notificatio
  7. Android应用开发学习笔记之播放视频
  8. Android(安卓)Day01-电话拨号器案例&Andr
  9. Android-EventBus(手写简易版)
  10. Android中不使用AIDL实现Service的远程调