移植nginx+php+sqlite到arm linux(二)

来源:互联网 发布:手机电话变音软件 编辑:程序博客网 时间:2024/06/05 07:08

1.概述:

本篇文章继上一篇继续讲解nginx+php+sqlite到ARM Linux平台的移植和验证。

2.交叉编译依赖库

2.1交叉编译zlib

下载地址:http://download.csdn.net/detail/b404587/3750737
1.tar -xvzf zlib-1.2.3.tar.gz
2.chmod -Rf 777 zlib-1.2.3
3.cd zlib-1.2.3
4../configure –shared –prefix=/home/armzlib
5.修改Makefile文件
CC=gcc 改为 CC=arm-none-linux-gnueabi-gcc
LDSHARED=gcc -shared -Wl,-soname,libz.so.1 改为 LDSHARED=arm-none-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1
CPP=gcc -E 改为 CPP=arm-none-linux-gnueabi-gcc -E
AR=ar rc 改为 AR=arm-none-linux-gnueabi-ar rc
RANLIB=ranlib 改为 RANLIB=arm-none-linux-gnueabi-ranlib
6.make
7.make install
8.编译好的库和头文件在/home/armzlib中

2.2交叉编译libxml2

下载地址:https://sourceforge.net/projects/gnuwin32/files/zlib/1.2.3/
1.tar -xvzf libxml2-2.6.30.tar.gz
2.chmod -Rf 777 libxml2-2.6.30
3.cd libxml2-2.6.30
4../configure –host=arm-none-linux-gnueabi –prefix=/home/armlibxml2
5.make
6.make install
7.编译好的库和头文件在/home/armlibxml2中

2.3交叉编译libiconv

下载地址:http://ftp.gnu.org/pub/gnu/libiconv/
1.tar -xvzf libiconv-1.14.tar.gz
2.chmod -Rf 777 libiconv-1.14
3../configure –host=arm-none-linux-gnueabi –prefix=/home/armlibiconv
4.make
5.make install
6.编译好的库和头文件在/home/armlibiconv中

3.交叉编译PHP

下载地址:http://mirrors.sohu.com/php/

PC端交叉编译版本的路径最好与之后解压到网关中的路径相同,这样可以减少路径问题带来的麻烦。比如./configure –prefix=/xxx/armphp 之后armphp也要解压到网关的/home下

1.cp php-5.4.27.tar.gz /home
2.cd /home
3.tar -xvzf php-5.4.27.tar.gz
4.chmod -Rf 777 php-5.4.27
5.cd php-5.4.27
6../configure –host=arm-none-linux-gnueabi –prefix=/home/armphp –enable-shared –enable-fpm –with-fpm-user=root –with-fpm-group=root –with-zlib-dir=/home/armzlib –with-libxml-dir=/home/armlibxml2 –with-iconv-dir=/home/armlibiconv –disable-phar

此处特殊说明下:
我们可以./configure -h来查看php configure help,此处有配置参数说明

这里写图片描述

这里写图片描述
  发现sqlite和pdosqlite只有without选项,说明如果不特殊指定without这2个参数,这两项是默认安装的。
这里写图片描述
  Nginx默认不支持CGI模式,它是以FastCGI方式运行的。所以使用Nginx+PHP就是直接配置为FastCGI模式(php-fpm)
这里写图片描述
这里写图片描述
这里写图片描述
  这里都选择了依赖库的安装目录,如果还需要其他依赖库需要提前编译好,再指定路径。
7.1修改Makefile
CFLAGS_CLEAN = -I/usr/include -g -O2 -fvisibility=hidden 修改为 CFLAGS_CLEAN = -I[交叉编译工具的头文件路径] -g -O2 -fvisibility=hidden
7.2删除掉“install-pear:”下全部内容
8.make
9.make install
10.编译好的php相关库和文件在中/home/armphp中,
cp /home/php-5.4.27/php.ini-production /home/armphp/etc/php.ini
11.将/home/armphp压缩,zip -ry /home/armphp.zip armphp/


以下操作在ARM网关中完成

12.将php依赖的动态库armzlib,armlibxml2 ,armlibiconv移动到开发板中(注意软连接的保持)。
13.在开发板中/home下解压armphp.zip
14配置php
14.1修改php.ini
这里写图片描述
cgi.fix_pathinfo=1修改为cgi.fix_pathinfo=0
14.2修改php-fpm.conf
mv /home/armphp/etc/php-fpm.conf.default /home/armphp/etc/php-fpm.conf
这里写图片描述
15.执行php-fpm:
php-fpm -R
成功启动说明php移植成功。
16.修改nginx.conf配置(此步骤省略)

4.运行截图

4.1

<?php    phpinfo();?>

这里写图片描述

4.2sqlite方面验证

代码参考
http://www.runoob.com/sqlite/sqlite-php.html
验证结果显示sqlite相关接口移植成功!这里不放截图了。

0 0
原创粉丝点击