BOA+PHP在Tiny6410上的移植

BOA的移植不存在太大問題,就很少說了,須要在網上找一下,卻是在移植PHP時存在較多問題,下面把成功的過程說一下。php

PHP用的是5.2.17沒有用最新的,最新的編譯有點問題,用的前一個穩定版本。html

一、下載php-5.2.17.tar.bz2linux

二、解壓到/vptempsql

    #tar -jxv -f php-5.2.17.tar.bz2 -C /vptemp瀏覽器

三、編譯app

# cd /vptemp/php-5.2.17ide

#CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/php5 --disable-all --enable-pdo --with-sqlite3 --with-sqlite --with-pdo-sqlite --with-zlib --without-iconv測試

在作這個配置的時候出點問題,不知道爲何CC=arm-linux-gcc就是不對,配置出來的Makefile裏面仍是gcc,libtool也徹底不對,氣死了。重啓機子又折騰了半天,居然不知道怎麼弄的又能夠起做用了。命令行

#makesqlite

make的時候出現:undefined reference to dlopen、undefined reference to dlclose,解決方法:在makefile中EXTRA_LIBS以後加上-ldl

四、安裝

#make install

將PHP源碼包中php.ini-dist文件複製到/opt/php5/lib下並更名爲php.ini,由於指定了prefix,PHP缺省會去/opt/php5/lib下找php.ini

五、下載到Tiny6410

#cd /opt

#tar -jcv -f php5-e.tar.bz2 php5

將/opt/php5-e.tar.bz2文件件拷貝到arm板上的/opt目錄下,解壓:

#tar -jxv -f php5-e.tar.bz2 -C /opt

六、配置BOA

要讓BOA可以經過CGI執行PHP,修改/etc/boa/boa.conf,修改

CGIPath爲:CGIPath /bin:/opt/php5/bin

最後添加一行:

AddType application/x-httpd-cgi php

七、測試

在/www創建test.php

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

</body>
</html>

在瀏覽器中能夠打開!

 

注意:

按上述弄好之後,在命令行下執行php-cgi徹底正常,但寫成腳本就是不行,最後發現只能用php,即腳本最前面一行必須是:

#!/opt/php5/bin/php

而不能是

#!/opt/php5/bin/php-cgi

那麼每一個文件最前面必須用下面幾行返回必須的文件頭了:

<?php
echo "X-Powered-By: PHP/5.2.17\n";
echo "Content-type: text/html\n\n";
?>

原本這個能夠由php-cgi完成就能夠了,可是如今必須本身作一下了。

這能夠我通過半下午才總結出來的呀,不知道什麼地方的毛病呢!

相關文章
相關標籤/搜索