基于ARM嵌入式WEB开发环境的搭建Word下载.docx
《基于ARM嵌入式WEB开发环境的搭建Word下载.docx》由会员分享,可在线阅读,更多相关《基于ARM嵌入式WEB开发环境的搭建Word下载.docx(31页珍藏版)》请在冰豆网上搜索。
本文档旨在讲述如何在ARM11平台上搭建WEB开发环境的详细过程,主要是针对嵌入式下的WEB开发环境的搭建。
对象:
嵌入式WEB开发环境搭建人员、界面设计人员、PHP库接口封装人员
参考文档:
《基于Linux下的WEB设计学习文档(20110728).doc》-
《基于ARM11嵌入式web开发环境的搭建(20110521).doc》-
《StmAtmV3.0嵌入式WEBPHP扩展库设计(20110727).doc》-
《Tiny6410刷机指南-20110810.pdf》
文档说明:
对主机WEB开发环境的搭建,主要有以下几个用处:
◆单独进行界面设计时,通过主机平台进行HTML、PHP开发代;
主要原因:
HTML、PHP语言并不依赖开发环境;
◆在ARM11嵌入式WEB开发环境下,需要依赖主机WEB开发环境中的某些编译通过后的代码;
其主要原因是:
交叉编译时有些代码在主机上编不过,借助主机编译通过的一些二进制文件便迎刃而解。
对基于ARM11嵌入式WEB开发环境的搭建,本文档给出每个步骤可能出现的错误提示和解决方案;
如果有一些新出现的问题,可以通过网上搜索解决方法解决。
2、主机web开发环境搭建
主机WEB环境搭建需要如下开发工具:
(熟悉搭建的基本原理及相关配置)
●开发平台:
Fedora+Linux2.6
●编译环境:
gcc
●服务器开发包:
apache-1.3.39获取方式:
http:
//www.apache.org/
●Php开发包:
php-4.4.8获取方式:
2.1、安装开发包
假设开发包apache-1.3.39与php-4.4.8已拷贝到/usr/local/目录下。
其中,apache服务器安装目录/usr/local/apache_test/apache,php安装目录/usr/local/apache_test/php(对安装目录用户可自定义指定,此处只是给出参考目录)。
运行以下linux命令:
[yanghong@yanghongstm_atm]$cd/usr/local/
[yanghong@yanghonglocal]$mkdirapache_test//创建安装目录
2.1.1安装apache-1.3.39
[yanghong@yanghonglocal]$tarxvfapache_1.3.39.tar.gz//解压缩安装apache开发包
[yanghong@yanghonglocal]$cdapache_1.3.39
[yanghong@yanghongapache_1.3.39]$./configure--prefix=/usr/local/apache_test/apache--enable
-module=so//apache安装配置,主要是指定apache安装路径
[yanghong@yanghongapache_1.3.39]$make
[yanghong@yanghongapache_1.3.39]$makeinstall
2.1.2安装php-4.4.8
[yanghong@yanghongapache_1.3.39]$cd/usr/local/
[yanghong@yanghonglocal]$tar-jxvfphp-4.4.8.tar.bz2//解压缩安装php开发包
[yanghong@yanghonglocal]$cdphp-4.4.8
[yanghong@yanghongphp-4.4.8]$./configure--prefix=/usr/local/apache_test/php--with-apxs=/us/local
/apache_test/apache/bin/apxs//php安装配置,主要是指定php安装路径,并指定apache与php的依赖关系
[yanghong@yanghongphp-4.4.8]$make
[yanghong@yanghongphp-4.4.8]$makeinstall
2.2、配置httpd.conf与php.ini文件
Apache服务器的配置工作,主要是体现在httpd.conf文件中,它将指定apache服务器的文件路径及其相互的依赖关系,以及如何与PHP解析器相关联;
php的配置工作,其中在本项目中,最主要体现在php.ini文件中,指定php扩展库的路径。
注:
对每次更新配置,需要重新启动服务器进程(./apachectlstart)。
2.2.1配置httpd.conf
1、打开目录/usr/local/apache_test/apache/conf
2、打开httpd.conf文件进行如下配置:
(其中1111标识为需要添加的部分)
ServerTypestandalone
#Root服务所在目录
ServerRoot"
/usr/local/apache_test/apache"
PidFile/usr/local/apache/logs/httpd.pid
ScoreBoardFile/usr/local/apache/logs/httpd.scoreboard
Timeout300
KeepAliveOn
MaxKeepAliveRequests100
KeepAliveTimeout15
MinSpareServers5
MaxSpareServers10
StartServers5
MaxClients150
MaxRequestsPerChild0
#登陆服务器的端口号与用户名
Port8080
Usernobody
Groupnobody
ServerAdminyanghong_63@
#网站根目录
DocumentRoot"
/usr/local/apache_test/apache/htdocs"
<
Directory/>
OptionsFollowSymLinks
AllowOverrideNone
/Directory>
Directory"
/home/webroot"
>
OptionsIndexesFollowSymLinksMultiViews
Orderallow,deny
Allowfromall
IfModulemod_userdir.c>
UserDirpublic_html
/IfModule>
IfModulemod_dir.c>
#apache支持php解析
DirectoryIndexindex.html
DirectoryIndexindex.php
DirectoryIndexindex.php3
DirectoryIndexindex.phtml
AccessFileName.htaccess
Files~"
^\.ht"
Denyfromall
SatisfyAll
/Files>
UseCanonicalNameOn
IfModulemod_mime.c>
TypesConfig/usr/local/apache/conf/mime.types
DefaultTypetext/plain
IfModulemod_mime_magic.c>
MIMEMagicFile/usr/local/apache/conf/magic
HostnameLookupsOff
ErrorLog/usr/local/apache/logs/error_log
LogLevelwarn
LogFormat"
%h%l%u%t\"
%r\"
%>
s%b\"
%{Referer}i\"
\"
%{User-Agent}i\"
"
combined
s%b"
common
%{Referer}i->
%U"
referer
%{User-agent}i"
agent
CustomLog/usr/local/apache/logs/access_logcommon
ServerSignatureOn
IfModulemod_alias.c>
Alias/icons/"
/usr/local/apache/icons/"
<
/usr/local/apache/icons"
OptionsIndexesMultiViews
Alias/manual/"
/usr/local/apache/htdocs/manual/"
/usr/local/apache/htdocs/manual"
OptionsIndexesFollowSymlinksMultiViews
#指定php解析器的路径及类型
ScriptAlias/cgi-bin/"
/usr/local/apache-test/apache/cgi-bin/"
ScriptAlias/php4/"
/usr/local/apache_test/php/bin/"
#注意"
/usr/local/apache-test/php/bin/"
中最后一个"
/"
不可少
/usr/local/apache/cgi-bin"
OptionsNone
IfModulemod_autoindex.c>
IndexOptionsFancyIndexing
AddIconByEncoding(CMP,/icons/compressed.gif)x-compressx-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.gifcore
AddIcon/icons/back.gif..
AddIcon/icons/hand.right.gifREADME
AddIcon/icons/folder.gif^^DIRECTORY^^
AddIcon/icons/blank.gif^^BLANKICON^^
DefaultIcon/icons/unknown.gif
ReadmeNameREADME.html
HeaderNameHEADER.html
IndexIgnore.?
?
**~*#HEADER*README*RCSCVS*,v*,t
AddLanguageda.dk
AddLanguagenl.nl
AddLanguageen.en
AddLanguageet.ee
AddLanguagefr.fr
AddLanguagede.de
AddLanguageel.el
AddLanguagehe.he
AddCharsetISO-8859-8.iso8859-8
AddLanguageit.it
AddLanguageja.ja
AddCharsetISO-2022-JP.jis
AddLanguagekr.kr
AddCharsetISO-2022-KR.iso-kr
AddLanguagenn.nn
AddLanguageno.no
AddLanguagepl.po
AddCharsetISO-8859-2.iso-pl
AddLanguagept.pt
AddLanguagept-br.pt-br
AddLanguageltz.lu
AddLanguageca.ca
AddLanguagees.es
AddLanguagesv.sv
AddLanguagecs.cz.cs
AddLanguageru.ru
AddLanguagezh-TW.zh-tw
AddCharsetBig5.Big5.big5
AddCharsetWINDOWS-1251.cp-1251
AddCharsetCP866.cp866
AddCharsetISO-8859-5.iso-ru
AddCharsetKOI8-R.koi8-r
AddCharsetUCS-2.ucs2
AddCharsetUCS-4.ucs4
AddCharsetUTF-8.utf8
IfModulemod_negotiation.c>
LanguagePriorityendanletfrdeelitjakrnoplptpt-brrultzcaessvtw
AddTypeapplication/x-tar.tgz
AddTypeapplication/x-httpd-php.php3
AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php.phtml
AddEncodingx-compress.Z
AddEncodingx-gzip.gz.tgz
Actionapplication/x-httpd-php"
/php4/php"
IfModulemod_setenvif.c>
BrowserMatch"
Mozilla/2"
nokeepalive
MSIE4\.0b2;
nokeepalivedowngrade-1.0force-response-1.0
RealPlayer4\.0"
force-response-1.0
Java/1\.0"
JDK/1\.0"
2.2.2配置php.ini文件
把/usr/local/php-4.4.8/php.ini-dist复制到/usr/local/apache_test/php/lib,并改名为php.ini,找到
register_globals=Off
修改为
register_globals=On
保存就可以了。
2.3、联机调试
[yanghong@yanghongbin]$./apachectlstart
[TueMay1711:
08:
492011][alert]httpd:
Couldnotdeterminetheserver'
sfullyqualifieddomainname,using127.0.0.1forServerName
./apachectlstart:
httpdstarted
错误提示:
需要修改httpd.conf文件中的Servername
解决方法:
去掉其注释符#即可
Apache1.3.39与PHP-4.4.8在PC机上测试已通过,且apache能解析PHP代码。
其测试结果如下图所示。
3、基于ARM11嵌入式web开发环境的搭建
●开发平台ARM11+Linux2.6
●交叉编译环境arm-linux-gcc//需安装交叉编译环境
●操作系统服务器开发包apache-1.3.39
●Php开发包php-4.4.8
3.1配置ARM11的交叉编译环境
1、交叉编译工具包:
arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz
2、配置步骤:
●[root@localhostlocal]#cd/tmp
●[root@localhosttmp]#tarxvfarm-linux-gcc-4.5.1-v6-vfp-20101103.tgz-C/
●[root@localhost/]#cd/opt/FriendlyARM/toolschain/4.5.1/
●[root@localhost4.5.1]#pwd
●复制路径:
/opt/FriendlyARM/toolschain/4.5.1
●然后把编译器的路径加入系统环境变量:
●[root@localhost4.5.1]#vim/root/.bashrc
●编辑/root/.bashrc文件,在最后一行添加编译器路径:
exportPATH=$PATH:
/opt/FriendlyARM/toolschain/4.5.1/bin/;
如下图所示:
●
●使环境变量生效
●root@localhost4.5.1]#source/root/.bashrc
●[root@localhost4.5.1]#arm-linux-gcc–v检查编译器是否成功,出现以下界面则按照成功:
●到这步就完全安装完arm-linux-gcc交叉编译器了!
3.2、安装开发包
3.1.1交叉编译apache-1.3.39
对嵌入式web的开发需要进行交叉编译,交叉编译apache总体上需要两个步骤:
1.编译本机代码;
2.交叉编译能在ARM11上运行的APACHE和PHP。
这是因为编译apache时,需要使用本机编译生成的工具(可执行二进制文件)作为交叉编译时使用,交叉编译的工具不能在PC上运行(可执行程序的环境不同)。
因此,需要借用本机编译生成的工具。
假设为本机编译的apache代码已经解压缩到/usr/local/apache-pc/apache_1.3.39,为ARM11编译的apache代码已经解压缩到/usr/local/apache-ARM11/apache_1.3.39,交叉编译器arm-linux-gcc已设缺省路径,具体步骤还是用命令来说明:
本机编译apache
[yanghong@yanghonglocal]$cdapache-pc/apache_1.3.39
[yanghong@yanghongapache_1.3.39]$./configure
因为仅仅是借用本机代码,所以不用设置configure配置参数
[yanghong@yanghongapache_1.3.39]$make
交叉编译apache
交叉编译apache的安装位置为/usr/local/apache-ARM11/apache
[yanghong@yanghongapache_1.3.39]$cd/usr/local/apache-ARM11/apache_1.3.39
[yanghong@yanghongapache_1.3.39]$CC=arm-linux-gcc./configure--prefix=/usr/local/apache-arm11/apache--enable-module=so
注1:
会出来如下错误提示,因为交叉编译的生成的testfunc这个工具不能在PC上执行,可以不理会它。
解决方法1:
(注意此处先修改Makefile的使用权限,不然修改无效)
打开/usr/local/apache-ARM11/apache_1.3.39/src/main/Makefile这个文件,找到这两段代码
uri_delims.h:
gen_uri_delims
./gen_uri_delims>
uri_delims.h
test_char.h:
ge