【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 嵌入式web服务器+php+sqlite的移植

共4条 1/1 1 跳转至

嵌入式web服务器+php+sqlite的移植

菜鸟
2019-08-10 19:09:45    评分

目前需要移植如题目上的一个web服务器,要求支持php和sqlite,考虑到参考资料还有板子内存的问题,现在初步选择了BOA+PHP+Sqlite的方案。但是中间存在一些问题,如下面所示。
下图是电脑网页显示的信息:


下图是板子终端显示的错误信息

请问下论坛里面的各位大佬,这种问题该怎么解决呢?smpeizi.com
目前可以确定的是,1)单单是BOA的移植,在修改了boa.conf,是没有问题的,可以识别html和cgi文件,正常显示index.html和helloworld.cgi,如图


2)对于php的移植,这里我选择了php-5.5.5版本的,关于交叉编译时的配置选项如下:aiidol.com
  1. #! /bin/sh

  2. ./configure  \

  3. --host=ARM-none-linux-gnueabi \

  4. --prefix=/usr/local/php \

  5. --enable-shared=no  \

  6. --disable-shared \

  7. --enable-static=yes \

  8. --enable-sockets  \

  9. --disable-all \

  10. --enable-pdo \

  11. --enable-json \

  12. --disable-ipv6 \

  13. --enable-sqlite-utf8 \

  14. --with-libxml-dir=/usr/local/libxml2 \

  15. --with-openssl-dir=/usr/local/openssl/include/openssl \

  16. --with-zlib-dir=/usr/local/zlib \

  17. --with-config-file-scan-dir=/usr/local/appweb \

  18. --with-iconv-dir=/usr/local/libiconv

  19. #这里我之前已经交叉编译并安装了xml2。openssl。zlib。iconv库

复制代码最后得到PHP安装后的目录/usr/local/php,并且将make源码包里面的php.ini-development复制到该安装目录的lib下,将/usr/local/php下的php安装目录打包,依然放在开发板下的/usr/local/php。
3)但是,我把自己测试的test1.php或者test2.php文件(两个都是用来测试的小栗子)放在/var/www下,用电脑访问,结果就出现了最上面的错误,3sjtw.com
这是test1.php

  1. #! /usr/local/php/bin/php

  2. <?php

  3. echo "X-Powered-By: PHP/5.5.5\n";

  4. echo "Content-type: text/html\n\n";

  5. ?>

  6. <html>

  7. <body>

  8. Hello!

  9. <?php

  10. echo $_SERVER["QUERY_STRING"];

  11. ?>

  12. </body>

  13. </html>

复制代码这是test2.php

  1. #! /usr/local/php/bin/php

  2. <?php 

  3.     phpinfo(); 

  4. ?>

复制代码这到底是怎么回事啊?为什么别人都移植的好好的,而我这就不行了呢????请大佬帮忙看下,到底是哪个方面出了问题。
4)我的板子只能静态编译,所以我编译的boa、php、php-cgi都是静态可执行文件,里面所有的库我也用的都是静态库,编译的时候都是静态链接,在更改boa.conf如下:idiancai.com

  1. CGIPath /bin:/usr/bin:/usr/local/php/bin


  2. # SinglePostLimit: The maximum allowable number of bytes in 

  3. # a single POST.  Default is normally 1MB.


  4. # AddType: adds types without editing mime.types

  5. # Example: AddType type extension [extension ...]


  6. # Uncomment the next line IF you want .cgi files to execute from anywhere

  7. #AddType application/x-httpd-cgi cgi


  8. # Redirect, Alias, and ScriptAlias all have the same semantics -- they

  9. # match the beginning of a request and take appropriate action.  Use

  10. # Redirect for other servers, Alias for the same server, and ScriptAlias

  11. # to enable directories for script execution.


  12. # Redirect allows you to tell clients about documents which used to exist in

  13. # your server's namespace, but do not anymore. This allows you to tell the

  14. # clients where to look for the relocated document.

  15. # Example: Redirect /bar http://elsewhere/feh/bar


  16. # Aliases: Aliases one path to another.

  17. # Example: Alias /path1/bar /path2/foo


  18. Alias /doc /usr/doc


  19. # ScriptAlias: Maps a virtual path to a directory for serving scripts

  20. # Example: ScriptAlias /htbin/ /www/htbin/


  21. ScriptAlias /cgi-bin/ /var/www/cgi-bin/

  22. ScriptAlias /php/ /var/www/


  23. AddType application/x-httpd-cgi php

复制代码5)大佬们还有其他的方案吗?可以用appweb或者apache代替boa进行实现,只要别太大内存就好。请大佬们动动小手解决这个简单的问题,只要您在这提的宝贵意见我尝试后,或者你用appweb或者apache代替boa,再加上php和sqlite交叉编译后,在我的板子上测试成功,必定有偿感谢!!




工程师
2019-08-11 20:33:34    评分
2楼

不错不错


助工
2019-08-11 20:41:55    评分
3楼

很详细的教程!


助工
2019-08-11 20:50:15    评分
4楼

学一下


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]