移植sqlite+apache+php

前端之家收集整理的这篇文章主要介绍了移植sqlite+apache+php前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_301_2@最近两周都在弄这三个的移植,其中PHP的移植更是花了快两周的时间,着实让我头疼,不过好在功夫不负有心人,在各种论坛上积极发帖询问,最终得到了好人的帮助,成功把PHP也移植到板子上,所以现在把步骤详细写出来,方便跟我一样的菜鸟们~

@H_301_2@开发板:友善之臂micro2440

@H_301_2@交叉编译工具版本:arm-linux-gcc 4.3.2

@H_301_2@本地系统:ubuntu 11.04

@H_301_2@@H_301_2@一、交叉编译@H_301_2@@H_301_2@@H_301_2@sqlite

@H_301_2@@H_301_2@@H_301_2@sqlite@H_301_2@@H_301_2@是一个小型数据库,适合在嵌入式系统中使用,本次移植的@H_301_2@@H_301_2@@H_301_2@sqlite3.3.8@H_301_2@@H_301_2@版本,可以从@H_301_2@@H_301_2@@H_301_2@@H_301_2@http://www.sqlite.org/download.html@H_301_2@@H_301_2@上下载,移植方法如下:

@H_301_2@@H_301_2@1/@H_301_2@解压,进入目录

@H_301_2@@H_301_2@2/@H_301_2@手动修改@H_301_2@@H_301_2@Makefile@H_301_2@@H_301_2@@H_301_2@cp Makefile.linux-gcc Makefile

@H_301_2@@H_301_2@@H_301_2@@H_301_2@3/@H_301_2@@H_301_2@@H_301_2@vim makefile

@H_301_2@首先找到@H_301_2@@H_301_2@Makefile@H_301_2@文件中的下面这样一行:@H_301_2@@H_301_2@cd

@H_301_2@@H_301_2@@H_301_2@@H_301_2@TOP = ../@H_301_2@@H_301_2@@H_301_2@@H_301_2@sqlite

@H_301_2@将其修改为:

@H_301_2@TOP = .

@H_301_2@找到下面这样一行:

@H_301_2@TCC = gcc -O6

@H_301_2@TCC = /usr/local/arm/4.3.2/bin/arm-linux-gcc -O6

@H_301_2@AR = ar cr

@H_301_2@AR = /usr/local/arm/4.3.2/bin/arm-linux-ar cr

@H_301_2@RANLIB = ranlib

@H_301_2@RANLIB = /usr/local/arm/4.3.2/bin/arm-linux-ranlib

@H_301_2@MKSHLIB = gcc -shared

@H_301_2@MKSHLIB = /usr/local/arm/4.3.2/bin/arm-linux-gcc -shared

@H_301_2@注释掉下面这一行:

@H_301_2@TCL_FLAGS = -I/home/drh/tcltk/8.4linux

@H_301_2@LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl

@H_301_2@注意:在@H_301_2@@H_301_2@Makefile@H_301_2@的上面有一个@H_301_2@@H_301_2@BCC@H_301_2@,这里就不要修改成交叉编译链,这里生成文件需要是@H_301_2@@H_301_2@gcc@H_301_2@编译的。

@H_301_2@原则上,对@H_301_2@@H_301_2@Makefile@H_301_2@修改主要包括两个方面:首先是将编译器、归档工具等换成交叉工具链中的对应工具,比如,@H_301_2@@H_301_2@gcc@H_301_2@换成@H_301_2@@H_301_2@/usr/local/arm/4.3.2/bin/arm-linux-gcc@H_301_2@@H_301_2@@H_301_2@ar@H_301_2@换成@H_301_2@@H_301_2@/usr/local/arm/4.3.2/bin/arm-linux- ar@H_301_2@@H_301_2@@H_301_2@ranlib@H_301_2@换成@H_301_2@@H_301_2@/usr/local/arm/4.3.2/bin/arm-linux-ranlib@H_301_2@等等;其次是去掉与@H_301_2@@H_301_2@TCL@H_301_2@相关的编译选项,因为默认情况下,将会编译@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sqlite@H_301_2@@H_301_2@@H_301_2@3@H_301_2@@H_301_2@@H_301_2@Tcl@H_301_2@语言绑定,但是在移植到@H_301_2@@H_301_2@ARM-Linux@H_301_2@的时候并不需要,因此将两个与@H_301_2@@H_301_2@TCL@H_301_2@有关的行注释掉。

@H_301_2@@H_301_2@4/@H_301_2@修改@H_301_2@@H_301_2@main.mk@H_301_2@,因为@H_301_2@@H_301_2@makefile@H_301_2@包含这个文件。找到这个文件中的下面一行:@H_301_2@@H_301_2@63@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@:@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@select.o table.o tclsqlite.o tokenize.o trigger.o /,@H_301_2@去掉@H_301_2@@H_301_2@tclsqlite.o@H_301_2@这样编译的时候将不会编译@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sqlite@H_301_2@@H_301_2@@H_301_2@3@H_301_2@@H_301_2@@H_301_2@Tcl@H_301_2@语言绑定。

@H_301_2@@H_301_2@@H_301_2@@H_301_2@5/@H_301_2@@H_301_2@@H_301_2@make@H_301_2@,若报错

@H_301_2@./lemon -DsqlITE_OMIT_CURSOR parse.y

@H_301_2@./lemon: ./lemon: cannot execute binary file

@H_301_2@@H_301_2@make: *** [parse.c] Error 126

@H_301_2@这是因为@H_301_2@@H_301_2@gcc@H_301_2@没有生成@H_301_2@@H_301_2@lemon@H_301_2@文件,所以在这里执行一下@H_301_2@@H_301_2@gcc –O2 –o lemon ./tool/lemon.c@H_301_2@指令;再次执行@H_301_2@@H_301_2@make@H_301_2@,就生成@H_301_2@函数文件@H_301_2@@H_301_2@libsqlite3.a@H_301_2@和头文件@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sqlite@H_301_2@@H_301_2@@H_301_2@3.h@H_301_2@@H_301_2@这就是所需要的两个文件了。

@H_301_2@将这两个文件拷贝到开发板上。



@H_301_2@移植 apache1.3.39
@H_301_2@交叉编译工具: @H_301_2@arm-linux-gcc 4.3.2
@H_301_2@总体上需要两个步骤:
@H_301_2@1 @H_301_2@、编译本机代码
@H_301_2@2 @H_301_2@、利用本机代码进行交叉编译
@H_301_2@这是因为在编译 @H_301_2@apache @H_301_2@时,需要使用编译生成的工具制作后续编译使用的头文件,交叉编译工具没法在本地运行,因此需要本地编译生成的工具。将 @H_301_2@apache-1.3.39 @H_301_2@分别解压到 @H_301_2@/home/liubonan/source/( @H_301_2@本地编译用 @H_301_2@) @H_301_2@ @H_301_2@/home/liubonan/arm/( @H_301_2@交叉编译用 @H_301_2@):
@H_301_2@#cd /home/liubonan/source/apache-1.3.39
@H_301_2@#./configure @H_301_2@所有参数都默认
@H_301_2@#make
@H_301_2@应该没什么问题 @H_301_2@, @H_301_2@默认的安装目录为 @H_301_2@/usr/local/apache @H_301_2@,我们这里不用安装 @H_301_2@准备交叉编译:
@H_301_2@#cd /home/liubonan/arm/apache-1.3.39
@H_301_2@先修更新环境变量,在 @H_301_2@/etc/profile @H_301_2@的最后面加 @H_301_2@export PATH=/usr/local/arm/4.3.2/bin/:$PATH @H_301_2@source /etc/profile @H_301_2@;运行 @H_301_2@arm-linux-gcc -v @H_301_2@可以查看环境变量已修改
@H_301_2@#CC=arm-linux-gcc ./configure --prefix=/usr/local/apache
@H_301_2@修改 @H_301_2@src/main/Makefile @H_301_2@这个文件
@H_301_2@uri_delims.h: gen_uri_delims
@H_301_2@./gen_uri_delims >uri_delims.h
@H_301_2@test_char.h: gen_test_char
@H_301_2@./gen_test_char >test_char.h
@H_301_2@修改 @H_301_2@uri_delims.h: gen_uri_delims
@H_301_2@/home/liubonan/source/apache-1.3.39/src/main/gen_uri_delims >uri_delims.h
@H_301_2@/home/liubonan/source/apache-1.3.39/src/main/gen_test_char >test_char.h
@H_301_2@这里借用了刚才编译生成的本机代码里的工具,然后
@H_301_2@#make install
@H_301_2@最后将 @H_301_2@/usr/local/apache @H_301_2@拷贝到板子上的 @H_301_2@/usr/local/ @H_301_2@以上所有步骤都是在 @H_301_2@root @H_301_2@权限下执行的,修改 @H_301_2@/usr/local/apache/conf/httpd.conf @H_301_2@User nobody @H_301_2@Group nobody
@H_301_2@#cd /usr/local/apache/bin
@H_301_2@#./apachectl start @H_301_2@用浏览器访问看是否可以 @H_301_2@, @H_301_2@配置一会再说。。。
@H_301_2@
@H_301_2@移植 @H_301_2@PHP-4.4.8
@H_301_2@交叉编译 @H_301_2@PHP @H_301_2@同样需要两个步骤:
@H_301_2@1. @H_301_2@编译本机代码
@H_301_2@2. @H_301_2@利用本机代码进行交叉编译
@H_301_2@PHP @H_301_2@源码已经解压到 @H_301_2@/home/liubonan/source/( @H_301_2@本地编译用 @H_301_2@) @H_301_2@ @H_301_2@/home/liubonan/arm/( @H_301_2@交叉编译用 @H_301_2@) @H_301_2@#cd /home/liubonan/source/PHP-4.4.8/
@H_301_2@#./configure
@H_301_2@#cd /home/liubonan/arm/PHP-4.4.8/
@H_301_2@#vim configure
@H_301_2@修改这个文件,注释掉不必要的错误搜索 @H_301_2@can not run test program while cross compiling” @H_301_2@,会搜索到很多个这样的结果: @H_301_2@{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } @H_301_2@把它们都改为 @H_301_2@{ echo "configure: error: can not run test program while cross compiling" 1>&2; } @H_301_2@这样做的目的是直接无视交叉编译测试程序错误
@H_301_2@#CC=arm-linux-gcc ./configure –prefix=/usr/local/PHP –host=ubuntu –target=arm-linux
@H_301_2@#vim Makefile
@H_301_2@修改 @H_301_2@Makefile @H_301_2@,找到这段
@H_301_2@install-pear-packages: @H_301_2@$(top_builddir)/sapi/cli/PHP @H_301_2@@$(top_builddir)/s @H_301_2@api/cli/PHP $(PEAR_INSTALL_FLAGS) /home/liubonan/arm/PHP-4.4.8/pear/install-pear.PHP -d "$(peardir)" -b "$(bindir)" /home/liubonan/arm/PHP-4.4.8/pear/packages/*.tar
@H_301_2@用上我们刚才编译的本机 @H_301_2@PHP @H_301_2@里的文件,把它改成
/home/liubonan/source/PHP-4.4.8/sapi/cli/PHP @H_301_2@@/home/liubonan/source/PHP-4.4.8/s @H_301_2@api/cli/PHP $(PEAR_INSTALL_FLAGS) /home/liubonan/arm/PHP-4.4.8/pear/install-pear.PHP -d "$(peardir)" -b "$(bindir)" /home/liubonan/arm/PHP-4.4.8/pear/packages/*.tar
@H_301_2@ @H_301_2@/usr/local/PHP @H_301_2@整个目录拷贝到板子的 @H_301_2@/usr/local/
@H_301_2@
@H_301_2@@H_301_2@@H_301_2@配置 @H_301_2@@H_301_2@@H_301_2@Apache@H_301_2@@H_301_2@@H_301_2@和@H_301_2@@H_301_2@@H_301_2@PHP
@H_301_2@@H_301_2@@H_301_2@接下来就需要修改配置文件,让@H_301_2@@H_301_2@@H_301_2@apache@H_301_2@@H_301_2@@H_301_2@和@H_301_2@@H_301_2@@H_301_2@PHP@H_301_2@@H_301_2@@H_301_2@能够链接起来工作。这个配置过程和@H_301_2@@H_301_2@@H_301_2@Windows@H_301_2@@H_301_2@@H_301_2@下使用@H_301_2@@H_301_2@@H_301_2@apache+PHP@H_301_2@@H_301_2@@H_301_2@的过程类似,因为我不是把@H_301_2@@H_301_2@@H_301_2@apache@H_301_2@@H_301_2@@H_301_2@和@H_301_2@@H_301_2@@H_301_2@PHP@H_301_2@@H_301_2@@H_301_2@一起编译的,只是让@H_301_2@@H_301_2@@H_301_2@apache@H_301_2@@H_301_2@@H_301_2@认识“@H_301_2@@H_301_2@@H_301_2@.PHP@H_301_2@@H_301_2@@H_301_2@这个扩展名,然后调用@H_301_2@@H_301_2@@H_301_2@PHP@H_301_2@@H_301_2@@H_301_2@。为了方便,直接给出@H_301_2@@H_301_2@@H_301_2@apache@H_301_2@@H_301_2@@H_301_2@的配置文件配置文件的位置在@H_301_2@@H_301_2@@H_301_2@ARM Linux@H_301_2@@H_301_2@@H_301_2@文件系统的@H_301_2@@H_301_2@@H_301_2@/usr/local/apache/conf/httpd.conf@H_301_2@@H_301_2@@H_301_2@,其中红色字是在默认配置文件基础上修改添加内容

@H_301_2@@H_301_2@@H_301_2@@H_301_2@ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
scoreBoardFile /usr/local/apache/logs/httpd.scoreboard
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
Port 80
User nobody
Group nobody
ServerAdmin
@H_301_2@cosine@126.com@H_301_2@@H_301_2@@H_301_2@
DocumentRoot "/home/webroot"

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all


UserDir public_html


DirectoryIndex index.html
@H_301_2@@H_301_2@@H_301_2@ DirectoryIndex index.PHP
DirectoryIndex index.PHP3
DirectoryIndex index.phtml
@H_301_2@@H_301_2@@H_301_2@

AccessFileName .htaccess

Order allow,deny
Deny from all
Satisfy All

UseCanonicalName On

TypesConfig /usr/local/apache/conf/mime.types

DefaultType text/plain

MIMEMagicFile /usr/local/apache/conf/magic

HostnameLookups Off
ErrorLog /usr/local/apache/logs/error_log
LogLevel warn
LogFormat "%h %l %u %t /"%r/" %>s %b /"%{Referer}i/" /"%{User-Agent}i/"" combined
LogFormat "%h %l %u %t /"%r/" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /usr/local/apache/logs/access_log common
ServerSignature On

Alias /icons/ "/usr/local/apache/icons/"

Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

Alias /manual/ "/usr/local/apache/htdocs/manual/"

Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
@H_301_2@@H_301_2@@H_301_2@ ScriptAlias /PHP4/ "/usr/local/PHP/bin/"@H_301_2@@H_301_2@@H_301_2@
#
@H_301_2@注意@H_301_2@@H_301_2@"/usr/local/PHP/bin/"@H_301_2@中最后一个@H_301_2@@H_301_2@"/"@H_301_2@不可少@H_301_2@@H_301_2@@H_301_2@@H_301_2@

AllowOverride None
Options None
Order allow,deny
Allow from all



IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t


AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .sv
AddLanguage cs .cz .cs
AddLanguage ru .ru
AddLanguage zh-TW .zh-tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8

LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw

AddType application/x-tar .tgz
@H_301_2@@H_301_2@@H_301_2@ AddType application/x-httpd-PHP .PHP3
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP .phtml
@H_301_2@@H_301_2@@H_301_2@
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz

@H_301_2@@H_301_2@@H_301_2@Action application/x-httpd-PHP "/PHP4/PHP"@H_301_2@@H_301_2@@H_301_2@

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4/.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4/.0" force-response-1.0
BrowserMatch "Java/1/.0" force-response-1.0
BrowserMatch "JDK/1/.0" force-response-1.0



++++++++++++++++++++++++++++++++++
重新移植php-5.2.9

上篇博客移植的@H_301_2@PHP4.4.8+sqlite3+apache放到板子上后各项功能单独运行还好,没有什么问题,但是我需要的是他们可以协同工作,动态的调用,在@H_301_2@PHP动态调用@H_301_2@sqlite时发现了不能调用这个问题,这两天着手解决这个问题。查资料发现,@H_301_2@PHP5以后的版本支持@H_301_2@sqlite2,如果想支持@H_301_2@sqlite3,必须要有个@H_301_2@pdo-sqlite这个东西,具体是什么意思,大家可以@H_301_2@google之。于是,我准备重新移植@H_301_2@PHP,并把版本升级到@H_301_2@PHP-5.2.9.具体过程简略如下@H_301_2@:

@H_301_2@1,首先交叉编译@H_301_2@zlib-1.2.5@H_301_2@@H_301_2@

#CC=arm-linux-gcc ./configure --sahred –prefix=/usr/local/arm/4.3.2/arm-none-@H_301_2@@H_301_2@linux-gnueabi/@H_301_2@@H_301_2@#make@H_301_2@@H_301_2@#make install

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@2,继续编译@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@libxml2@H_301_2@@H_301_2@

#CC=arm-linux-gcc ./configure --host=arm-linux –prefix=/usr/local/arm/4.3.2/@H_301_2@@H_301_2@arm-none-linux-gnueabi/

@H_301_2@@H_301_2@#make@H_301_2@@H_301_2@

@H_301_2@@H_301_2@#make install

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@3交叉编译@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP-5.2.9

#CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/PHP--enable-pdo --with-sqlite –with- pdo-sqlite@H_301_2@@H_301_2@--with-zlib=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/ --without-iconv@H_301_2@@H_301_2@

@H_301_2@@H_301_2@#make@H_301_2@@H_301_2@

@H_301_2@@H_301_2@#make install

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@install时会提示@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sapi/cli/PHP不可执行,这是肯定的,因为@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@make生成的是@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@arm版的@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP,在本地执行不了,这时利用上篇博客方法在相应的地方修改路径,或者将@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@arm版的@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP备份@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP-backup,再将本地编译好的@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP拷贝到@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sapi/cli/下,再@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@make install,就可已安装成功了最后将@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP-backup拷贝到@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@/usr/local/PHP/bin/下,覆盖原来的@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP,再将@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP.ini-dist贝到@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@/usr/local/PHP/lib/下,并改名为@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP.ini

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@4,因为目前的@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@/PHP/文件过大,貌似@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@20+M吧,放到板子上太占空间,所以@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@strip下,什么意思@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@google之。@H_301_2@@H_301_2@

@H_301_2@@H_301_2@#Arm-linux-strip /usr/local/PHP/bin/PHP@H_301_2@@H_301_2@

@H_301_2@@H_301_2@#Arm-linux-strip /usr/local/PHP/bin/php-cgi

再看@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@/PHP的大小,变小了吧?@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@:-)@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@5,将整个@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@/usr/local/PHP/文件拷贝到板子上@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@6,最后修改@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@apache配置文件@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@httpd.conf,本文是基于上篇博客写的,由于只动了@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP所以修改部分是针对上篇而言,请大家注意!

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@scriptalias /PHP4/ “/usr/local/PHP/bin/”

改为:@H_301_2@@H_301_2@

@H_301_2@@H_301_2@scriptalias /PHP5/ “/usr/local/PHP/bin/”@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@Action application/x-httpd-PHP "/PHP4/php-cgi"

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@改为@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@:@H_301_2@@H_301_2@

@H_301_2@@H_301_2@Action application/x-httpd-PHP "/PHP5/php-cgi"

写个@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHPinfo测试页面测试下吧,应该可以的,如果有问题,仔细看看哪里错了。。要想@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP能动态使用@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sqlite3,还需要做些工作

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@1,下载@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP-sqlite3的压缩包,解压@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@2,进入该目录,@H_301_2@@H_301_2@#/usr/local/PHP/bin/PHPize@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@3@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@#CC=arm-linux-gcc ./configure –with-PHP-config=/usr/local/PHP/bin/PHP-config@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@–with-sqlite3=/usr/local/sqlite

@H_301_2@@H_301_2@4,#make&&make install@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@5,生成@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@sqlite3.so放到板子上@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@/usr/local/PHP/lib@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@6修改@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@PHP.ini增加如下语句:@H_301_2@@H_301_2@extenstion=sqlite3.so

OK!!!!!!

转载:http://blog.chinaunix.net/uid-14735472-id-2978639.html

猜你在找的Sqlite相关文章