Le 23/08/2019 à 05:04, Heather Lotz a écrit :
After some more testing, it seems that this syntax -
<IfFile "Z:/files/development/ApacheSmokeSignal.txt">
is the root cause of Apache not starting when the external storage
device, mapped to Z:, is detached from the Windows 10 PC.
I tested these variants individually, which are more *nix like -
<IfFile "Z/files/development/ApacheSmokeSignal.txt">
<IfFile "/Z/files/development/ApacheSmokeSignal.txt">
<IfFile "/z/files/development/ApacheSmokeSignal.txt">
and the behavior is Apache starts whether or not Z: is attached to the
PC, so that is a step in the right direction. However, the code
within the <IfFile> tags never executes because when
localhost:8080/miscellaneous/ is entered in a browser it always
returns a 404 error.
Another test was this -
<IfFile "/c/Users/heather.lotz/Documents/_user_files/test.txt">
which points to an existing file which is not stored on Z:. The
behavior here was the same as that of the 3 *nix like tests. Apache
starts whether or not Z: is attached to the PC but code within the
<IfFile> tags is not executed because localhost:8080/miscellaneous/
returns a 404 error.
Does this constitute a bug of <IfFile> when used on a Windows OS?
------------------------------------------------------------------------
*From:* Heather Lotz <kno...@hotmail.com>
*Sent:* Wednesday, August 21, 2019 9:36 PM
*To:* users@httpd.apache.org <users@httpd.apache.org>
*Subject:* Re: [users@httpd] conditionally create a Virtual Host?
A new file was created on Z: for the sole purpose of having a
designated file for Apache to seek.
The file is called Z:\files\development\ApacheSmokeSignal.txt.
Here is what httpd-vhosts.conf looks like now:
<IfFile "Z:/files/development/ApacheSmokeSignal.txt">
<VirtualHost *:8080>
DocumentRoot "Z:/files/xampp/htdocs"
<Directory "Z:/files/xampp/htdocs">
Options Indexes
Require all granted
</Directory>
</VirtualHost>
</IfFile>
With this update in place, Apache starts fine when Z: is attached to
the PC. However, when Z: is not attached to the PC Apache does not
start and these lines appear in the XAMPP Control Panel console:
9:30:24 PM [Apache] Attempting to start Apache app...
9:30:24 PM [Apache] Status change detected: running
9:30:26 PM [Apache] Status change detected: stopped
9:30:26 PM [Apache] Error: Apache shutdown unexpectedly.
9:30:26 PM [Apache] This may be due to a blocked port, missing
dependencies,
9:30:26 PM [Apache] improper privileges, a crash, or a shutdown by
another method.
9:30:26 PM [Apache] Press the Logs button to view error logs and check
9:30:26 PM [Apache] the Windows Event Viewer for more clues
9:30:26 PM [Apache] If you need more help, copy and post this
9:30:26 PM [Apache] entire log window on the forums
There are no entries in error.log with a Wed Aug 21 21:30 or later
timestamp.
Is the syntax incorrect? Note that Apache is installed in this
location on the PC in question: C:\xampp\apache.
------------------------------------------------------------------------
*From:* Eric Covener <cove...@gmail.com>
*Sent:* Wednesday, August 21, 2019 7:27 PM
*To:* users@httpd.apache.org <users@httpd.apache.org>
*Subject:* Re: [users@httpd] conditionally create a Virtual Host?
On Wed, Aug 21, 2019 at 8:21 PM Heather Lotz <kno...@hotmail.com> wrote:
>
> Greetings,
>
> In my development environment on a Windows 10 PC I have added the
following to Apache's configuration files -
>
> To httpd.conf:
> Listen 8080
>
> To httpd-vhosts.conf:
> <VirtualHost *:8080>
> DocumentRoot "Z:/files/xampp/htdocs"
> <Directory "Z:/files/xampp/htdocs">
> Options Indexes
> Require all granted
> </Directory>
> </VirtualHost>
>
> Note that Z: is mapped to an external storage device.
>
> With this setup, Apache successfully accesses C: on port 80 and Z:
on port 8080. However, if the external storage device is not attached
to the computer, Apache will not start. Is there a way to check if Z:
is present, and only create the virtual host if that device is plugged
in so that Apache always starts? If so, how can this be achieved?
Try <IfFile> https://httpd.apache.org/docs/2.4/mod/core.html#iffile
--
Eric Covener
cove...@gmail.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org
Hi,
would you have the opportunity to test the attached patch?
The 0 passed to apr_stat looks spurious to me. (but should work)
(Pure speculation)
Also, based on Microsoft doc, could you also try:
<IfFile "\\.\Z:">
...
and
<IfFile "\\.\Z:\">
...
CJ
Index: server/core.c
===================================================================
--- server/core.c (révision 1864756)
+++ server/core.c (copie de travail)
@@ -2949,7 +2949,7 @@
apr_finfo_t sb;
relative = ap_server_root_relative(cmd->temp_pool, arg);
- return (apr_stat(&sb, relative, 0, cmd->pool) == APR_SUCCESS);
+ return (apr_stat(&sb, relative, APR_FINFO_TYPE, cmd->temp_pool) ==
APR_SUCCESS);
}
static int test_ifdirective_section(cmd_parms *cmd, const char *arg)
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org