apache+php5+sqlite3移植

来源:互联网 发布:外星文明不存在 知乎 编辑:程序博客网 时间:2024/05/20 02:29
apache+php5+sqlite3移植
     
1. sqlite3移植参考http://blog.csdn.net/huyubin/article/details/46726585 的动态
   编译。   
   apache运行时会调用libsqlite3.so这个动态库,所以需要:
   a. 将libsqlite3.so.o.8.6拷贝到/usr/lib目录下
   b. 在/usr/lib目录下建立软链接
      ln -s libsqlite3.so.0.8.6 libsqlite3.so
      ln -s libsqlite3.so.o.8.6 libsqlite3.so.0
      
2. php移植
   a. 从http://php.net/releases/ 下载PHP-5.6.10.tar.gz
   b. 进入php-5.6.10目录,新建安装目录:
      mkdir my_install
   c. 执行./configure, 生产Makefile文件:
     CC=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-gcc CXX=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-g++ CFLAGS="-g -O2" LDFLAGS+=-ldl ./configure --prefix=/home/huyubin/zynq/php/php-5.6.10/my_install/ --host=arm-xilinx-linux-gnueabi --disable-all --with-apxs2=/mnt/ram/apache/bin/apxs --with-config-file-path=/mnt/flash/php --with-config-file-scan-dir=/mnt/flash/php --with-sqlite3=/home/huyubin/zynq/sqlite/sqlite-autoconf-3081002/my_install --with-pdo-sqlite --enable-pdo 
     其中:--with-apxs2=/mnt/ram/apache/bin/apxs  // 为apache的安装目录,用来生成libphp5.so。(主机和ARM板目录一致)
     --with-config-file-path=/mnt/flash/php       // 配置PHP的配置文件php.ini目录
     --with-config-file-scan-dir=/mnt/flash/php
     
     // sqlite3主机安装目录,编译时需要使用(需要先完成sqlite3的编译)
     --with-sqlite3=/home/huyubin/zynq/sqlite/sqlite-autoconf-3081002/my_install
   d. make
   e. sudo make install
  
   PHP扩展PDO编译安装参考:      
   http://blog.csdn.net/liruxing1715/article/details/8268513
   f. 生产pdo.so,进入ext/pdo目录执行
      ../../my_install/bin/phpize
      CC=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-gcc CXX=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-g++ CFLAGS="-g -O2" LDFLAGS+=-ldl ./configure --prefix=/home/huyubin/zynq/php/php-5.6.10/my_install/ --host=arm-xilinx-linux-gnueabi --with-php-config=../../my_install/bin/php-config
      make 
      sudo make install
   g. 生成pdo_sqlite.so, 进入ext/pdo_sqlite
      ../../my_install/bin/phpize
      CC=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-gcc CXX=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-g++ CFLAGS="-g -O2" LDFLAGS+=-ldl ./configure --prefix=/home/huyubin/zynq/php/php-5.6.10/my_install/ --host=arm-xilinx-linux-gnueabi --with-php-config=../../my_install/bin/php-config --with-pdo-sqlite=/home/huyubin/zynq/sqlite/sqlite-autoconf-3081002/my_install/
      make 
      sudo make install
      
      
   h. 将php-5.6.10目录下的php.ini-development改为php.ini,做为PHP的配置文件,
      做如下修改:
      添加:
      extension_dir = "/mnt/flash/php/"
      extension=pdo.so
      extension=pdo_sqlite.so
      修改:
      [sqlite3]
      sqlite3.extension_dir = "/usr/lib/"
      
3. apache移植参考http://blog.csdn.net/huyubin/article/details/46817007,
   不过httpd.conf文件需要再次修改:
   a. 添加PHP模块支持(如果不手动修改,在后面编译php时会自动修改) 
      LoadModule php5_module        modules/libphp5.so
   b. 识别*.php等文件
      <FilesMatch "\.ph(p[2-6]?|tml)$">
      SetHandler application/x-httpd-php
      </FilesMatch>


4. 查看嵌入式开发板的 /mnt/ram/apache/moudles/目录下有没有libphp5.so, 这个文件是
   编译PHP时在apache的安装目录下生成的。
5. 新建目录 /mnt/flash/php/, 将php.ini、pdo.so和pdo_sqlite.so拷贝到这个目录。

6. 确认libsqlite3.so.o.8.6在/usr/lib目录下,并建立软连接。


PHP代码:

需要手动创建test.db数据库

<html><body><h1>It works!</h1><?php  echo "my first php shell!";  echo "test sqlite!";  $db = new PDO('sqlite:/mnt/flash/test.db');  if(!$db){  echo $db->lastErrorMsg();  }else{  echo "Open database successfully\n";  }
  phpinfo();?></body></html>

0 0
原创粉丝点击