热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

APPWEB+PHP5+SQLITE3+MATRIXSSL移植到ARMLINUX

APPWEB+PHP5+SQLITE3+MATRIXSSL移植到ARMLINUX一、主机环境Linuxversion2.6.35(Ubunt

APPWEB + PHP5 + SQLITE3 + MATRIXSSL移植到ARM LINUX

 

一、主机环境

        Linux version 2.6.35(Ubuntu 10.10)

        gcc version 4.4.5

        arm-linux-gcc 3.4.1

二、相关源码下载

        zlib-1.2.3.tar.gz下载

        libxml2-2.7.8.tar.gz 下载

        appweb-src-3.3.2-0.tgz 下载

        php-5.3.10.tar.bz2 下载

        sqlite-amalgamation-3.6.11.tar.gz 下载

        matrixssl-1.8.3.tar.gz 下载

        arm-linux-gcc-3.4.1.tar.bz2 下载

三、建立交叉编译环境

        1、打开终端,进入主目录(我这里的主目录为/home/ysj265)

              $ cd /home/ysj265       

        2、在该目录下新建两个文件夹arm arm/code

              $ mkdir arm arm/code 

        3、进入/home/ysj265/arm/code

              $ cd arm/code 

        4、拷贝刚才下载的7个文件到code目录       

        5、解压缩arm-linux-gcc-3.4.1.tar.bz2并拷贝到根目录

              $ sudo tar xjvf arm-linux-gcc-3.4.1.tar.bz2 -C / 

        6、设置环境变量

              $ sudo gedit /etc/profile

              在最后面加上如下语句

$ export PATH=/usr/local/arm/3.4.1/bin:$PATH
$ export CC=arm-linux-gcc
$ export AR=arm-linux-ar
$ export LD=arm-linux-ld
$ export NM=arm-linux-nm
$ export STRIP=arm-linux-strip
$ export RANLIB=arm-linux-ranlib

              保存文件并关闭。

        7、使环境变量立即生效

             $ source /etc/profile 

        8、测试编译环境是否安装成功

             $ which arm-linux-gcc

             如果显示/usr/local/arm/3.4.1/bin/arm-linux-gcc表示安装成功

四、编译代码

        1、移植zlib

             解压zlib-1.2.3.tar.gz

             $ tar xzvf zlib-1.2.3.tar.gz

             进入目录

             $ cd zlib/1.2.3

             修改Makefile

             $ gedit Makefile

             CC=cc 修改成CC=arm-linux-gcc

             AR=ar rc修改成AR=arm-linux-ar rc

             RANLIB=ranlib修改成AR=arm-linux-ranlib

             prefix = /usr/local修改成prefix = /home/ysj265/arm/zlib

             保存并关闭gedit

            执行make&&make install即可完成zlib移植

            $ make&&make install

    2、移植libxml2

            解压libxml2-2.7.8.tar.gz

            $ tar xzvf libxml2-2.7.8.tar.gz

 

            进入目录

            $ cd libxml2-2.7.8

 

            配置ibxml2

            $ ./configure --prefix=/home/ysj265/arm/libxml2 --host=arm-linux        

  

            执行make&&make install即可完成libxml2移植

            $ make&&make install

 

    3、移植sqlite3

            解压sqlite-amalgamation-3.6.11.tar.gz

            $ tar xzvf  sqlite-amalgamation-3.6.11.tar.gz


            进入目录

            $ cd sqlite-3.6.11

 

            配置sqlite3

            $ ./configure --prefix=/home/ysj265/arm/sqlite3 --host=arm-linux          

 

            执行make&&make install即可完成sqlite3移植

            $ make&&make install

 

    4、移植php5

            解压php-5.3.10.tar.bz2

            $ tar xjvf  php-5.3.10.tar.bz2


            进入目录

            $ cd php-5.3.10 

            

           配置php5

            $ ./configure --prefix=/home/ysj265/arm/php5 --host=arm-linux --with-sqlite=shared 

                --enable-pdo=shared  --with-pdo-sqlite=shared  --with-libxml-dir=/home/ysj265/arm/libxml2

                --with-zlib-dir=/home/ysj265/arm/zlib  --disable-all --enable-pdo=shared

                --enable-embed=shared --with-sqlite3=/home/ysj265/arm/sqlite3

                --with-config-file-path=/mnt/appweb --with-config-file-scan-dir=/mnt/appweb --enable-session

 

            修改Makefile

            $ gedit Makefile

              首先在开始出添加LDFLAGS += -ldl ,这里是为了链接dlopen库。

              然后修改main/php.h 在开始处添加#define HAVE_LIBDL 1 ,这个宏是为了交叉编译时强制使用dlopen。

              紧接着修改ext/standard/dl.c ,这段代码中添加#include ,这个是dlopen的头文件。

            #if defined(HAVE_LIBDL) || HAVE_MACH_O_DYLD_H   
# include       

#include       

#include   

            执行make&&make install即可完成php5移植

            $ make&&make install

 

   5、移植matrixssl

             解压matrixssl-1.8.3.tar.gz

             $ tar xzvf matrixssl-1.8.3.tar.gz

             进入目录

             $ cd matrixssl-1.8.3/matrixssl/src

             修改Makefile

             $ gedit Makefile

             CC=cc 修改成CC=arm-linux-gcc

             AR=ar rc修改成AR=arm-linux-ar rc

             RANLIB=ranlib修改成AR=arm-linux-ranlib

             STRIP=strip修改成AR=arm-linux-strip

             prefix = /usr/local修改成prefix = /home/ysj265/arm/matrixssl

             保存并关闭gedit

            执行make&&make install即可完成matrixssl移植

            $ make&&make install

 

    6、移植appweb

            解压appweb-3.3.2.tgz

            $ tar xzvf  appweb-3.3.2.tgz

            进入目录

            $ cd appweb-3.3.2            

           配置appweb

            $ ./configure --host=arm-s3c2410-linux --build=i686-pc-linux --enable-shared --shared

              --disable-static --port=80 --disable-multi-thread --type=RELEASE --prefix=/mnt/appweb

              --webDir=/var/web --disable-test --disable-samples

              --with-php=/home/ysj265/arm/code/php-5.3.10

              --with-matrixssl=/home/ysj265/arm/code/matrixssl-1.8.3/matrixssl 

 

            执行make&&make install即可完成appweb移植

            $ sudo make&&make install

四、复制文件并配置网站

     1、准备文件

      $  mkdir ~/appweb

      $  cd ~/appweb

      $  cp -rf /mnt/appweb/lib/appweb/bin /mnt/appweb/lib/appweb/lib /mnt/appweb/lib/appweb/modules .

      $  cp -rf /etc/appweb/conf /etc/appweb/ssl /etc/appweb/appweb.conf /etc/appweb/groups.db

                  /etc/appweb/mime.types /etc/appweb/php.ini /etc/appweb/users.db .

       $ arm-linux-strip bin/* modules/* lib/*

    2、修改appweb.conf

       $ gedit appweb.conf

       修改ServerRoot "/etc/appweb"为ServerRoot "/mnt/appweb"

       修改DocumentRoot "/var/web"为您的网站目录

       修改LoadModulePath "/mnt/appweb/lib/appweb/modules"为LoadModulePath "/mnt/appweb/modules"

    3、修改php.ini

       $ gedit php.ini

       在extension=php_zip;的下面添加如下配置

       extension=pdo.so
       extension=pdo_sqlite.so
       extension=sqlite.so

       修改extension_dir = "/mnt/appweb/lib"

 

     4、拷贝appweb到目标板的/mnt目录

     5、拷贝libz.so.1.2.3、libxml2.so.2.7.8、librt-2.3.2.so、libdl-2.3.2.so、libcrypt-2.3.2.so到/lib并创建符号链接

     6、注册环境变量并启动服务

     $ export LD_LIBRARY_PATH=/mnt/appweb/lib:$LD_LIBRARY_PATH

     $ cd /mnt/appweb
     $ chmod +x ./bin/appweb
     $ ./bin/appweb --config appweb.conf



推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 树状笔记软件for linux,Ubuntu 14.04安装开源树状笔记管理软件 WikidPad 2.2
    WikidPad是一款开源免费的wiki风格的树状笔记管理软件,类似于Notepad。基于Python,支持Windows、Mac、Linux等平台。W ... [详细]
  • 最近项目需要在服务器上新部署一个tomcat,在新部署的tomcat中部署项目。于是将原来的tomcat压缩文件解压缩到另一个目录,然后将打包的war文件上传到tomcat的webapps的目录下,同 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
author-avatar
奶爸乳酪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有