It looks like an apache that thinks it's root:

os.system("whoami")
print "<br>"
print os.geteuid()
print "<br>"
print os.getuid()
print "<br>"
print os.path.expanduser("~")
print "<br>"
print os.getenv("HOME")
print "<br>"
print os.getenv("USERPROFILE")
print "<br>"
print os.getenv("USER")
print "<br>"
print os.getenv("TMP")
print "<br>"

produces:

apache
81
81
/root
/root
None
root
None

So I should adjust the system so a confused apache-owned process that thinks
it's root will run? Or are there features to ask PHP to spawn subprocesses
that know who they're running as? (or is that something beside the point of
this list?)

On Fri, Aug 1, 2008 at 1:09 PM, Michael Droettboom <[EMAIL PROTECTED]> wrote:

> Below is the code in mpl that actually does the lookup.  To get to the
> bottom of this, I would try to figure out in your Apache/PHP environment
> what
>
>  a) what   os.path.expanduser("~")   gives
>
>  b) what the values of the environment variables "HOME", "USERPROFILE",
> "USER", and "TMP" are.
>
> I suspect either matplotlib is not getting run under user 'apache' as it
> should, or there is something fishy about the environment.
>
> Cheers,
> Mike
>
> def _get_home():
>   """Find user's home directory if possible.
>   Otherwise raise error.
>
>   :see:
> http://mail.python.org/pipermail/python-list/2005-February/263921.html
>   """
>   path=''
>   try:
>       path=os.path.expanduser("~")
>   except:
>       pass
>   if not os.path.isdir(path):
>       for evar in ('HOME', 'USERPROFILE', 'TMP'):
>           try:
>               path = os.environ[evar]
>               if os.path.isdir(path):
>                   break
>           except: pass
>   if path:
>       return path
>   else:
>       raise RuntimeError('please define environment variable $HOME')
>
>
>
> get_home = verbose.wrap('$HOME=%s', _get_home, always=False)
>
> def _get_configdir():
>   """
>   Return the string representing the configuration dir.
>
>   default is HOME/.matplotlib.  you can override this with the
>   MPLCONFIGDIR environment variable
>   """
>
>   configdir = os.environ.get('MPLCONFIGDIR')
>   if configdir is not None:
>       if not _is_writable_dir(configdir):
>           raise RuntimeError('Could not write to
> MPLCONFIGDIR="%s"'%configdir)
>       return configdir
>
>   h = get_home()
>   p = os.path.join(get_home(), '.matplotlib')
>
>   if os.path.exists(p):
>       if not _is_writable_dir(p):
>           raise RuntimeError("'%s' is not a writable dir; you must set
> %s/.matplotlib to be a writable dir.  You can also set environment variable
> MPLCONFIGDIR to any writable directory where you want matplotlib data stored
> "% (h, h))
>   else:
>       if not _is_writable_dir(h):
>           raise RuntimeError("Failed to create %s/.matplotlib; consider
> setting MPLCONFIGDIR to a writable directory for matplotlib configuration
> data"%h)
>
>       os.mkdir(p)
>
>
> "Jonathan Hayward, http://JonathansCorner.com"; wrote:
>
>> User apache exists with home directory /var/www, which exists.
>>
>> On Fri, Aug 1, 2008 at 11:59 AM, Michael Droettboom <[EMAIL 
>> PROTECTED]<mailto:
>> [EMAIL PROTECTED]>> wrote:
>>
>>    It's supposed to default to the current user's home directory.
>>     Perhaps "apache" doesn't have a home directory?
>>
>>
>>    Cheers,
>>    Mike
>>
>>    "Jonathan Hayward, http://JonathansCorner.com"; wrote:
>>
>>        I found a reason for the behavior:
>>
>>        The script was running as user apache, but trying to open
>>        /root/.matplotlib, and /root was mode 0700. It stopped
>>        crashing on import after I made /root mode 0711.
>>
>>        This is somewhat surprising behavior to me; shouldn't it be
>>        defaulting to something besides expected access to ~root?
>>
>>        On Fri, Aug 1, 2008 at 11:38 AM, Jonathan Hayward,
>>        http://JonathansCorner.com <[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>
>>        <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>>> wrote:
>>
>>           Tried that and reran it; I'm getting substantially the same
>>           stacktrace:
>>
>>
>>             File "/home/jhayward/bintmp/test.py", line 5, in <module>
>>               import matplotlib;
>>             File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>>           639, in <module>
>>               rcParams = rc_params()
>>             File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>>           562, in rc_params
>>               fname = matplotlib_fname()
>>             File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>>           513, in matplotlib_fname
>>               fname = os.path.join(get_configdir(), 'matplotlibrc')
>>             File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>>           207, in wrapper
>>               ret = func(*args, **kwargs)
>>             File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>>           403, in _get_configdir
>>               raise RuntimeError("Failed to create %s/.matplotlib;
>>        consider
>>           setting MPLCONFIGDIR to a writable directory for matplotlib
>>           configuration data"%h)
>>           RuntimeError: Failed to create /root/.matplotlib; consider
>>        setting
>>           MPLCONFIGDIR to a writable directory for matplotlib
>>        configuration data
>>
>>           It's /path/matplotlibrc and not /path/.matplotlibrc or anything
>>           like that?
>>
>>
>>           On Fri, Aug 1, 2008 at 10:51 AM, Michael Droettboom
>>           <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>>        <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
>>
>>               Just throwing out a suggestion here: You could try
>>        putting a
>>               matplotlibrc file in the same directory as your Python
>>        script
>>               -- it will use that instead of the one in ~/.matplotlib.
>>
>>               Cheers,
>>               Mike
>>
>>
>>               "Jonathan Hayward, http://JonathansCorner.com"; wrote:
>>
>>                   I have a PHP script which authenticates a user and I am
>>                   trying to get the PHP script to wrap a Python
>>        script using
>>                   matplotlib.
>>
>>                   As it is, the script mostly works when invoked from the
>>                   command line or as its own CGI script. When I call
>>        it from
>>                   a PHP script, it doesn't produce output, and
>>        testing found
>>                   that when I call a Python script from a PHP script,
>>        output
>>                   works before but not after "import matplotlib": if
>>        the PHP
>>                   script calls a script of:
>>
>>                   #!/usr/bin/python
>>                   print "Before import matplotlib."
>>                   import matplotlib;
>>                   print "After import matplotlib."
>>
>>                   the first print statement succeeds but the second one
>>                   fails; the server log shows a crash of:
>>
>>                   Before import matplotlib.Traceback (most recent
>>        call last):
>>                    File "/home/jhayward/bintmp/test.py", line 5, in
>>        <module>
>>                      import matplotlib;
>>                    File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>>                   line 639, in <module>
>>                      rcParams = rc_params()
>>                    File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>>                   line 562, in rc_params
>>                      fname = matplotlib_fname()
>>                    File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>>                   line 513, in matplotlib_fname
>>                      fname = os.path.join(get_configdir(),
>>        'matplotlibrc')
>>                    File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>>                   line 207, in wrapper
>>                      ret = func(*args, **kwargs)
>>                    File
>>
>> "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>>                   line 403, in _get_configdir
>>                      raise RuntimeError("Failed to create %s/.matplotlib;
>>                   consider setting MPLCONFIGDIR to a writable
>>        directory for
>>                   matplotlib configuration data"%h)
>>                   RuntimeError: Failed to create /root/.matplotlib;
>>        consider
>>                   setting MPLCONFIGDIR to a writable directory for
>>                   matplotlib configuration data
>>
>>                   I think this error is somewhat misleading; it persisted
>>                   after I ran a "chmod -R 1777 /root/.matplotlib".
>>
>>                   What is the proper way to adjust things so
>>        matplotlib will
>>                   be happy with its .matplotlib directory?
>>
>>                   --            -- Jonathan Hayward,
>>        [EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>
>>                   <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>>
>>                   <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>
>>                   <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>>>
>>
>>
>>                   ** To see an award-winning website with stories,
>>        essays,
>>                   artwork,
>>                   ** games, and a four-dimensional maze, why not visit my
>>                   home page?
>>                   ** All of this is waiting for you at
>>                   http://JonathansCorner.com
>>
>>                   ++ Would you like to curl up with one of my
>>        hardcover books?
>>                   ++ You can now get my books from http://CJSHayward.com
>>
>> ------------------------------------------------------------------------
>>
>>
>> -------------------------------------------------------------------------
>>                   This SF.Net email is sponsored by the Moblin Your Move
>>                   Developer's challenge
>>                   Build the coolest Linux based applications with
>>        Moblin SDK
>>                   & win great prizes
>>                   Grand prize is a trip for two to an Open Source event
>>                   anywhere in the world
>>
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>>        <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
>>                         <
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>>        <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
>>
>> ------------------------------------------------------------------------
>>
>>                   _______________________________________________
>>                   Matplotlib-users mailing list
>>                   Matplotlib-users@lists.sourceforge.net
>>        <mailto:Matplotlib-users@lists.sourceforge.net>
>>                   <mailto:Matplotlib-users@lists.sourceforge.net
>>        <mailto:Matplotlib-users@lists.sourceforge.net>>
>>
>>
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>               --        Michael Droettboom
>>               Science Software Branch
>>               Operations and Engineering Division
>>               Space Telescope Science Institute
>>               Operated by AURA for NASA
>>
>>
>>
>>
>>           --    -- Jonathan Hayward,
>>        [EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>
>>           <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>>
>>
>>           ** To see an award-winning website with stories, essays,
>>        artwork,
>>           ** games, and a four-dimensional maze, why not visit my
>>        home page?
>>           ** All of this is waiting for you at http://JonathansCorner.com
>>
>>           ++ Would you like to curl up with one of my hardcover books?
>>           ++ You can now get my books from http://CJSHayward.com
>>
>>
>>
>>
>>        --        -- Jonathan Hayward, [EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>
>>        <mailto:[EMAIL PROTECTED]
>>        <mailto:[EMAIL PROTECTED]>>
>>
>>        ** To see an award-winning website with stories, essays, artwork,
>>        ** games, and a four-dimensional maze, why not visit my home page?
>>        ** All of this is waiting for you at http://JonathansCorner.com
>>
>>        ++ Would you like to curl up with one of my hardcover books?
>>        ++ You can now get my books from http://CJSHayward.com
>>
>>
>>    --    Michael Droettboom
>>    Science Software Branch
>>    Operations and Engineering Division
>>    Space Telescope Science Institute
>>    Operated by AURA for NASA
>>
>>
>>
>>
>> --
>> -- Jonathan Hayward, [EMAIL PROTECTED] <mailto:
>> [EMAIL PROTECTED]>
>>
>> ** To see an award-winning website with stories, essays, artwork,
>> ** games, and a four-dimensional maze, why not visit my home page?
>> ** All of this is waiting for you at http://JonathansCorner.com
>>
>> ++ Would you like to curl up with one of my hardcover books?
>> ++ You can now get my books from http://CJSHayward.com
>>
>
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>


-- 
-- Jonathan Hayward, [EMAIL PROTECTED]

** To see an award-winning website with stories, essays, artwork,
** games, and a four-dimensional maze, why not visit my home page?
** All of this is waiting for you at http://JonathansCorner.com

++ Would you like to curl up with one of my hardcover books?
++ You can now get my books from http://CJSHayward.com
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
  • [Matplotlib-user... "Jonathan Hayward, http://JonathansCorner.com"
    • Re: [Matplo... Michael Droettboom
      • Re: [Ma... "Jonathan Hayward, http://JonathansCorner.com"
        • Re:... "Jonathan Hayward, http://JonathansCorner.com"
          • ... Michael Droettboom
            • ... "Jonathan Hayward, http://JonathansCorner.com"
              • ... Michael Droettboom
                • ... "Jonathan Hayward, http://JonathansCorner.com"
                • ... Michael Droettboom
        • Re:... "Jonathan Hayward, http://JonathansCorner.com"
    • Re: [Matplo... Rodney Haynie

Reply via email to