* शंतनू <shanta...@gmail.com> [101030 14:08]: > Hi Tim, Reply inline. Sorry, I don't understand the preceding line. > On 31-Oct-2010, at 1:02 AM, Tim Johnson wrote: > > > FYI: I am working in a linux environment with python 2.6.5 am an > > experienced web developer with 8 years in python, but :) I have > > never tried this trick before: > > > > I note that with the right .htaccess file, I can run a php file, > > from a non-cgi location. Example: On my machine, my wwwroot is > > at /home/http/, I have /home/http/php/test/index.php and I have > > run index.php as http://localhost/php/test/ (again with the > > correct .hataccess). > > > > Is it possible to run a python script this way? > > > Following link could be helpful. > http://docs.python.org/library/cgi.html > > From http://en.wikipedia.org/wiki/Common_Gateway_Interface > From the Web server's point of view, certain locators, e.g. > http://www.example.com/wiki.cgi, are defined as corresponding to a > program to execute via CGI. When a request for the URL is > received, the corresponding program is executed. > Web servers often have a cgi-bin/ directory at the base of their > directory tree to hold executable files called with CGI.
I am familiar with the cgi interface, I've earned a living as a web programmer for 15 years and written several CGI APIs from scratch, as well as building my own python API on top of the standard python cgi module. However, I was approached by a client with a whole lot of python code that has grown like topsy without a formal framework like django or a CMS, for that matter. The client wanted to convert to what he called "clean URLs" not showing a cgi-bin path or a file extension. I was well-advised by the previous respondant to post to an apache forum or mailing list and he also made reference to mod_wsgi, which likely will eventually be implemented on this project. For the time being, I did a little work-around: 1)In my /etc/apache2/sites-available/default I placed the following entry: """ ScriptAlias /reg/ /home/http/py/ <Directory "/home/http/py"> AllowOverride all Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> """ Note1: This is ubuntu 10.04, apache2 config directories differen with linux distros. Note2: The scriptalias entry is *in addition to* the more standardized entry creating a cgi-bin path, which I also have, as apache2 supports multiple script aliases. 2)I placed the following .htaccess file at /home/http/py/ """ RewriteEngine on RewriteCond $1 !^(index\.py|images|css|js|robots\.txt|favicon\.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.py/$1 [L,QSA] """ Disclaimer: I don't do a lot of apache configs and I don't know beans about .htaccess protocols (always more to learn). - and I placed an executable called dispatch.py in the same directory. Now I can point my browser at http://localhost/reg/dispatch -with no cgi-bin and no file extension - and get a response. So I now can make my customer happy and hold the fort so to speak until I get up to speed on either django or mode_wsgi or both. Perhaps this info is of interest to others. thanks for the replies. -- Tim tim at johnsons-web.com or akwebsoft.com http://www.akwebsoft.com _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor