2010-09-28 119 views
3

我们需要在ARM板上使用一些PHP。我已经成功交叉编译了PHP 5和THTTPD,并且它们在ARM板上似乎都运行良好,只有.php页面显示为未处理(如果在Web浏览器中执行“View Source”,则可以看到PHP码)。与PHP交叉编译的THTTPD服务器运行良好,但没有PHP

它必须是一个愚蠢的配置细节,我真的觉得我正在抢夺胜利的下巴。任何帮助或聪明的想法将不胜感激!

这里是我的步骤来构建,部署和测试:

我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 

[email protected]:/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 


[email protected]:/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 => \[email protected]\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"] => \[email protected]\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"] => \[email protected]\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 [email protected] 

回答

0

上述过程的工作!

的问题是使用的PHP语法,它需要全

<?php 
?> 

分隔符,而不是

<? 
?> 
+1

也看到http://www.php.net/manual/en/ini。 core.php中#ini.short开标签 – 2012-08-04 15:58:18