本文能够避免交叉编译的时出现ZLIB extension requires zlib >=1.09
交叉编译libxml2和zlib,扩展arm--gcc的lib库。其中libxml2是PHP5安装必须的库文件
1.首先交叉编译zlib。
-
CC=arm-linux-gcc
-
./configure --host=arm-linux --prefix=/usr/local/zlib /你安装的目录
-
make
-
make install
2. 接着交叉编译libxml2
-
CC=arm-linux-gcc
-
./configure --host=arm-linux --prefix=/usr/local/libxml2 /你安装的目录
-
make
-
make install
3. 交叉编译php
-
CC=arm-linux
-
./configure --host=arm-linux --prefix=/usr/local/php --disable-all --enable-sockets --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib /重点 需要链接到你安装的目录
-
make
-
make install
4.因为arm资源紧张,我们需要精简,去掉调试信息。在/bin/执行以下命令
-
arm-linux-strip php
-
arm-linux-strip php-cgi
5.将PHP源码包中php-.ini-dist文件复制到/usr/local/php-arm/lib下并改名为php.ini 因为指定了prefix,php缺省会去/opt/php/lib 下找到php.ini
6.将编译好的PHP拷贝到目标板上
7.要让BOA能够通过CGI执行PHP,修改/etc/boa/boa.conf,修改
CGIPath为:CGIPath /bin:/opt/php5/bin
最后添加一行:
AddType application/x-httpd-cgi php
8.测试
在/www建立test.php
#!/opt/php5/bin/php
echo "X-Powered-By: PHP/5.2.17\n";
echo "Content-type: text/html\n\n";
?>
Hello!
echo $_SERVER["QUERY_STRING"];
?>
在浏览器中可以打开!
注意:
按上述弄好以后,在命令行下执行php-cgi完全正常,但写成脚本就是不行,最后发现只能用php,即脚本最前面一行必须是:
#!/opt/php5/bin/php
而不能是
#!/opt/php5/bin/php-cgi
那么每个文件最前面必须用下面几行返回必须的文件头了:
echo "X-Powered-By: PHP/5.2.17\n";
echo "Content-type: text/html\n\n";
?>
阅读(1356) | 评论(0) | 转发(0) |