1、本文档旨在讲述如何在ARM11平台上搭建WEB开发环境的详细过程,主要是针对嵌入式下的WEB开发环境的搭建。 对象:嵌入式WEB开发环境搭建人员、界面设计人员、PHP库接口封装人员 参考文档: 基于Linux下的WEB设计学习文档(20110728).doc- 基于ARM11 嵌入式web开发环境的搭建(20110521).doc- StmAtmV3.0嵌入式WEB PHP扩展库设计(20110727).doc- Tiny6410刷机指南-20110810.pdf 文档说明:对主机WEB开发环境的搭建,主要有以下几个用处: 单独进行界面设计时,通过主机平台进行HTML、PHP开发代;主要原因:
2、HTML、PHP语言并不依赖开发环境; 在ARM11嵌入式WEB开发环境下,需要依赖主机WEB开发环境中的某些编译通过后的代码;其主要原因是:交叉编译时有些代码在主机上编不过,借助主机编译通过的一些二进制文件便迎刃而解。对基于ARM11嵌入式WEB开发环境的搭建,本文档给出每个步骤可能出现的错误提示和解决方案;如果有一些新出现的问题,可以通过网上搜索解决方法解决。2、主机web开发环境搭建主机WEB环境搭建需要如下开发工具:(熟悉搭建的基本原理及相关配置) 开发平台:Fedora + Linux 2.6 编译环境:gcc 服务器开发包:apache-1.3.39 获取方式:http:/www.
3、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命令:yanghongyanghong stm_atm$ cd /usr/local/yanghongyanghonglocal$ mkdir apache_test /创建安装目录2.1
4、.1安装apache-1.3.39 yanghongyanghong local $tar xvf apache_1.3.39.tar.gz /解压缩安装apache开发包yanghongyanghong local $ cd apache_1.3.39yanghongyanghong apache_1.3.39$./configure -prefix=/usr/local/apache_test/apache -enable-module=so /apache安装配置,主要是指定apache安装路径yanghongyanghong apache_1.3.39$ makeyanghongyan
5、ghong apache_1.3.39$ make install2.1.2安装php-4.4.8yanghongyanghong apache_1.3.39$cd /usr/local/yanghongyanghong local$ tar -jxvf php-4.4.8.tar.bz2 /解压缩安装php开发包yanghongyanghong local$cd php-4.4.8yanghongyanghong php-4.4.8$./configure -prefix=/usr/local/apache_test/php -with-apxs=/us/local/apache_test/
6、apache/bin/apxs /php安装配置,主要是指定php安装路径,并指定apache与php的依赖关系yanghongyanghong php-4.4.8$ makeyanghongyanghong php-4.4.8$ make install2.2、配置httpd.conf与php.ini文件Apache服务器的配置工作,主要是体现在httpd.conf文件中,它将指定apache服务器的文件路径及其相互的依赖关系,以及如何与PHP解析器相关联;php的配置工作,其中在本项目中,最主要体现在php.ini文件中,指定php扩展库的路径。注:对每次更新配置,需要重新启动服务器进程(
7、./apachectl start)。2.2.1 配置httpd.conf1、打开目录 /usr/local/apache_test/apache/conf2、打开httpd.conf文件进行如下配置:(其中1111标识为需要添加的部分)ServerType standalone#Root服务所在目录ServerRoot /usr/local/apache_test/apachePidFile /usr/local/apache/logs/httpd.pidScoreBoardFile /usr/local/apache/logs/httpd.scoreboardTimeout 300Keep
8、Alive OnMaxKeepAliveRequests 100KeepAliveTimeout 15MinSpareServers 5MaxSpareServers 10StartServers 5MaxClients 150MaxRequestsPerChild 0#登陆服务器的端口号与用户名Port 8080User nobodyGroup nobodyServerAdmin yanghong_63#网站根目录DocumentRoot /usr/local/apache_test/apache/htdocs Options FollowSymLinks AllowOverride Non
9、e/DirectoryDirectory /home/webroot Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from allIfModule mod_userdir.c UserDir public_html/IfModuleIfModule mod_dir.c#apache支持php解析 DirectoryIndex index.html DirectoryIndex index.php DirectoryIndex index.php3 DirectoryIndex index.phtmlAcces
10、sFileName .htaccessFiles .ht Deny from all Satisfy All/FilesUseCanonicalName OnIfModule mod_mime.c TypesConfig /usr/local/apache/conf/mime.typesDefaultType text/plainIfModule mod_mime_magic.c MIMEMagicFile /usr/local/apache/conf/magicHostnameLookups OffErrorLog /usr/local/apache/logs/error_logLogLev
11、el warnLogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti combineds %b common%Refereri - %U referer%User-agenti agentCustomLog /usr/local/apache/logs/access_log commonServerSignature OnIfModule mod_alias.c Alias /icons/ /usr/local/apache/icons/ IndexOptions FancyIndexing AddIconByEncoding (CMP,/i
12、cons/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
13、/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.
14、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/bl
15、ank.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
16、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
17、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 U
18、CS-4 .ucs4 AddCharset UTF-8 .utf8IfModule mod_negotiation.c 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 AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddEncoding x-
19、compress .Z AddEncoding x-gzip .gz .tgzAction application/x-httpd-php /php4/phpIfModule mod_setenvif.c BrowserMatch Mozilla/2 nokeepaliveMSIE 4.0b2; nokeepalive downgrade-1.0 force-response-1.0RealPlayer 4.0 force-response-1.0Java/1.0JDK/1.02.2.2 配置php.ini文件把/usr/local/php-4.4.8/php.ini-dist复制到/usr/
20、local/apache_test/php/lib,并改名为php.ini,找到register_globals = Off修改为register_globals = On保存就可以了。2.3、联机调试yanghongyanghong bin$ ./apachectl startTue May 17 11:08:49 2011 alert httpd: Could not determine the servers fully qualified domain name, using 127.0.0.1 for ServerName./apachectl start: httpd starte
21、d错误提示:需要修改httpd.conf文件中的Servername解决方法:去掉其注释符#即可Apache 1.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.83.1配置ARM11的交叉编译环境1、交叉编译工具包:arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz2、配置步骤: ro
22、otlocalhost local# cd /tmp rootlocalhost tmp# tar xvf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C / rootlocalhost /# cd /opt/FriendlyARM/toolschain/4.5.1/ rootlocalhost 4.5.1# pwd 复制路径:/opt/FriendlyARM/toolschain/4.5.1 然后把编译器的路径加入系统环境变量: rootlocalhost 4.5.1# vim /root/.bashrc 编辑/root/.bashrc文件,在最后一行添
23、加编译器路径:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin/;如下图所示: 使环境变量生效 rootlocalhost 4.5.1# source /root/.bashrc rootlocalhost 4.5.1# arm-linux-gcc v 检查编译器是否成功,出现以下界面则按照成功: 到这步就完全安装完arm-linux-gcc 交叉编译器了!3.2、安装开发包3.1.1交叉编译apache-1.3.39对嵌入式web的开发需要进行交叉编译,交叉编译apache总体上需要两个步骤:1.编译本机代码;2.交叉编译能在AR
24、M11上运行的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已设缺省路径,具体步骤还是用命令来说明: 本机编译apacheyanghongyanghong local$
25、 cd apache-pc/apache_1.3.39yanghongyanghong apache_1.3.39$ ./configure因为仅仅是借用本机代码,所以不用设置configure配置参数yanghongyanghong apache_1.3.39$make 交叉编译apache交叉编译apache的安装位置为/usr/local/apache-ARM11/apacheyanghongyanghong apache_1.3.39$ cd /usr/local/apache-ARM11/apache_1.3.39yanghongyanghong apache_1.3.39$ CC=
26、arm-linux-gcc ./configure -prefix=/usr/local/apache-arm 11/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.htest_char.h: ge
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1