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

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


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



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



2)对于php的移植,这里我选择了php-5.5.5版本的,关于交叉编译时的配置选项如下:

#! /bin/sh
./configure \
--host=arm-none-linux-gnueabi \
--prefix=/usr/local/php \
--enable-shared=no \
--disable-shared \
--enable-static=yes \
--enable-sockets \
--disable-all \
--enable-pdo \
--enable-json \
--disable-ipv6 \
--enable-sqlite-utf8 \
--with-libxml-dir=/usr/local/libxml2 \
--with-openssl-dir=/usr/local/openssl/include/openssl \
--with-zlib-dir=/usr/local/zlib \
--with-config-file-scan-dir=/usr/local/appweb \
--with-iconv-dir=/usr/local/libiconv
#这里我之前已经交叉编译并安装了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下,用电脑访问,结果就出现了最上面的错误,
这是test1.php

#! /usr/local/php/bin/php
<?php
echo "X-Powered-By: PHP/5.5.5\n";
echo "Content-type: text/html\n\n";
?>
<html>
<body>
Hello!
<?php
echo $_SERVER["QUERY_STRING"];
?>
</body>
</html>

这是test2.php

#! /usr/local/php/bin/php
<?php
phpinfo();
?>


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

CGIPath /bin:/usr/bin:/usr/local/php/bin

# SinglePostLimit: The maximum allowable number of bytes in
# a single POST. Default is normally 1MB.

# AddType: adds types without editing mime.types
# Example: AddType type extension [extension ...]

# Uncomment the next line if you want .cgi files to execute from anywhere
#AddType application/x-httpd-cgi cgi

# Redirect, Alias, and ScriptAlias all have the same semantics -- they
# match the beginning of a request and take appropriate action. Use
# Redirect for other servers, Alias for the same server, and ScriptAlias
# to enable directories for script execution.

# Redirect allows you to tell clients about documents which used to exist in
# your server's namespace, but do not anymore. This allows you to tell the
# clients where to look for the relocated document.
# Example: Redirect /bar http://elsewhere/feh/bar

# Aliases: Aliases one path to another.
# Example: Alias /path1/bar /path2/foo

Alias /doc /usr/doc

# ScriptAlias: Maps a virtual path to a directory for serving scripts
# Example: ScriptAlias /htbin/ /www/htbin/

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /php/ /var/www/

AddType application/x-httpd-cgi php



5)大佬们还有其他的方案吗?可以用appweb或者apache代替boa进行实现,只要别太大内存就好。请大佬们动动小手解决这个简单的问题,只要您在这提的宝贵意见我尝试后,或者你用appweb或者apache代替boa,再加上php和sqlite交叉编译后,在我的板子上测试成功,必定有偿感谢唯一要求:静态,内存尽量小,另外,尽量要快。。。
...全文
221 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vanau 2019-08-11
  • 打赏
  • 举报
回复
没有人给出解释吗?
Vanau 2019-08-09
  • 打赏
  • 举报
回复
现在我还有几个问题: 1.是boa对php支持的不够好吗? 2.是我的boa.conf设置的有问题吗? 3.我也比葫芦画瓢把php.ini-development复制到该安装目录/usr/local/php/lib下,是这一步有问题吗?如果是,那php.ini有什么作用和意义呢? 4.我也是静态编译php5.5.5的,是这个方面的原因吗?

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧