How do you tell what user cherokee gets executed as when the server boots up?
In my typical installation I have a generic user account (like "servant") that everything server related exists in this home directory, and it owns everything. With Apache I have to chown/mod the files so that www-data can read them. I need to use a user account instead of www-data since mercurial is involved. As far as static file streaming, does cherokee intercept web2py file serving? Is there a way to tell cherokee to serve all requests to the "static" folder without even going through web2py? -Thadeus On Fri, Feb 5, 2010 at 4:45 AM, Ivan P <[email protected]> wrote: > Sorry for the delayed response. > I think that usually means that your permissions are not set. Make > sure that uwsgi is running under the same user that owns your web2py > directory. The error is unknown cause web2py cannot open the error > file, because it cannot write it to disc. > > On Jan 27, 3:56 pm, Adi <[email protected]> wrote: >> Hi Ivan, >> >> I followed this howto, and when I try to access the application I get >> an internal error thrown by web2py: >> Ticket issued: unknown >> >> Any idea how to read contents of this ticket to debug? >> >> On Jan 15, 3:14 am, Ivan P <[email protected]> wrote: >> >> > Inspired by Phyo Arkar's howto on setting up web2py with Cherokee and >> > FCGI I tried the setup, but was somewhat unsatisfied with the fcgi >> > method and decided to try uWSGI. I am happy I did so, since it proved >> > to be real easy and uWSGI is a real powerhouse and deserves attention >> > of the whole python webdev community. On to the howto. >> >> > I. Compile from source and run the latest uWSGI, 0.9.3 in my case >> > (available herehttp://projects.unbit.it/uwsgi/wiki). >> > 1. Download the source from and unzip. >> >> > 2. To compile you must install packages python-dev and libxml2-dev (at >> > least thats what they are called on a debian-based system) >> >> > 3. When compiling simply run pick a makefile which matches your OS and >> > python version and run something like "make -f Makefile.Linux.Py26". >> > This produces only one executable named uwsgi26, where 26 is my python >> > version. You can put it in /usr/local/bin. >> >> > 5. To run it, you have two options: >> >> > 5a) Create an xml file and call it, for example, config.xml. Put >> > something like this in it: >> > <uwsgi> >> > <pythonpath>/var/web2py/</pythonpath> >> > <app mountpoint="/"> >> > <script>wsgihandler</script> >> > </app> >> > </uwsgi> >> > In this file "pythonpath" is where your web2py directory is and >> > "script" is the file you want to run, in this case its web2py's >> > "wsgihandler.py". Now run uWSGI like this, but replace "www-data" with >> > the owner of your web2py directory, if its the same as your current >> > user omit the sudo command: >> > sudo -u www-data uwsgi26 -s /tmp/uwsgi.sock -C -x config.xml >> > Why you need to change user is because web2py writes things (session >> > data for example) to disc during execution, so the uwsgi process, >> > which runs the web2py code, has to be the owner of the directories >> > that contain the framework. Note that uwsgi now opened a socket we >> > called "/tmp/uwsgi.sock" About other options consult the uwsgi manual >> > or "uwsgi -h". >> >> > 5b) You can omit the xml file and pass all the info via command line, >> > doing that is easy, so consult the uwsgi docs :) >> >> > II. Setting up cherokee (0.99.37 in my case). >> > 1. Install it, run cherokee-admin, go to localhost:9090 >> >> > 2. Open "Information Sources" and create a new one with these >> > parameters: >> > Nick: web2py >> > Connection: /tmp/uwsgi.sock >> > Interpreter: uwsgi26 -s /tmp/uwsgi.sock -C -x /path/to/config.xml >> > The interpreter line is why it is a good idea to have your web2py >> > source owned by www-data or the Cherokee server's user - when cherokee >> > runs it, you can be sure that owners of the sources and process match. >> > And of course put the correct path in. >> >> > 3. Go to "Virtual Servers" and edit the default one, or you can create >> > a new one, but make sure you give it a domain name to avoid conflict >> > (not really sure what happens when they conflict). >> >> > 4. Go to the "Behavior" section and edit the "Default" behavior. >> >> > 5. Set the "Handler" to uWSGI and on the bottom set the information >> > source to "web2py" >> >> > 6. Pick "Hard restart" from the dropdown on the left and click "Save". >> > TO PREVENT HEADACHE READ THIS: I seem to get inconsistent results with >> > these restarts, so if you're doing production it seems to me that one >> > should restart the server manualy (via /etc/init.d/cherokee restart, >> > that is). Or maybe I should RTFM. >> >> > 6. Go to localhost and BAM! (or at least I hope its a bam). veeery >> > easy if all goes smooth. >> >> > "But wait, what about url rewriting?" was my thought, and this caused >> > much confusion, so I'll add a section on that. >> >> > III. Doing some redirection (I'll give few examples due to poor >> > knowledge of regex). >> > Lets redirect "localhost/" to "/myapp/cntrlr/index" >> > 1. Go back to the "Behavior" section of your server. >> >> > 2. Add a new rule and set it's type to "Regular Expression" and set >> > the regular expression to "^/$", this simply matches "localhost/" or >> > "localhost", nothing more, nothing less. >> >> > 3. Go to the "Handler" section and set the rule to "Redirect" with >> > these parameters >> > Type: Internal >> > Regular Expression: (yes, blank) >> > Substitution: /myapp/cntrlr/index >> > The regular expression is blank because for this scenario we did all >> > the matching while defining a new behavior, you can combine the two in >> > creative ways. >> >> > That's about all. Your imagination should take care of the rest. I, >> > for example, put my static files separately from the framework by >> > creating a behavior that points to "/static" and picking "static >> > files" as the handler. >> > Thanks to Massimo DiPierro for web2py and Phyo Arkar for his cherokee >> > howto. >> > I'm not much of a writer so feel free to ask for clarifications. > > -- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/web2py?hl=en. > > -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.

