Excellent! Thank-you for the update.
From: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
Sent: Saturday, November 9, 2019 3:32 PM To: users@xxxxxxxxxxxxxxxx <users@xxxxxxxxxxxxxxxx>; Heather Lotz <knot22@xxxxxxxxxxx> Subject: Re: conditionally create a Virtual Host? Hi,
this has been backported to 2.4.x branch. It will be part of apache 2.4.42. No date is foreseen at the moment. The release should happen in a couple of months. CJ Le 05/09/2019 à 21:12, Christophe JAILLET a écrit : > Hi, > > we don't have a fixed schedule for release. > 2.4.41 has just been released a few weeks ago. > > Unless a serious regression is spotted or some security issues > discovered, you should not expect a new release before, let say, 3-4 > months. > If you want to have an idea of the "release rate", have a look at [1]. > > CJ > > [1]: > http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?revision=1866035&view=markup&sortby=date > > > Le 05/09/2019 à 00:41, Heather Lotz a écrit : >> That is fantastic news! Thank-you very much for figuring it out and >> fixing it. Assuming the change gets approved, approximately when will >> the next release become available? >> >> ------------------------------------------------------------------------ >> *From:* Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> >> *Sent:* Wednesday, September 4, 2019 2:14 PM >> *To:* users@xxxxxxxxxxxxxxxx <users@xxxxxxxxxxxxxxxx>; Heather Lotz >> <knot22@xxxxxxxxxxx> >> *Subject:* Re: conditionally create a Virtual Host? >> Hi, >> >> The issue has been tracked down and has been fixed on trunk in >> r1866418 [1]. >> >> It will be proposed for backport and should be in next release if the >> change is approved. >> >> Best regards, >> CJ >> >> [1]: http://svn.apache.org/viewvc?rev=1866418&view=rev >> <http://svn.apache.org/viewvc?rev=1866418&view=rev> >> >> >> Le 01/09/2019 à 01:11, Heather Lotz a écrit : >>> Hello - Just wondering if there has been any progress made on >>> getting <IfFile> to work for Windows. >>> >>> ------------------------------------------------------------------------ >>> *From:* Heather Lotz <knot22@xxxxxxxxxxx> <mailto:knot22@xxxxxxxxxxx> >>> *Sent:* Saturday, August 24, 2019 11:40 AM >>> *To:* Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> >>> <mailto:christophe.jaillet@xxxxxxxxxx>; users@xxxxxxxxxxxxxxxx >>> <mailto:users@xxxxxxxxxxxxxxxx> <users@xxxxxxxxxxxxxxxx> >>> <mailto:users@xxxxxxxxxxxxxxxx> >>> *Subject:* Re: conditionally create a Virtual Host? >>> Seeking clarification - does this mean you were able to reproduce >>> the issue? >>> >>> ------------------------------------------------------------------------ >>> *From:* Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> >>> <mailto:christophe.jaillet@xxxxxxxxxx> >>> *Sent:* Saturday, August 24, 2019 5:18 AM >>> *To:* users@xxxxxxxxxxxxxxxx <mailto:users@xxxxxxxxxxxxxxxx> >>> <users@xxxxxxxxxxxxxxxx> <mailto:users@xxxxxxxxxxxxxxxx>; Heather >>> Lotz <knot22@xxxxxxxxxxx> <mailto:knot22@xxxxxxxxxxx> >>> *Subject:* Re: conditionally create a Virtual Host? >>> Hi, >>> >>> confirmed, using the binaries provided by >>> https://www.apachelounge.com/download/ >>> <https://www.apachelounge.com/download/> >>> >>> CJ >>> >>> Le 23/08/2019 à 23:53, Heather Lotz a écrit : >>>> Right, I have zero knowledge of C. That would be super if you would >>>> be able to replicate the issue in a Windows environment. >>>> Admittedly, I don't know what a Windows binary is. >>>> >>>> I ran some more tests, based on your suggestion, and also found a >>>> couple of links about DOS device paths that proved to be helpful*. >>>> >>>> Here are the results - >>>> For each of these Apache would not start: >>>> <IfFile "\\.\Z:"> >>>> <IfFile "\\.\Z:\"> >>>> <IfFile "\\.\Z:\files\development\ApacheSmokeSignal.txt"> >>>> <IfFile "\\.\C:"> >>>> >>>> For each of these Apache would start whether Z: was connected to >>>> the PC or not. However, the code within the <IfFile> tags never >>>> executed because localhost:8080/miscellaneous/ always returned a >>>> 404 error in the browser. >>>> <IfFile "\\?\Z:"> >>>> <IfFile "\\?\Z:\"> >>>> <IfFile "\\?\Z:\files\development\ApacheSmokeSignal.txt"> >>>> <IfFile "\\?\C:"> >>>> <IfFile "\\?\C:\"> >>>> <IfFile "\\?\C:\Users\heather.lotz\Documents\_user_files\text.txt"> >>>> >>>> *For reference, here are links to the useful pages about DOS device >>>> paths - >>>> https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats >>>> https://stackoverflow.com/questions/23041983/path-prefixes-and >>>> >>>> >>>> ------------------------------------------------------------------------ >>>> *From:* Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> >>>> <mailto:christophe.jaillet@xxxxxxxxxx> >>>> *Sent:* Friday, August 23, 2019 8:55 AM >>>> *To:* users@xxxxxxxxxxxxxxxx <mailto:users@xxxxxxxxxxxxxxxx> >>>> <users@xxxxxxxxxxxxxxxx> <mailto:users@xxxxxxxxxxxxxxxx>; Heather >>>> Lotz <knot22@xxxxxxxxxxx> <mailto:knot22@xxxxxxxxxxx> >>>> *Subject:* Re: conditionally create a Virtual Host? >>>> >>>> Hi, >>>> >>>> >>>> Ok, if you have little knowledge of C, no need to try to apply the >>>> patch. >>>> >>>> You would need a compiler, some libraries, set-up the environment, >>>> configure, build, install... >>>> >>>> >>>> I'll install a Windows binaries and try your configuration. Should >>>> be easy to reproduce. >>>> >>>> >>>> The syntax you have used is correct (Z:/bla/bla/). AFAIK, the >>>> internals of httpd (the APR library to be precise) already >>>> translate the '/' (Linux style) in '\' (Windows style). >>>> >>>> >>>> My proposal was just based on information taken from Microsoft doc >>>> (search for "When opening a volume or removable media drive (for >>>> example, a floppy disk drive or flash memory thumb drive), ..." >>>> near the end of >>>> https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew). >>>> Because, at some point, on Windows, 'CreteFileW()' is called. >>>> >>>> >>>> >>>> >>>> Just 2 words on the patch. >>>> >>>> When a configuration file is parsed, when a '<IfFile ...>' >>>> directive is found, all lines up to the corresponding </Iffile> are >>>> discarded. >>>> >>>> To do that the function, we call 'apr_stat()' which gives >>>> information on a file (size, name, dates...). In the specific case, >>>> no information is requested. This is unusual. Usually we ask for >>>> size only, or "standard" information. >>>> >>>> The patch just changes the requirement from "do not return >>>> anything" to "return size file only". >>>> >>>> However, asking for no information *should still work*. The >>>> function should tell us that the file exists or not, without any >>>> details on the file itself, if found. >>>> >>>> My point is that using it this way, is unusual. This could hide a >>>> corner case (read: bug in the APR underlying library) >>>> >>>> >>>> I've had in my todo list for a long time to setup a test >>>> environment for Windows. It could be a good occasion to do it. Or >>>> you could try with the supplier of a Windows binary (Steffen from >>>> Apache lounge is following closely the project and could be of >>>> help). Reproduce the issue with their binaries and report to issue >>>> to them as well. >>>> >>>> >>>> Finally, I put back the mailing list in copy, should anyone have an >>>> opinion on it >>>> >>>> CJ >>>> >>>> >>>> Le 23/08/2019 à 14:12, Heather Lotz a écrit : >>>>> Also, it would be helpful to know the expected syntax to use in >>>>> <IfFile> once the patch is applied. >>>>> >>>>> For instance, does the patch expect >>>>> <IfFile "/z/files/development/ApacheSmokeSignal.txt"> >>>>> and the purpose of the patch is to execute the code within the >>>>> <IfFile> tags? >>>>> >>>>> Or does the patch expect >>>>> <IfFile "Z:/files/development/ApacheSmokeSignal.txt"> >>>>> and the patch will allow the code within the <IfFile> tags to >>>>> execute as it would on a Linux machine? >>>>> >>>>> I opened the patch file in Notepad++ but don't understand the >>>>> contents. >>>>> >>>>> ------------------------------------------------------------------------ >>>>> *From:* Heather Lotz <knot22@xxxxxxxxxxx> <mailto:knot22@xxxxxxxxxxx> >>>>> *Sent:* Friday, August 23, 2019 6:44 AM >>>>> *To:* Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> >>>>> <mailto:christophe.jaillet@xxxxxxxxxx> >>>>> *Subject:* Re: conditionally create a Virtual Host? >>>>> Hello Christophe - Thank-you for the reply. Can you please >>>>> provide some instructions about how to apply the patch? >>>>> Heather >>>>> >>>>> ------------------------------------------------------------------------ >>>>> *From:* Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> >>>>> <mailto:christophe.jaillet@xxxxxxxxxx> >>>>> *Sent:* Friday, August 23, 2019 12:50 AM >>>>> *To:* users@xxxxxxxxxxxxxxxx <mailto:users@xxxxxxxxxxxxxxxx> >>>>> <users@xxxxxxxxxxxxxxxx> <mailto:users@xxxxxxxxxxxxxxxx>; Heather >>>>> Lotz <knot22@xxxxxxxxxxx> <mailto:knot22@xxxxxxxxxxx> >>>>> *Subject:* Re: conditionally create a Virtual Host? >>>>> 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 <knot22@xxxxxxxxxxx> <mailto:knot22@xxxxxxxxxxx> >>>>>> *Sent:* Wednesday, August 21, 2019 9:36 PM >>>>>> *To:* users@xxxxxxxxxxxxxxxx <mailto:users@xxxxxxxxxxxxxxxx> >>>>>> <users@xxxxxxxxxxxxxxxx> <mailto:users@xxxxxxxxxxxxxxxx> >>>>>> *Subject:* Re: 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 <covener@xxxxxxxxx> <mailto:covener@xxxxxxxxx> >>>>>> *Sent:* Wednesday, August 21, 2019 7:27 PM >>>>>> *To:* users@xxxxxxxxxxxxxxxx <mailto:users@xxxxxxxxxxxxxxxx> >>>>>> <users@xxxxxxxxxxxxxxxx> <mailto:users@xxxxxxxxxxxxxxxx> >>>>>> *Subject:* Re: conditionally create a Virtual Host? >>>>>> On Wed, Aug 21, 2019 at 8:21 PM Heather Lotz <knot22@xxxxxxxxxxx> >>>>>> <mailto:knot22@xxxxxxxxxxx> 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 >>>>>> covener@xxxxxxxxx <mailto:covener@xxxxxxxxx> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx >>>>>> <mailto:users-unsubscribe@xxxxxxxxxxxxxxxx> >>>>>> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx >>>>>> <mailto:users-help@xxxxxxxxxxxxxxxx> >>>>>> >>>>> 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 >>> >>> >> > |