我们需要在ARM板上安装一些PHP。我已经成功地交叉编译了PHP 5和THTTPD,它们似乎都能在ARM板上良好运行,只是.php页面未被处理(如果在Web浏览器中进行“查看源代码”,您可以看到PHP代码)。
这必须是一个愚蠢的配置细节问题,我真的感觉我正在从胜利的口中夺取失败。任何帮助或聪明的想法将不胜感激!
以下是构建、部署和测试的步骤:
我的thttpd.conf文件如下:
我的步骤如下:
这必须是一个愚蠢的配置细节问题,我真的感觉我正在从胜利的口中夺取失败。任何帮助或聪明的想法将不胜感激!
以下是构建、部署和测试的步骤:
我的thttpd.conf文件如下:
dir=/srv/www
phppat=**
phpspat=**.php
logfile=/srv/www/logs/web.log
nochroot
port=80
我的步骤如下:
cd ~/packages/php/
tar xjvf php-5.2.1.tar.bz2
cd ~/packages/thttpd/
tar xzvf thttpd-2.21b.tar.gz
cd ~/packages/php/php-5.2.1/
mkdir install-arm
export CC=/bin/arm-linux-gcc
export CXX=/bin/arm-linux-cpp
./configure --host=i386-linux-gnu --target=arm --prefix=install-arm \
--disable-short-tags --without-mysql \
--without-pear --disable-all --disable-short-tags
--enable-force-cgi-redirect --enable-discard-path \
--with-thttpd=../../thttpd/thttpd-2.21b
make
make install
cd ~/packages/thttpd/thttpd-2.21b
export CC=/bin/arm-linux-gcc
export CXX=/bin/arm-linux-c++
export CPP=/bin/arm-linux-c++
./configure --host=i386-linux-gnu --target=arm --prefix=/srv/www
# I got compiling errors for thttpd.c caused by the ifdef condition not happening and
# an include file not added. Deleted the ifdef/end if and recompiled. This
# necessary for two files.
################ in file thttpd.c changed:
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
# to:
#include <fcntl.h>
############### in file fdwatch.c changed:
#ifdef HAVE_POLL_H
#include <poll.h>
#else /* HAVE_POLL_H */
#ifdef HAVE_SYS_POLL_H
#include <sys/poll.h>
#endif /* HAVE_SYS_POLL_H */
#endif /* HAVE_POLL_H */
# to:
#include <poll.h>
# also tried:
#include <sys/poll.h>
# (both work)
make
# to make sure we get 0 (success) despite the warnings:
echo $?
# no make install, all references indicated it's broken and I also got errors
# where directories with the same name prevented files from being written.
########## deployment to board
# copied "php" and "thttpd" executables in /usr/sbin using following command
# in Cutecom:
cd /usr/sbin
tftp -g -r php 192.168.1.25
tftp -g -r thttpd 192.168.1.25
chmod +x php
chmod +x thttpd
# unsure, should I get a libphp5.so ? Where is it?:
# tried:
# cd /usr/lib
# tftp -g -r libphp5.a 192.168.1.25
# chmod +rx
cd /srv/www
mkdir conf
cd conf
tftp -g -r thttpd.conf 192.168.1.25
cd /srv
/usr/sbin/thttpd -C /srv/www/conf/thttpd.conf
# HTML pages and images displayed fine, test.php is passed without pre-processing,
# contains:
# <?
# phpinfo();
# ?>
############## Testing if PHP works on the ARM board
root@arago:/srv/www/cgi-bin# php -v
PHP 5.2.1 (cli) (built: Sep 27 2010 10:59:59)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
root@arago:/srv/www/cgi-bin# php -r 'phpinfo();'
phpinfo()
PHP Version => 5.2.1
System => Linux arago 2.6.33-rc4 #1 PREEMPT Thu Mar 25 15:06:29 IST 2010 armv5tejl
Build Date => Sep 27 2010 11:30:59
Configure Command => './configure' '--host=i386-linux-gnu' '--target=arm'
'--prefix=install-arm' '--disable-short-tags' '--without-mysql' '--without-pear'
'--disable-all' '--disable-short-tags' '--enable-force-cgi-redirect' '--enable-
discard-path' '--with-thttpd=../../thttpd/thttpd-2.21b'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => install-arm/lib
PHP API => 20041225
PHP Extension => 20060613
Zend Extension => 220060519
Debug Build => no
Thread Safety => disabled
Zend Memory Manager => enabled
IPv6 Support => enabled
Registered PHP Streams => php, file, data, http, ftp
Registered Stream Socket Transports => tcp, udp, unix, udg
Registered Stream Filters => string.rot13, string.toupper, string.tolower,
string.strip_tags, convert.*, consumed
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
_______________________________________________________________________
Configuration
PHP Core
Directive => Local Value => Master Value
allow_call_time_pass_reference => On => On
allow_url_fopen => On => On
allow_url_include => Off => Off
always_populate_raw_post_data => Off => Off
arg_separator.input => & => &
arg_separator.output => & => &
asp_tags => Off => Off
auto_append_file => no value => no value
auto_globals_jit => On => On
auto_prepend_file => no value => no value
browscap => no value => no value
default_charset => no value => no value
default_mimetype => text/html => text/html
define_syslog_variables => Off => Off
disable_classes => no value => no value
disable_functions => no value => no value
display_errors => On => On
display_startup_errors => Off => Off
doc_root => no value => no value
docref_ext => no value => no value
docref_root => no value => no value
enable_dl => On => On
error_append_string => no value => no value
error_log => no value => no value
error_prepend_string => no value => no value
error_reporting => no value => no value
expose_php => On => On
extension_dir => install-arm/lib/php/extensions/no-debug-non-zts-20060613 => install-
arm/lib/php/extensions/no-debug-non-zts-20060613
file_uploads => On => On
highlight.bg => <font style="color: #FFFFFF">#FFFFFF</font> => <font style="color:
#FFFFFF">#FFFFFF</font>
highlight.comment => <font style="color: #FF8000">#FF8000</font> => <font
style="color: #FF8000">#FF8000</font>
highlight.default => <font style="color: #0000BB">#0000BB</font> => <font
style="color: #0000BB">#0000BB</font>
highlight.html => <font style="color: #000000">#000000</font> => <font style="color:
#000000">#000000</font>
highlight.keyword => <font style="color: #007700">#007700</font> => <font
style="color: #007700">#007700</font>
highlight.string => <font style="color: #DD0000">#DD0000</font> => <font style="color:
#DD0000">#DD0000</font>
html_errors => Off => Off
ignore_repeated_errors => Off => Off
ignore_repeated_source => Off => Off
ignore_user_abort => Off => Off
implicit_flush => On => On
include_path => .: => .:
log_errors => Off => Off
log_errors_max_len => 1024 => 1024
magic_quotes_gpc => On => On
magic_quotes_runtime => Off => Off
magic_quotes_sybase => Off => Off
mail.force_extra_parameters => no value => no value
max_execution_time => 0 => 0
max_input_time => -1 => -1
memory_limit => 128M => 128M
open_basedir => no value => no value
output_buffering => 0 => 0
output_handler => no value => no value
post_max_size => 8M => 8M
precision => 14 => 14
realpath_cache_size => 16K => 16K
realpath_cache_ttl => 120 => 120
register_argc_argv => On => On
register_globals => Off => Off
register_long_arrays => On => On
report_memleaks => On => On
report_zend_debug => Off => Off
safe_mode => Off => Off
safe_mode_exec_dir => /usr/local/php/bin => /usr/local/php/bin
safe_mode_gid => Off => Off
safe_mode_include_dir => no value => no value
sendmail_from => no value => no value
sendmail_path => -t -i => -t -i
serialize_precision => 100 => 100
short_open_tag => Off => Off
SMTP => localhost => localhost
smtp_port => 25 => 25
sql.safe_mode => Off => Off
track_errors => Off => Off
unserialize_callback_func => no value => no value
upload_max_filesize => 2M => 2M
upload_tmp_dir => no value => no value
user_dir => no value => no value
variables_order => EGPCS => EGPCS
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
y2k_compliance => On => On
zend.ze1_compatibility_mode => Off => Off
date
date/time support => enabled
Timezone Database Version => 2006.16
Timezone Database => internal
Default timezone => UTC
Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => no value => no value
Reflection
Reflection => enabled
Version => $Id: php_reflection.c,v 1.164.2.33.2.33 2007/01/01 09:36:05 sebastian Exp $
standard
Regex Library => Bundled library enabled
Dynamic Library support not available<br />.
Directive => Local Value => Master Value
assert.active => 1 => 1
assert.bail => 0 => 0
assert.callback => no value => no value
assert.quiet_eval => 0 => 0
assert.warning => 1 => 1
auto_detect_line_endings => 0 => 0
default_socket_timeout => 60 => 60
safe_mode_allowed_env_vars => PHP_ => PHP_
safe_mode_protected_env_vars => LD_LIBRARY_PATH => LD_LIBRARY_PATH
url_rewriter.tags => a=href,area=href,frame=src,form=,fieldset= =>
a=href,area=href,frame=src,form=,fieldset=
user_agent => no value => no value
Additional Modules
Module Name
Environment
Variable => Value
TSLIB_TSDEVICE => /dev/input/touchscreen0
USER => root
OLDPWD => /srv/www
HOME => /home/root
PS1 => \u@\h:\w\$
LOGNAME => root
TERM => linux
PATH => /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:
SHELL => /bin/sh
PWD => /srv/www/cgi-bin
TZ => UTC
EDITOR => /bin/vi
PHP Variables
Variable => Value
_SERVER["TSLIB_TSDEVICE"] => /dev/input/touchscreen0
_SERVER["USER"] => root
_SERVER["OLDPWD"] => /srv/www
_SERVER["HOME"] => /home/root
_SERVER["PS1"] => \u@\h:\w\$
_SERVER["LOGNAME"] => root
_SERVER["TERM"] => linux
_SERVER["PATH"] => /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:
_SERVER["SHELL"] => /bin/sh
_SERVER["PWD"] => /srv/www/cgi-bin
_SERVER["TZ"] => UTC
_SERVER["EDITOR"] => /bin/vi
_SERVER["PHP_SELF"] => -
_SERVER["SCRIPT_NAME"] => -
_SERVER["SCRIPT_FILENAME"] =>
_SERVER["PATH_TRANSLATED"] =>
_SERVER["DOCUMENT_ROOT"] =>
_SERVER["REQUEST_TIME"] => 1267544129
_SERVER["argv"] => Array
(
[0] => -
)
_SERVER["argc"] => 1
_ENV["TSLIB_TSDEVICE"] => /dev/input/touchscreen0
_ENV["USER"] => root
_ENV["OLDPWD"] => /srv/www
_ENV["HOME"] => /home/root
_ENV["PS1"] => \u@\h:\w\$
_ENV["LOGNAME"] => root
_ENV["TERM"] => linux
_ENV["PATH"] => /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:
_ENV["SHELL"] => /bin/sh
_ENV["PWD"] => /srv/www/cgi-bin
_ENV["TZ"] => UTC
_ENV["EDITOR"] => /bin/vi
PHP License
This program is free software; you can redistribute it and/or modify
it under the terms of the PHP License as published by the PHP Group
and included in the distribution in the file: LICENSE
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you did not receive a copy of the PHP license, or have any
questions about PHP licensing, please contact license@php.net.