




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM11嵌入式WEB开发环境的搭建文件编号:CYDD-WEBJM受控状态:受控程序版本:受控期限:永久起草人:起草日期:审核人:审核日期:批准人:批准日期:分发号:CYDD-110303分发日期:密级:机密版权所有 不得复制术有限公司书面许可,任何人不得复制或泄露这些信息给其他未经授权的人。StmAtmV3.0 PHP库接口说明 嵌入式WEB开发文档控制记录序号修改状态修改内容修改人完成时间V1.0创建文档2011-11-11重庆重邮东电通信技术有限公司第 2 页 共31页基于ARM11嵌入式WEB开发环境的搭建 嵌入式WEB开发 第 31 页 共 31 页 编写:杨洪目录文档控制记录21、引言32、主机web开发环境搭建52.1、安装开发包52.1.1安装apache-1.3.3952.1.2安装php-4.4.852.2、配置httpd.conf与php.ini文件52.2.1 配置httpd.conf62.2.2 配置php.ini文件102.3、联机调试103、基于ARM11嵌入式web开发环境的搭建113.1配置ARM11的交叉编译环境113.2、安装开发包133.1.1交叉编译apache-1.3.39133.1.2交叉编译PHP163.2、配置httpd.conf与php.ini文件213.2.1配置httpd.conf213.2.2配置php.ini253.3、联机调试254、Apache与php文件结构294.1、Apache文件结构294.2、PHP文件结构301、引言目的:本文档旨在讲述如何在ARM11平台上搭建WEB开发环境的详细过程,主要是针对嵌入式下的WEB开发环境的搭建。对象:嵌入式WEB开发环境搭建人员、界面设计人员、PHP库接口封装人员参考文档: 基于Linux下的WEB设计学习文档(20110728).doc- 基于ARM11 嵌入式web开发环境的搭建(20110521).doc- StmAtmV3.0嵌入式WEB PHP扩展库设计(20110727).doc- Tiny6410刷机指南-20110810.pdf文档说明:对主机WEB开发环境的搭建,主要有以下几个用处:u 单独进行界面设计时,通过主机平台进行HTML、PHP开发代;主要原因:HTML、PHP语言并不依赖开发环境;u 在ARM11嵌入式WEB开发环境下,需要依赖主机WEB开发环境中的某些编译通过后的代码;其主要原因是:交叉编译时有些代码在主机上编不过,借助主机编译通过的一些二进制文件便迎刃而解。对基于ARM11嵌入式WEB开发环境的搭建,本文档给出每个步骤可能出现的错误提示和解决方案;如果有一些新出现的问题,可以通过网上搜索解决方法解决。2、主机web开发环境搭建主机WEB环境搭建需要如下开发工具:(熟悉搭建的基本原理及相关配置)l 开发平台:Fedora + Linux 2.6l 编译环境:gccl 服务器开发包:apache-1.3.39 获取方式:/l Php开发包:php-4.4.8 获取方式:/downloads.php2.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.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$ makeyanghongyanghong 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/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扩展库的路径。注:对每次更新配置,需要重新启动服务器进程(./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 300KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 15MinSpareServers 5MaxSpareServers 10StartServers 5MaxClients 150MaxRequestsPerChild 0#登陆服务器的端口号与用户名Port 8080User nobodyGroup nobodyServerAdmin yanghong_63163.com#网站根目录DocumentRoot /usr/local/apache_test/apache/htdocs Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all UserDir public_html#apache支持php解析 DirectoryIndex index.html DirectoryIndex index.php DirectoryIndex index.php3 DirectoryIndex index.phtmlAccessFileName .htaccess Order allow,deny Deny from all Satisfy AllUseCanonicalName On TypesConfig /usr/local/apache/conf/mime.typesDefaultType text/plain MIMEMagicFile /usr/local/apache/conf/magicHostnameLookups OffErrorLog /usr/local/apache/logs/error_logLogLevel warnLogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti combinedLogFormat %h %l %u %t %r %s %b commonLogFormat %Refereri - %U refererLogFormat %User-agenti agentCustomLog /usr/local/apache/logs/access_log commonServerSignature 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# 指定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/ 中最后一个/不可少 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 AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddEncoding x-compress .Z AddEncoding x-gzip .gz .tgzAction application/x-httpd-php /php4/php 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.02.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、联机调试yanghongyanghong bin$ ./apachectl startTue May 17 11:08:49 2011 alert httpd: Could not determine the servers fully qualified domain name, using for ServerName./apachectl start: httpd started错误提示:需要修改httpd.conf文件中的Servername解决方法:去掉其注释符#即可Apache 1.3.39与PHP-4.4.8在PC机上测试已通过,且apache能解析PHP代码。其测试结果如下图所示。3、基于ARM11嵌入式web开发环境的搭建主机WEB环境搭建需要如下开发工具:l 开发平台 ARM11+Linux2.6l 交叉编译环境arm-linux-gcc /需安装交叉编译环境l 操作系统服务器开发包 apache-1.3.39l Php开发包 php-配置ARM11的交叉编译环境1、交叉编译工具包:arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz2、配置步骤:l rootlocalhost local# cd /tmpl rootlocalhost tmp# tar xvf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C /l rootlocalhost /# cd /opt/FriendlyARM/toolschain/4.5.1/l rootlocalhost 4.5.1# pwdl 复制路径:/opt/FriendlyARM/toolschain/4.5.1l 然后把编译器的路径加入系统环境变量:l rootlocalhost 4.5.1# vim /root/.bashrcl 编辑/root/.bashrc文件,在最后一行添加编译器路径:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin/;如下图所示:ll 使环境变量生效l rootlocalhost 4.5.1# source /root/.bashrc l rootlocalhost 4.5.1# arm-linux-gcc v 检查编译器是否成功,出现以下界面则按照成功:ll 到这步就完全安装完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已设缺省路径,具体步骤还是用命令来说明:l 本机编译apacheyanghongyanghong local$ cd apache-pc/apache_1.3.39yanghongyanghong apache_1.3.39$ ./configure因为仅仅是借用本机代码,所以不用设置configure配置参数yanghongyanghong apache_1.3.39$makel 交叉编译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=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: gen_test_char./gen_test_char test_char.h修改为uri_delims.h: gen_uri_delims/usr/local/apache-pc/apache_1.3.39/src/main/gen_uri_delims uri_delims.htest_char.h: gen_test_char/usr/local/apache-pc/apache_1.3.39/src/main/gen_test_char test_char.h这里借用了刚才编译生成的本机代码里的工具解决方法2:rootlocalhost main# cd /usr/local/apache-pc/apache_1.3.39/src/mainrootlocalhost main# cp gen_test_char gen_uri_delims /usr/local/apache-arm11/apache_1.3.39/src/main接下来执行:yanghongyanghongapache_1.3.39$make出现以下错误:解决办法:根据提示找到arm-linux-gcc相关文件下的getline函数所在地方,进行必要的注释,保证APACHE部分的getline函数处能够成功编译通过。Apache-1.3.39已编译好,下面是安装。yanghongyanghong apache_1.3.39 make install这样apache的文件就被安装到PC上的/usr/local/apache-arm11/apache文件夹下面了,安装成功结果如下图:3.1.2交叉编译PHP交叉编译php同样需要两个步骤:1.编译本机代码;2.利用本机代码进行交叉编译;原因不再重复,假设为本机编译的php代码已经解压缩到/usr/local/apache-pc/php-4.4.8,为ARM11编译的php代码已经解压缩到/usr/local/apache-ARM11/php-4.4.8,交叉编译器arm-linux-gcc已设缺省路径,具体步骤还是用命令来说明:l 本机编译php-4.4.8yanghongyanghong php-4.4.8$ cd /usr/local/apache-pc/php-4.4.8yanghongyanghong php-4.4.8$ ./configure yanghongyanghong php-4.4.8$ makel 交叉编译phpyanghongyanghong php-4.4.8$ cd /usr/local/apache-ARM11/php-4.4.8 yanghongyanghong php-4.4.8$CC=arm-linux-gcc ./configure -prefix=/usr/local/apache-arm11/php -with-apxs=/usr/local/apache-arm11/apache/bin/apxs 提示错误1:解决方法1:打开脚本/usr/local/apache-ARM11/php-4.4.8/configure,搜索“checking for Apache 1.x module support via DS0 through APXS”进行如下代码的注释。继续配置:yanghongyanghong php-4.4.8$CC=arm-linux-gcc ./configure -prefix=/usr/local/apache-arm11/php -with-apxs=/usr/local/apache-arm11/apache/bin/apxs 错误提示2:打开/usr/local/apache-ARM11/php-4.4.8/configure文件,搜索“can not run test program while cross compiling”,会搜索到很多个这样的结果: echo configure: error: can not run test program while cross compiling 1&2; exit 1; 把它们都改为 echo configure: error: can not run test program while cross compiling 1&2; 这样做的目的是直接无视交叉编译测试程序错误。接下来进行编译:yanghongyanghong php-4.4.8$ make错误提示3:此处会依次报出好几个缺少头文件的错误,经过仔细寻找,终于发现在/usr/local/apache-arm11/apache/include目录下。解决办法:3:根据错误提示,找到相关文件错误的位置,修改提示缺少文件出的绝对路径位置。编译通过后,会出现以下界面,表示编译完成:最后进行安装php:yanghongyanghong php-4.4.8$make install错误提示4:(此处原因不详,解决办法其实是试出来的)解决办法4:(居然用最先测试时候搭建的apache目录下得httpd可以在此处通过)rootlocalhost bin# cd /usr/local/apache_test/apache/binrootlocalhost bin# cp httpd /usr/local/apache-arm11/apache/bin/cp:是否覆盖“/usr/local/apache-arm11/apache/bin/httpd”? y继续:make install错误提示5:解决方法5:打开/usr/local/apache-arm11/php-4.4.8/Makefile,找到这段install-pear-packages: $(top_builddir)/sapi/cli/php$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) /usr/local/apache-ARM11/php-4.4.8/pear/install-pear.php -d $(peardir) -b $(bindir) /usr/local/apache-ARM11/php-4.4.8/pear/packages/*.tar利用刚本机编译的php文件,修改代码为install-pear-packages: /usr/local/apache-pc/php-4.4.8/sapi/cli/php/usr/local/apache-pc/php-4.4.8/sapi/cli/php $(PEAR_INSTALL_FLAGS) /usr/local/php-ARM11/php-4.4.8/pear/install-pear.php -d $(peardir) -b $(bindir) /usr/local/php-ARM11/php-4.4.8/pear/packages/*.tar继续安装: yanghongyanghong php-4.4.8$make install 出现以下界面安装成功:3.2、配置httpd.conf与php.ini文件需要修改配置文件,让apache和php能够链接起来工作。因为我不是把apache和php一起编译的,需要让apache认识“.php”这个扩展名,然后调用php。3.2.1配置httpd.conf执行命令yanghongyanghong php-4.4.8$cd /usr/local/apache-arm11/apache/conf打开目录/usr/local/apache-arm11/apache/conf配置文件httpd.conf,并将其修改为:ServerType standalone#Root服务所在目录ServerRoot /usr/local/apache-arm11/apachePidFile /usr/local/apache/logs/httpd.pidScoreBoardFile /usr/local/apache/logs/httpd.scoreboardTimeout 300KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 15MinSpareServers 5MaxSpareServers 10StartServers 5MaxClients 150MaxRequestsPerChild 0Port 8080User nobodyGroup nobodyServerAdmin yanghong_63163.com#网站根目录DocumentRoot /usr/local/apache-arm11/apache/htdocs Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all UserDir public_html DirectoryIndex index.html DirectoryIndex index.php DirectoryIndex index.php3 DirectoryIndex index.phtmlAccessFileName .htaccess Order allow,deny Deny from all Satisfy AllUseCanonicalName On TypesConfig /usr/local/apache/conf/mime.typesDefaultType text/plain MIMEMagicFile /usr/local/apache/conf/magicHostnameLookups OffErrorLog /usr/local/apache/logs/error_logLogLevel warnLogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti combinedLogFormat %h %l %u %t %r %s %b commonLogFormat %Refereri - %U refererLogFormat %User-agenti agentCustomLog /usr/local/apache/logs/access_log commonServerSignature 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/ ScriptAlias /php4/ /usr/local/apache-arm11/php/bin/# 注意 /usr/local/apache-arm11/php/bin/ 中最后一个/不可少# LoadModule foo_module libexec/mod_foo.so LoadModule php4_module libexec/libphp4.so 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 A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46103-2025航空航天用带沉头窝的MJ螺纹减小型封闭角形托板自锁螺母
- GB/T 46061-2025橡胶配合剂差示扫描量热法(DSC)测定加工油玻璃化转变温度
- 2025年生物医药创新药研发技术与医药市场前景研究报告
- 2025年化妆品行业个性化定制化妆品市场前景报告
- 2025年机器人行业人工智能机器人应用前景研究报告
- 2025年绿色环保行业可降解材料应用前景分析报告
- 2025年汽车行业智能驾驶技术前景展望报告
- 商场人员管理安全培训课件
- 天津市2025天津市机关后勤事务服务中心分支机构天津市迎宾馆招聘8人笔试历年参考题库附带答案详解
- 南开区2025天津南开大学继续教育学院招用劳务派遣制用工人员1人笔试历年参考题库附带答案详解
- 2025国庆节前安全教育培训
- 2025年国家电网公司招聘面试模拟题集与答案解析
- 农业农村部在京事业单位招聘考试真题2024
- 农村电商公共服务体系的建设与完善-以资阳市雁江区为例
- 校园招聘服务协议书范本
- 语音厅运营基础知识培训
- 汽车装饰用品购销合同(标准版)
- 停车场保安安全知识培训课件
- 富血小板血浆的临床应用幻灯片课件
- 大数据驱动下的档案信息管理系统研发与应用
- 盆腔炎性疾病护理查房
评论
0/150
提交评论