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.

Reply via email to