What is the 'zones' sub directory under the document root for?

A request will only be redirected to use main.py in document root as handler if 
the URL path doesn't match either a directory or any file (not just .php files).

So if you have a 'zones' sub directory, and use a URL with path of /zones, then 
it matches the directory and tries to serve up a directory listing of it if 
index generation is enabled, or otherwise will fail. It will not redirect to 
'main.py' in that case.

So for any URL path you want handled by the Python `main.py`, there cannot be a 
directory or file which would be matched by it.

Graham

> On 12 Sep 2020, at 7:34 am, Gordon Charles <gac...@gmail.com> wrote:
> 
> Same result.  If the browser is directed to http://thegacway.com/zones/ the 
> same error is generated.  Unfortunately, I don't believe I have a handle on 
> the mechanisms / behaviors of this solution.  My understanding was that if a 
> directory under the root directory did not have a .php file in that 
> directory, apache would route the url request matching that directory to a 
> python file in that directory, if it existed which is apparently not the 
> case.  My understanding is now if there is a subdirectory which does not have 
> a .php file then the request will be routed to main.py in the root directory, 
> regardless of which directory was included in the URL.
> On Friday, September 11, 2020 at 1:55:13 PM UTC-7 Graham Dumpleton wrote:
> If you are still using:
> 
>     RewriteRule ^(.*)$ /main.py/$1 <http://main.py/$1> [QSA,PT,L]
> 
> the file 'main.py' must be in the document root directory for Apache, 
> presumably next to 'index.php'.
> 
> Try that first.
> 
> Graham
> 
> 
>> On 12 Sep 2020, at 6:52 am, Gordon Charles <gac...@gmail.com 
>> <applewebdata://C15FF1EA-9175-450B-AA38-70D0225A0BC8>> wrote:
>> 
> 
>> Graham,
>> 
>> I have not been successful in launching a python application.  My 
>> understanding is the configuration should launch the php handler if it finds 
>> a .php file in a directory and if not a .php file, but a ,py file exists it 
>> should launch that.  The rules in the configuration file and the code you 
>> have supplied for the python file want that file to be named main.py.  So I 
>> created a subdirectory, zones, off of the root directory with only main.py 
>> in that directory.  File permissions are read for all on main.py and 
>> executable for all for the subdirectory.  group and owner are the same for 
>> the root directory, the subdirectory and main.py.
>> 
>> I get the following:
>> 
>> [Fri Sep 11 20:48:22.125318 2020] [autoindex:error] [pid 63687] [client 
>> 99.46.143.132:59742 <http://99.46.143.132:59742/>] AH01276: Cannot serve 
>> directory /var/www/html/zones/: No matching DirectoryIndex (index.php) 
>> found, and server-generated directory index forbidden by Options directive
>> 
>> If I add Indexes to the Options directive, I get the directory listing of 
>> http://thegacway.com/zones/ <http://thegacway.com/zones/>.
>> 
>> Any assistance would be appreciated.
>> 
>> Regards,
>> 
>> Gordon
>> On Friday, September 11, 2020 at 8:51:31 AM UTC-7 Gordon Charles wrote:
>> Setting FollowSymLinks and SymLinksIfOwnerMatch worked.  Thank you.  I'm 
>> including the working .conf files for reference:
>> 
>> 
>> <Directory /var/www/html>
>>         Require all granted
>> </Directory>
>> WSGIRestrictEmbedded On
>> <VirtualHost *:80>
>>         ServerName thegacway.com <http://thegacway.com/>
>>         ServerAlias www.thegacway.com <http://www.thegacway.com/>
>> 
>>         ServerAdmin webmaster@localhost
>>         DocumentRoot /var/www/html
>> 
>>         # Define a mod_wsgi daemon process group.
>>         WSGIDaemonProcess www.thegacway.com <http://www.thegacway.com/> 
>> display-name=%{GROUP}
>>         # Force the Python web application to run in the mod_wsgi daemon 
>> process group.
>>         WSGIProcessGroup www.thegacway.com <http://www.thegacway.com/>
>>         WSGIApplicationGroup %{GLOBAL}
>>         # Disable embedded mode of mod_wsgi.
>>         # Set document root and rules for access.
>>         #DocumentRoot /var/www/html
>>         <Directory /var/www/html>
>> 
>>             Options ExecCGI SymLinksIfOwnerMatch FollowSymLinks
>> 
>> 
>>             DirectoryIndex index.php
>>             AddHandler application/x-httpd-php .php
>>             AddHandler wsgi-script .py
>>             RewriteEngine On
>>             RewriteCond %{REQUEST_FILENAME} !-f
>>             RewriteCond %{REQUEST_FILENAME} !-d
>>             RewriteRule ^(.*)$ /main.py/$1 <http://main.py/$1> [QSA,PT,L]
>>         </Directory>
>> 
>>         #LogLevel info ssl:warn
>> 
>>         ErrorLog ${APACHE_LOG_DIR}/error.log
>>         CustomLog ${APACHE_LOG_DIR}/access.log combined
>> 
>> </VirtualHost>
>> 
>> On Thursday, September 10, 2020 at 9:24:07 PM UTC-7 Graham Dumpleton wrote:
>> Is there is a reason why use of mod_rewrite is disabled by not setting 
>> FollowSymLinks and SymLinksIfOwnerMatch. Can only presume then that is due 
>> to that.
>> 
>> 
>>> On 11 Sep 2020, at 1:29 pm, Gordon Charles <gac...@gmail.com <>> wrote:
>>> 
>> 
>>> Graham,
>>> 
>>> I genuinely appreciate your help and patience; however, I believe we may be 
>>> struggling to communicate.  To be clear the .conf file I provided is the 
>>> one, only and the complete contents of the .conf file.  To be clear, yes I 
>>> would like the site(s) to be under the same address/port and the 
>>> configuration file I've sent you is my attempt to do so with the end goal 
>>> of being able to support either php generated by wordpress or python 
>>> supported by flask.
>>> 
>>> Regards,
>>> 
>>> Gordon
>>> 
>>> On Thursday, September 10, 2020 at 7:00:25 PM UTC-7 Graham Dumpleton wrote:
>>> You can't have two VirtualHosts for same port with same ServerName. Apache 
>>> will always use the first matching one it finds when doing named based 
>>> virtual hosting.
>>> 
>>> If you want both sites to be under the same host name, the configuration 
>>> for each must be combined under the one VirtualHost definition.
>>> 
>>> Graham
>>> 
>>> 
>>>> On 11 Sep 2020, at 11:17 am, Gordon Charles <gac...@gmail.com <>> wrote:
>>>> 
>>> 
>>>> Graham,
>>>> 
>>>> No it is not different.  My understanding having read your post Graham 
>>>> Dumpleton Post 
>>>> <http://blog.dscpl.com.au/2014/09/hosting-php-web-applications-in.html>, 
>>>> was that when configured Apache would dynamically route requests to either 
>>>> the .php or through wsgi based upon the file extensions of the files 
>>>> located in the particular directory.  My assumption is the 
>>>> ServerName/ServerAlias would be the same for both and Apache is "routing" 
>>>> the requests responses.  Based upon your response, I'm missing something; 
>>>> and as such, If it is not too much trouble I would appreciate any 
>>>> clarification you provide on the mechanics of how this would work when 
>>>> implemented correctly.
>>>> 
>>>> On Thursday, September 10, 2020 at 5:29:45 PM UTC-7 Graham Dumpleton wrote:
>>>> What is the ServerName/ServerAlias for the wordpress VirtualHost? It is 
>>>> different right?
>>>> 
>>>> 
>>>>> On 11 Sep 2020, at 10:00 am, Gordon Charles <gac...@gmail.com <>> wrote:
>>>>> 
>>>> 
>>>>> Graham,
>>>>> 
>>>>> Thanks for the quick reply.  I am striving to work independently here.  
>>>>> I've made the modification, wordpress, is still not loading and have the 
>>>>> following in the error.log file:
>>>>> 
>>>>> [Thu Sep 10 23:53:15.963956 2020] [mpm_prefork:notice] [pid 40224] 
>>>>> AH00163: Apache/2.4.41 (Ubuntu) mod_wsgi/4.6.8 Python/3.8 configured -- 
>>>>> resuming normal operations
>>>>> [Thu Sep 10 23:53:15.964004 2020] [core:notice] [pid 40224] AH00094: 
>>>>> Command line: '/usr/sbin/apache2'
>>>>> [Thu Sep 10 23:53:27.097927 2020] [rewrite:error] [pid 43290] [client 
>>>>> 99.46.143.132:55785 <http://99.46.143.132:55785/>] AH00670: Options 
>>>>> FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule 
>>>>> directive is also forbidden due to its similar ability to circumvent 
>>>>> directory restrictions : /var/www/html/wp-admin/, referer: 
>>>>> http://thegacway.com/wp-login.php <http://thegacway.com/wp-login.php>
>>>>> 
>>>>> My assumption is that the configuration you have outlined should work for 
>>>>> wordpress in absence of any wsgi files and am trying to setup the .conf 
>>>>> file so that it first works with wordpress and then add the python and 
>>>>> get that working.
>>>>> 
>>>>> Here's the configuration file:
>>>>> 
>>>>> <Directory /var/www/html>
>>>>>         Require all granted
>>>>> </Directory>
>>>>> WSGIRestrictEmbedded On
>>>>> <VirtualHost *:80>
>>>>>         ServerName thegacway.com <http://thegacway.com/>
>>>>>         ServerAlias www.thegacway.com <http://www.thegacway.com/>
>>>>> 
>>>>>         ServerAdmin webmaster@localhost
>>>>>         DocumentRoot /var/www/html
>>>>> 
>>>>>         # Define a mod_wsgi daemon process group.
>>>>>         WSGIDaemonProcess www.thegacway.com <http://www.thegacway.com/> 
>>>>> display-name=%{GROUP}
>>>>>         # Force the Python web application to run in the mod_wsgi daemon 
>>>>> process group.
>>>>>         WSGIProcessGroup www.thegacway.com <http://www.thegacway.com/>
>>>>>         WSGIApplicationGroup %{GLOBAL}
>>>>>         # Disable embedded mode of mod_wsgi.
>>>>>         # Set document root and rules for access.
>>>>>         #DocumentRoot /var/www/html
>>>>>         <Directory /var/www/html>
>>>>>             Options ExecCGI
>>>>>             DirectoryIndex index.php
>>>>>             AddHandler application/x-httpd-php .php
>>>>>             AddHandler wsgi-script .py
>>>>>             RewriteEngine On
>>>>>             RewriteCond %{REQUEST_FILENAME} !-f
>>>>>             RewriteCond %{REQUEST_FILENAME} !-d
>>>>>             RewriteRule ^(.*)$ /main.py/$1 <http://main.py/$1> [QSA,PT,L]
>>>>>         </Directory>
>>>>> 
>>>>>         #LogLevel info ssl:warn
>>>>> 
>>>>>         ErrorLog ${APACHE_LOG_DIR}/error.log
>>>>>         CustomLog ${APACHE_LOG_DIR}/access.log combined
>>>>> 
>>>>> </VirtualHost>
>>>>> On Thursday, September 10, 2020 at 4:12:58 PM UTC-7 Graham Dumpleton 
>>>>> wrote:
>>>>> Only WSGIRestrictEmbedded needs to be outside of the VirtualHost. Leave 
>>>>> everything else you may have inside of the VirtualHost.
>>>>> 
>>>>> 
>>>>>> On 11 Sep 2020, at 8:17 am, Gordon Charles <gac...@gmail.com <>> wrote:
>>>>>> 
>>>>> 
>>>>>> I've been trying to create a .conf file which would simultaneously 
>>>>>> support Wordpress and Flask (I have some flask apps which run as part of 
>>>>>> an embedded solution and would like for others to be able to drive the 
>>>>>> application in a simulation mode and like the idea of having a site wide 
>>>>>> implementation via flask for consistency.
>>>>>> 
>>>>>> I've been following the guidance found here:
>>>>>> Graham Dumpleton Post 
>>>>>> <http://blog.dscpl.com.au/2014/09/hosting-php-web-applications-in.html>
>>>>>> and here:
>>>>>> mod_wsgi docs <https://modwsgi.readthedocs.io/en/develop/index.html>
>>>>>> 
>>>>>> I'm running on Ubuntu 20.04.1 LTS
>>>>>> Apache/2.4.41
>>>>>> Python 3.8.2
>>>>>> 
>>>>>> When I include the suggested configuration described in the Graham 
>>>>>> Dumpleton Post 
>>>>>> <http://blog.dscpl.com.au/2014/09/hosting-php-web-applications-in.html> 
>>>>>> inside of the VirtualHost definition I get the following:
>>>>>> WSGIRestrictEmbedded cannot occur within <VirtualHost> section
>>>>>> Action 'restart' failed.
>>>>>> 
>>>>>> When I include the suggested configuration outside of the VirtualHost 
>>>>>> definition it breaks wordpress.
>>>>>> 
>>>>>> Any guidance here would be appriciated.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "modwsgi" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>>> an email to modwsgi+u...@googlegroups.com <>.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/modwsgi/ded196fd-0b21-44ba-b6d5-b91b194e196dn%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/modwsgi/ded196fd-0b21-44ba-b6d5-b91b194e196dn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>> 
>>>>> 
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "modwsgi" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>>> email to modwsgi+u...@googlegroups.com <>.
>>>> 
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/modwsgi/6b61b8c9-4a3b-4c1c-bfc7-6f732542f975n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/modwsgi/6b61b8c9-4a3b-4c1c-bfc7-6f732542f975n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>> 
>>>> 
>>>> -- 
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "modwsgi" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to modwsgi+u...@googlegroups.com <>.
>>> 
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/modwsgi/a75ae12f-3f82-44c1-9deb-6dde36c844a2n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/modwsgi/a75ae12f-3f82-44c1-9deb-6dde36c844a2n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> 
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "modwsgi" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to modwsgi+u...@googlegroups.com <>.
>> 
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/modwsgi/7576c999-0314-4c54-9287-229bed83abc2n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/modwsgi/7576c999-0314-4c54-9287-229bed83abc2n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "modwsgi" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to modwsgi+u...@googlegroups.com 
>> <applewebdata://C15FF1EA-9175-450B-AA38-70D0225A0BC8>.
> 
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/modwsgi/be184d21-d018-4068-b331-891939041d0bn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/modwsgi/be184d21-d018-4068-b331-891939041d0bn%40googlegroups.com?utm_medium=email&utm_source=footer>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to modwsgi+unsubscr...@googlegroups.com 
> <mailto:modwsgi+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/modwsgi/5629a354-04e7-48ee-b2b5-3f02742d23a3n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/modwsgi/5629a354-04e7-48ee-b2b5-3f02742d23a3n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to modwsgi+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/modwsgi/85F2856D-F951-4A6C-9C7E-F15371F047CE%40gmail.com.

Reply via email to