Linux应用程序开发(一)---移植thttpd+Sqlite3+PHP5到arm linux(4)移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: Cross compiling thttpd-2.21b + php-5.2.1 接上篇 【16】在开发板终端进行测试 (1)创建数据库文件test.db [root@mini2440 /]#cd /home/www #sqlite3 test.db (2)创建表 sqlite> create table students(id integer,name text,age integer); (3)删除表 sqlite> drop table students (4)查看表结构 sqlite> create table students(id integer,name text,age integer); (5)插入列 sqlite> alter table students add cul; (6)插入表记录 sqlite> insert into students values(1,'aa',10,0,'m'); (7)重命名表 sqlite> alter table students rename to stu; (8)删除某一列,这为列cul sqlite> begin transaction; (9)退出程序 sqlite> .quit sqlite数据库操作测试 【17】在C代码中进行操作测试 这里以SQLite官方站点http://的quick start文档中的测试程序为例对移植到ARM-Linux上的SQLite3进行测试。该程序清单如下: int main(int argc, char **argv) sqlite3 *db; fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); 使用如下命令编译测试程序: 交叉编译时采用arm-linux-gcc -I /……(安装路径)/include -L/……(安装路径)/lib -o target src -lsqlite3 arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L /nfsboot/rootfs/usr/local/lib/ -I /nfsboot/rootfs/usr/local/include/ 3、在上面新建的数据库目录下测试: id = 2 [root@mini2440 www]#
【18】在php代码中进行操作测试 thttpd+Sqlite3+PHP5综合测试 (1)访问权限修改 开发板/home/www/html目录下的测试文件目前只有root用户有访问权限,而客户是以www用户身份进行访问的,因此需要让www用户也具有访问权限 [root@mini2440 /]#chmod a+rx /home/www/html/test.php test.php的内容如下: <?php $dbh = new PDO('sqlite:test.db'); ?> Array ( [0] => Array ( [id] => 1 [0] => 1 [name] => aa [1] => aa [age] => 10 [2] => 10 [sex] => m [3] => m ) [1] => Array ( [id] => 2 [0] => 2 [name] => bb [1] => bb [age] => 11 [2] => 11 [sex] => f [3] => f ) ) 终于在浏览器中看到了数据库test.db中的内容。这说明 thttpd+Sqlite3+PHP5已经在正常工作了。 【19】在php中安装pear扩展库 安装pear需要使用php命令来执行一个go-pear.php的文件来完成: 将整个网页内容复制下来并存储为go-pear.php即可。 我们这里可以使用vim命令建立go-pear.php文件,将内容复制进去,保存,增加执行权限即可。 在开发板终端用php命令执行go-pear.php: [root@mini2440 /]#/usr/local/bin/php go-pear.php 出现上面错误的原因是,外部动态库加载有两种方式,一种是通过编译指定 -ldl 将外部extension目录直接编译进php,另一种是通过php的ini文件指定,这里的错误指示出外部动态链接库已经被编译进php了,还在 php.ini指定,因而出错。打开php.ini文件,注释到下面几行(参考http://www./p520.php) ; Directory in which the loadable extensions (modules) reside. 然后再开发板终端用php命令执行go-pear.php: [root@mini2440 /]#/usr/local/bin/php go-pear.php 遗留问题:如何在交叉安装php的pear扩展库。
接下来,让PHP5支持java在arm linux运行 |
|