More docs on Apache

This commit is contained in:
Noah 2014-04-06 21:20:57 -07:00
parent 1a30c2ab58
commit f982ad8ee8

View File

@ -8,7 +8,7 @@ For kirsle.net I needed to set it up using `mod_fcgid` because my site has a lot
of legacy URLs to old static files, so Rophako needs to serve the main website of legacy URLs to old static files, so Rophako needs to serve the main website
pages and Apache needs to serve everything else. pages and Apache needs to serve everything else.
* Apache configuration: ## Apache configuration:
```apache ```apache
# Rophako www.kirsle.net # Rophako www.kirsle.net
@ -36,7 +36,9 @@ pages and Apache needs to serve everything else.
</VirtualHost> </VirtualHost>
``` ```
* `~/www/.htaccess` configuration: ## .htaccess configuration:
This goes in `~/www/.htaccess`
```apache ```apache
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
@ -48,3 +50,38 @@ pages and Apache needs to serve everything else.
RewriteRule ^$ /fcgi/index.fcgi/ [QSA,L] RewriteRule ^$ /fcgi/index.fcgi/ [QSA,L]
</IfModule> </IfModule>
``` ```
## FastCGI script
This is my FastCGI script I wrote to launch Rophako. Important things to note:
* The shebang line points to the Python binary in my virtualenv.
* I modify sys.path and chdir to my git checkout folder for Rophako.
* The `ScriptNameStripper` allows `mod_rewrite` to work best. Without it you'll
sometimes get URL paths like `/fcgi/index.fcgi/blog/entry/...` etc. from Flask
because that's what it thinks its path is.
```python
#!/home/kirsle/.virtualenv/rophako/bin/python
import os
import sys
sys.path.append("/home/kirsle/git/rophako")
os.chdir("/home/kirsle/git/rophako")
from flup.server.fcgi import WSGIServer
from rophako import app
class ScriptNameStripper(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ["SCRIPT_NAME"] = ""
return self.app(environ, start_response)
app = ScriptNameStripper(app)
if __name__ == "__main__":
WSGIServer(app).run()
```