Graphite subdirectory installation

Asked by Alexandr

Hello,

Graphite installation guide suggests graphite-web installation as a virtual host for Apache.

For some reasons (one of them is ssl-only site - name-base virtual hosts +ssl is not the best config for Apache) I would like to install graphite to the subdirectory of an existing virtual host, something like https://my.server.domain/graphite/

I installed everything needed for graphite on my server and prepared apache configuration for subdirectory graphite installation. I was not able to start graphite.wsgi from /opt/graphite/conf , so I copied it to /opt/graphite/webapp
With such an url https://my.server.domain/graphite/graphite.wsgi it's starting but ends up with not found directories:

"The requested URL /browser/header/ was not found on this server"
"The requested URL /composer/ was not found on this server."

The question is - is it possible to run graphite in such a way in principle? If yes, are there some examples of apache config for subdirectory installation?

My server is running under Debian squeeze (stable).
Apache: Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze8 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2.16 OpenSSL/0.9.8o mod_wsgi/3.3 mod_perl/2.0.4 Perl/v5.10.1

All apache2 subdirectory installations are configured by separate config files located in /etc/apache2/conf.d/
My graphite config is following:

---------
Alias /graphite /opt/graphite/webapp
<Directory /opt/graphite/webapp>
  SetHandler wsgi-script
  Options +ExecCGI
  AllowOverride Limit Options FileInfo
</Directory>

WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
WSGIProcessGroup graphite
WSGIApplicationGroup %{GLOBAL}
WSGIImportScript /opt/graphite/webapp/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
# WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
# WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi

#Alias /graphite/content/ /opt/graphite/webapp/content/
<Location "/graphite/content/">
      SetHandler None
</Location>

Alias /graphite/media/ "/usr/share/pyshared/django/contrib/admin/media/"
<Location "/graphite/media/">
      SetHandler None
</Location>

<Directory /opt/graphite/conf/>
      Order deny,allow
      Allow from all
</Directory>
------------

Many thanks,
  Alexandr

Question information

Language:
English Edit question
Status:
Answered
For:
Graphite Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Nicholas Leskiw (nleskiw) said :
#1

It is currently not possible to do this. There are assumptions in the code that Graphite is installed in the root directory.

Several people have tried to fix this but introduced a multitude of bugs.

-Nick

On Feb 28, 2012, at 3:41 AM, Alexandr <email address hidden> wrote:

> New question #189080 on Graphite:
> https://answers.launchpad.net/graphite/+question/189080
>
> Hello,
>
> Graphite installation guide suggests graphite-web installation as a virtual host for Apache.
>
> For some reasons (one of them is ssl-only site - name-base virtual hosts +ssl is not the best config for Apache) I would like to install graphite to the subdirectory of an existing virtual host, something like https://my.server.domain/graphite/
>
> I installed everything needed for graphite on my server and prepared apache configuration for subdirectory graphite installation. I was not able to start graphite.wsgi from /opt/graphite/conf , so I copied it to /opt/graphite/webapp
> With such an url https://my.server.domain/graphite/graphite.wsgi it's starting but ends up with not found directories:
>
> "The requested URL /browser/header/ was not found on this server"
> "The requested URL /composer/ was not found on this server."
>
> The question is - is it possible to run graphite in such a way in principle? If yes, are there some examples of apache config for subdirectory installation?
>
> My server is running under Debian squeeze (stable).
> Apache: Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze8 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2.16 OpenSSL/0.9.8o mod_wsgi/3.3 mod_perl/2.0.4 Perl/v5.10.1
>
> All apache2 subdirectory installations are configured by separate config files located in /etc/apache2/conf.d/
> My graphite config is following:
>
> ---------
> Alias /graphite /opt/graphite/webapp
> <Directory /opt/graphite/webapp>
> SetHandler wsgi-script
> Options +ExecCGI
> AllowOverride Limit Options FileInfo
> </Directory>
>
> WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
> WSGIProcessGroup graphite
> WSGIApplicationGroup %{GLOBAL}
> WSGIImportScript /opt/graphite/webapp/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
> # WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
> # WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi
>
> #Alias /graphite/content/ /opt/graphite/webapp/content/
> <Location "/graphite/content/">
> SetHandler None
> </Location>
>
> Alias /graphite/media/ "/usr/share/pyshared/django/contrib/admin/media/"
> <Location "/graphite/media/">
> SetHandler None
> </Location>
>
> <Directory /opt/graphite/conf/>
> Order deny,allow
> Allow from all
> </Directory>
> ------------
>
> Many thanks,
> Alexandr
>
>
> --
> You received this question notification because you are a member of
> graphite-dev, which is an answer contact for Graphite.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~graphite-dev
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~graphite-dev
> More help : https://help.launchpad.net/ListHelp

Revision history for this message
Pasi Sainio (pasi-sainio) said :
#2

Can you please change this, it would be really nice to use some other context than root?

Can you help with this problem?

Provide an answer of your own, or ask Alexandr for more information if necessary.

To post a message you must log in.