使用PHP交叉编译的THTTPD服务器运行正常,但没有PHP

时间:2010-09-28 23:13:58

标签: php arm cross-compiling thttpd

我们在ARM板上需要一些PHP。我已成功交叉编译PHP 5和THTTPD,它们似乎都在ARM板上运行正常,只有.php页面显示为未处理(如果你在Web浏览器中执行“查看源代码”,你可以看到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

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.

1 个答案:

答案 0 :(得分:0)

以上程序有效!

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

<?php
?>

分隔符而不是

<?
?>