Bug #2296 Updated: Crashes when using VirtualHost with Apache 1.3.9
| From: | sander@php.net | Date: | Sun, 16 Jun 2002 12:40:37 +0000 |
| Subject: | Bug #2296 Updated: Crashes when using VirtualHost with Apache 1.3.9 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-10685@lists.php.net to get a copy of this message | ||
ID: 2296
Updated by: sander@php.net
Reported By: cgriffin@dka.com
-Status: Open
+Status: Bogus
Bug Type: Reproducible Crash
Operating System: RedHat 6
PHP Version: 3.0.12
New Comment:
Thank you for taking the time to report a problem with PHP.
Unfortunately, PHP 3 is no longer supported. Please download
the latest version of PHP 4 from http://www.php.net/downloads.php
If you are able to reproduce the bug with one of the latest
versions of PHP, please change the PHP version on this bug report
to the version you tested and change the status back to "Open".
Again, thank you for your continued support of PHP.
Previous Comments:
------------------------------------------------------------------------
[1999-09-15 18:43:10] cgriffin@dka.com
Ok... at first I thought you might be right about the apache 1.3.6
thing. So I carefully reproduced the problem. I did some trouble
shooting and found that it only happens with the following
combination:
apache 1.3.9
one or more VirtualHost declarations
--with-mycrypt
and i looked at the code using the backtrace as a reference and it is
crashing when it tries to close the php.ini file.
------------------------------------------------------------------------
[1999-09-15 07:22:36] rasmus@cvs.php.net
I bet you didn't recompile PHP against Apache-1.3.9. If you use the
PHP DSO compiled against
Apache-1.3.6 and LoadModule it into Apache-1.3.9 this is exactly what I
would expect to see.
Make sure you do a full configure; make; make install of Apache-1.3.9
so you get the updated
apxs script from Apache-1.3.9 installed and then do a make clean in
your PHP src directory and
do a full configure; make; make install of PHP.
------------------------------------------------------------------------
[1999-09-14 14:48:35] cgriffin@dka.com
When I use php 3.0.12 with Apache 1.3.9 it crashes when I put a
VirtualHost command in the config file.
If I leave out the VirtualHost Apache starts fine. If I put the
VirtualHost in and remove PHP Apache starts fine.
If I roll back to Apache 1.3.6 it starts fine.
./configure --prefix=/www/php \
--with-apxs=/www/server/bin/apxs \
--with-config-file-path=/www/php/conf \
--enable-track-vars \
--with-exec-dir=/www/php/bin \
--with-gd \
--with-mcrypt \
--with-pgsql
#0 0x4030e3e8 in ?? ()
#1 0x400f61f6 in _IO_old_file_close_it (fp=0x80bbe98) at
oldfileops.c:143
#2 0x400f2595 in _IO_old_fclose (fp=0x80bbe98) at oldiofclose.c:43
#3 0x401fa493 in php3_init_config () at configuration-parser.y:221
#4 0x401f1a0b in php3_config_ini_startup () at main.c:965
#5 0x401f24e0 in php3_module_startup () at main.c:1246
#6 0x401efcb8 in php3_create_dir ()
#7 0x80561d3 in ap_single_module_configure ()
#8 0x804f4c0 in load_module ()
#9 0x8054aae in invoke_cmd ()
#10 0x8055393 in ap_handle_command ()
#11 0x8055427 in ap_srm_command_loop ()
#12 0x8055830 in ap_process_resource_config ()
#13 0x80560f2 in ap_read_config ()
#14 0x805f841 in standalone_main ()
#15 0x80600a3 in main ()
#16 0x400b6cb3 in __libc_start_main (main=0x805fd6c <main>, argc=1,
argv=0xbffffd64, init=0x804e890 <_init>, fini=0x8093d6c <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffffd5c)
at ../sysdeps/generic/libc-start.c:78
;;;;;;;;;;;;;;;;;;;
; About this file ;
;;;;;;;;;;;;;;;;;;;
; This file controls many aspects of PHP's behavior. In order for PHP
to
; read it, it must be named 'php.ini'. PHP looks for it in the
current
; working directory, in the path designated by the environment
variable
; PHPRC, and in the path that was defined in compile time (in that
order).
; Under Windows, the compile-time path is the Windows directory. The
; path in which the php.ini file is looked for can be overriden using
; the -c argument in command line mode.
;
; The syntax of the file is extremely simple. Whitespace and Lines
; beginning with a semicolon are silently ignored (as you probably
guessed).
; Section headers (e.g. [Foo]) are also silently ignored, even though
; they might mean something in the future (they probably won't).
;
; Options are specified using the syntax key = value or key = "complex
value".
; Key names are *case sensitive*. foo = bar is different from FOO =
bar.
; 'value' can be any number, word or keyword (keywords are On, Off,
True,
; False, Yes and No, and are case insensitive).
; 'complex value' can be just about anything, expcept for " and a
newline
; Boolean flags can be turned on using the values 1, On, True or Yes.
; They can be turned off using the values 0, Off, False or No.
;
; All the values in the php.ini-dist file correspond to the builtin
; defaults (that is, if no php.ini is used, or if you delete these
lines,
; the builtin defaults will be identical).
;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;
engine = On ; Enable the PHP scripting
language engi
ne under Apache
short_open_tag = Off ; allow the <? tag. otherwise, only
<?php and <
script> tags are recognized.
asp_tags = Off ; allow ASP-style <% %> tags
precision = 14 ; number of significant digits
displayed
in floating point numbers
y2k_compliance = Off ; whether to be year 2000 compliant
(will cause
problems with non y2k compliant browsers)
; Safe Mode
safe_mode = Off
safe_mode_exec_dir =
; Colors for Syntax Highlighting mode. Anything that's acceptable in
<font colo
r=???> would work.
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
; Misc
allow_builtin_links = Off ; Sets whether
phpinfo() will ge
nerate built-in links that display the PHP
; and
Zend logos
, and tells PHP whether to honor them or not.
; It is
no secur
ty threat in any way, but it make sit possible
; to
determine w
hether you use PHP on your server or not.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in
seconds
(UNIX only)
memory_limit = 8388608 ; Maximum amount of memory a script may
consume
(8MB)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; error_reporting is a bit-field. Add each number up to get desired
error repor
ting level
; 1 = Normal errors
; 2 = Normal warnings
; 4 = Parser errors
; 8 = Notices - warnings you can ignore, but sometimes imply a bug
(e.g., using
an uninitialized variable)
error_reporting = 7
display_errors = On ; Print out errors (as a part of the
HTML script
)
log_errors = On ; Log errors into a log file
(server-spe
cific log, stderr, or error_log (below))
track_errors = Off ; Store the last error/warning message
in $php_e
rrormsg (boolean)
error_prepend_string = "<font color=ff0000>" ; string to output
before an erro
r message
error_append_string = "</font>" ; string to output after
an error
message
;error_log = filename ; log errors to specified file
error_log = syslog ; log errors to syslog (Event
Log on NT,
not valid in Windows 95)
warn_plus_overloading = Off ; warn if the +
operator is used
with strings
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
magic_quotes_gpc = On ; magic quotes for
incoming GET/
POST/Cookie data
magic_quotes_runtime= Off ; magic quotes for
runtime-generated dat
a, e.g. data from SQL, from exec(), etc.
magic_quotes_sybase = Off ; Use Sybase-style
magic quotes
(escape ' with '' instead of \')
track_vars = On ; enable
$HTTP_GET_VARS[
], $HTTP_POST_VARS[] and $HTTP_COOKIE_VARS[] arrays
; automatically add files before or after any PHP 3.0 document
auto_prepend_file =
auto_append_file =
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = "./:/www/php/include" ; UNIX:
"/path1:/path2"
Windows: "\path1;\path2"
doc_root = ; the
root of th
e php pages, used only if nonempty
user_dir = ; the
directory
under which php opens the script using /~username, used only if
nonempty
;upload_tmp_dir = ; temporary directory for HTTP
uploaded
files (will use system default if not specified)
upload_max_filesize = 2097152 ; 2 Meg default limit on file
uploads
extension_dir = ./ ; directory in
which the
loadable extensions (modules) reside
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; if you wish to have an extension loaded automaticly, use the
; following syntax: extension=modulename.extension
; for example, on windows,
; extension=msql.dll
; or under UNIX,
; extension=msql.so
; Note that it should be the name of the module only, no directory
information
; needs to go here. Specify the location of the extension with the
extension_di
r directive above.
;Windows Extensions
;extension=php_mysql.dll
;extension=php_nsmail.dll
;extension=php_calendar.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_dbm.dll
;extension=php_mssql.dll
;extension=php_zlib.dll
;extension=php_filepro.dll
;extension=php_imap4r2.dll
;extension=php_ldap.dll
;extension=php_crypt.dll
;extension=php_msql2.dll
;extension=php_odbc.dll
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[Syslog]
define_syslog_variables = Off ; Whether or not to define the various
syslog va
riables,
; e.g.
$LOG_PID,
$LOG_CRON, etc. Turning it off is a
; good
idea perf
ormance-wise. In runtime, you can define
; these
variable
s by calling define_syslog_variables()
[mail function]
SMTP = localhost ;for
win32 only
sendmail_from = me@localhost.com ;for win32 only
sendmail_path = ;for
unix only,
may supply arguments as well (default is sendmail -t)
[Debugger]
debugger.host = 207.67.207.131
debugger.port = 7869
debugger.enabled = False
[Logging]
; These configuration directives are used by the example logging
mechanism.
; See examples/README.logging for more explanation.
;logging.method = db
;logging.directory = /path/to/log/directory
[SQL]
sql.safe_mode = Off
[ODBC]
;uodbc.default_db = Not yet implemented
;uodbc.default_user = Not yet implemented
;uodbc.default_pw = Not yet implemented
uodbc.allow_persistent = On ; allow or prevent persistent
links
uodbc.max_persistent = -1 ; maximum number of persistent
links. -1
means no limit
uodbc.max_links = -1 ; maximum number of
links (persi
stent+non persistent). -1 means no limit
uodbc.defaultlrl = 4096 ; Handling of LONG fields.
Returns numbe
r of bytes to variables, 0 means passthru
uodbc.defaultbinmode = 1 ; Handling of binary data. 0
means passt
hru, 1 return as is, 2 convert to char
; See the documentation on odbc_binmode and odbc_longreadlen for an
explanation
of uodbc.defaultlrl
; and uodbc.defaultbinmode
[MySQL]
mysql.allow_persistent = On ; allow or prevent persistent
link
mysql.max_persistent = -1 ; maximum number of persistent
links. -1
means no limit
mysql.max_links = -1 ; maximum number of
links (persi
stent+non persistent). -1 means no limit
mysql.default_port = ; default port number
for mysql_
connect(). If unset,
;
mysql_connect(
) will use the $MYSQL_TCP_PORT, or the mysql-tcp
; entry
in /etc/
services, or the compile-time defined MYSQL_PORT
; (in
that order
). Win32 will only look at MYSQL_PORT.
mysql.default_host = ; default host for
mysql_connect
() (doesn't apply in safe mode)
mysql.default_user = ; default user for
mysql_connect
() (doesn't apply in safe mode)
mysql.default_password = ; default password for
mysql_connect() (
doesn't apply in safe mode)
; Note
that this
is generally a *bad* idea to store passwords
; in
this file.
*Any* user with PHP access can run
; 'echo
cfg_get_
var("mysql.default_password")' and reveal that
;
password! And
of course, any users with read access to this
; file
will be a
ble to reveal the password as well.
[mSQL]
msql.allow_persistent = On ; allow or prevent persistent
link
msql.max_persistent = -1 ; maximum number of
persistent l
inks. -1 means no limit
msql.max_links = -1 ; maximum number of
links (persi
stent+non persistent). -1 means no limit
[PostgresSQL]
pgsql.allow_persistent = On ; allow or prevent persistent
link
pgsql.max_persistent = -1 ; maximum number of persistent
links. -1
means no limit
pgsql.max_links = -1 ; maximum number of
links (persi
stent+non persistent). -1 means no limit
[Sybase]
sybase.allow_persistent = On ; allow or prevent persistent
link
sybase.max_persistent = -1 ; maximum number of persistent
links. -1
means no limit
sybase.max_links = -1 ; maximum number of
links (persi
stent+non persistent). -1 means no limit
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; minimum error
severity to disp
lay
sybase.min_message_severity = 10 ; minimum message
severity to di
splay
sybase.compatability_mode = Off ; compatability mode with
earlier versio
ns of PHP 3.0.
; If on,
this will cause PHP to automatically assign types to results
; accord
ing to their Sybase type, instead of treating them all as
; string
s. This compatability mode will probably not stay around
; foreve
r, so try applying whatever necessary changes to your code,
; and tu
rn it off.
[Sybase-CT]
sybct.allow_persistent = On ; allow or prevent
persistent li
nk
sybct.max_persistent = -1 ; maximum number of
persistent l
inks. -1 means no limit
sybct.max_links = -1 ; maximum
number of link
s (persistent+non persistent). -1 means no limit
sybct.min_server_severity = 10 ; minimum server
message severit
y to display
sybct.min_client_severity = 10 ; minimum client
message severit
y to display
[bcmath]
bcmath.scale = 0 ; number of decimal digits for all
bcmath functi
ons
[browscap]
;browscap = extra/browscap.ini
[Informix]
ifx.default_host = ; default host for
ifx_connect()
(doesn't apply in safe mode)
ifx.default_user = ; default user for
ifx_connect()
(doesn't apply in safe mode)
ifx.default_password = ; default password for
ifx_conne
ct() (doesn't apply in safe mode)
ifx.allow_persistent = On ; allow or prevent
persistent li
nk
ifx.max_persistent = -1 ; maximum number of
persistent l
inks. -1 means no limit
ifx.max_links = -1 ; maximum number of
links (persi
stent+non persistent). -1 means no limit
ifx.textasvarchar = 0 ; if set on, select
statements r
eturn the contents of a text blob instead of it's id
ifx.byteasvarchar = 0 ; if set on, select
statements r
eturn the contents of a byte blob instead of it's id
ifx.charasvarchar = 0 ; trailing blanks are
stripped f
rom fixed-length char columns. May help the life
; of Informix SE users.
ifx.blobinfile = 0 ; if set on, the
contents of tex
t&byte blobs are dumped to a file instead of
; keeping them in
memory
ifx.nullformat = 0 ; NULL's are returned
as empty s
trings, unless this is set to 1. In that case,
; NULL's are returned
as string
'NULL'.
[Session]
session.save_handler = files ; handler used to store/retrieve
data
session.save_path = /tmp ; argument passed to save_handler
; in the case of files, this is
the
; path where data files are stored
session.name = PHPSESSID ; name of the session
; is used as cookie name
session.auto_start = 0 ; initialize session on request
startup
session.lifetime = 0 ; lifetime in seconds of cookie
; or if 0, until browser is
restarted
session.serialize_handler = php ; handler used to serialize data
; php is the standard serializer of
PHP
session.gc_probability = 1 ; procentual probability that the
; 'garbage collection' process is
started
; on every session initialization
session.gc_maxlifetime = 1440 ; after this number of seconds,
stored
; data will be seen as 'garbage'
and
; cleaned up by the gc process
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=2296&edit=1