Difference between revisions of "ApacheSetup"

From Cncz
Jump to: navigation, search
Line 8: Line 8:
 
[/en]
 
[/en]
  
Om aan deze nadelen tegemoet te komen is er op de nieuwe webserver <TT>athos</TT> voor een andere opzet gekozen. In plaats van virtual hosts files die door &eacute;&eacute;n apache server worden afgehandeld gebruiken we nu per website een eigen httpd met een aparte user per website. Dat heeft tot gevolg dat de bestanden in de web-docs directory niet langer leesbaar hoeven te zijn voor iedereen. Bovendien gaat iedere website nu op een eigen ip-adres draaien wat tot gevolg heeft dat iedere website die https nodig heeft zijn eigen SSL-certificaat kan krijgen.
+
[nl]
 +
De nieuwe opzet waarvoor op de webserver <TT>athos</TT> gekozen is, heeft deze nadelen niet. In plaats van virtual hosts files die door &eacute;&eacute;n apache server worden afgehandeld gebruiken we nu per website een eigen httpd met een aparte user per website. Dat heeft tot gevolg dat de bestanden in de web-docs directory niet langer leesbaar hoeven te zijn voor iedere gebruiker op de webserver. Bovendien gaat iedere website nu op een eigen ip-adres draaien wat tot gevolg heeft dat iedere website die https nodig heeft zijn eigen SSL-certificaat kan krijgen.
 +
[/nl]
 +
[en]
 +
The new setup that is chosen on the webserver <TT>athos</TT>, doesn't have these disadvantages. Instead of virtual hosts files that are read by just one apache server, we now use a separate apache http for each website. This means that the files in the web-docs directory no longer have to be readable for every user on the webserver. Furthermore every website now gets its own IP address, which means that every website needing https can get its own certificate.
 +
[/en]
  
 +
[nl]
 
De directory structuur ziet er als volgt uit (we gebruiken hier ''website'' als voorbeeld naam):
 
De directory structuur ziet er als volgt uit (we gebruiken hier ''website'' als voorbeeld naam):
 
* '''/var/www/www1/website'''
 
* '''/var/www/www1/website'''
 
top directory waarbinnen alle bestanden m.b.t. deze website zich bevinden
 
top directory waarbinnen alle bestanden m.b.t. deze website zich bevinden
 
* '''/var/www/www1/website/web-docs'''
 
* '''/var/www/www1/website/web-docs'''
De document root voor de website. De standaard situatie voor de web-docs directory wordt lees en schrijfbaar voor de unix group met daarin alleen de users die de website beheren. Daarnaast heeft de user waaronder de website-specifieke httpd draait alleen leesrechten.
+
De document root voor de website. De standaard situatie voor de web-docs directory wordt lees- en schrijfbaar voor de unix group met daarin alleen de users die de website beheren. Daarnaast heeft de user waaronder de website-specifieke httpd draait alleen leesrechten.
 
* '''/var/www/www1/website/test-docs'''
 
* '''/var/www/www1/website/test-docs'''
 
De document root voor een test versie van de website, om bijvoorbeeld een nieuwe versie van de website uit te proberen voordat deze ''live''
 
De document root voor een test versie van de website, om bijvoorbeeld een nieuwe versie van de website uit te proberen voordat deze ''live''
Line 21: Line 27:
 
80 voor http en poort 443 voor https). Lees- en schrijfrechten gelijk aan de web-docs directory.
 
80 voor http en poort 443 voor https). Lees- en schrijfrechten gelijk aan de web-docs directory.
 
* '''/var/www/www1/website/httpd/logs'''
 
* '''/var/www/www1/website/httpd/logs'''
De directory waarin de log-bestanden van httpd voor deze website terecht komen met als belangrijkste access_log en error_log.
+
De directory waarin de log-bestanden van de httpd voor deze website terecht komen met als belangrijkste access_log en error_log.
Merk op dat wij er sterk op aandringen dat beheerders zelf controleren wat er in met name error_log terecht komt en daarop actie ondernemen
+
Merk op dat wij er sterk op aandringen dat de eigenaren van de website zelf controleren wat er in met name error_log terecht komt en daarop actie ondernemen om de error_log zoveel mogelijk leeg te houden.
om de error_log zoveel mogelijk leeg te houden.
 
 
* '''/var/www/www1/website/httpd-test/logs'''
 
* '''/var/www/www1/website/httpd-test/logs'''
 
Log-directory voor de test-versie van de website
 
Log-directory voor de test-versie van de website
Line 31: Line 36:
 
Als er een schrijfbare directory nodig is in de website, maak die dan bij voorkeur in deze directory aan.
 
Als er een schrijfbare directory nodig is in de website, maak die dan bij voorkeur in deze directory aan.
 
* '''/var/www/www1/website/cgi-bin'''
 
* '''/var/www/www1/website/cgi-bin'''
de cgi-bin directory voor de website.
+
De cgi-bin directory voor de website.
 
* '''/var/www/www1/website/cgi-bin-test'''
 
* '''/var/www/www1/website/cgi-bin-test'''
en natuurlijk een voor de test-versie.
+
En natuurlijk een voor de test-versie.
 +
[/nl]
 +
[en]
 +
The new directory structure looks like (we use ''website'' as an example name):
 +
* '''/var/www/www1/website'''
 +
top directory which contains all files w.r.t. this website
 +
* '''/var/www/www1/website/web-docs'''
 +
The document root for the website. The standard situation for the web-docs directory is that it is readable and writable by the unix group which only contains the users maintaining the website. Next to these users, only the user that runs the website-specific httpd can only read (not write) the files.
 +
* '''/var/www/www1/website/test-docs'''
 +
The document root for a test version of the website, e.g. to test a new version of the website before it goes  ''live''. This test-version is available via port 8080, meaning use as URL: http://www.website.science.ru.nl:8080/
 +
and port 4443 for https, meaning use as URL: http://www.website.science.ru.nl:4443/ (note that the real site uses port
 +
80 for http and port 443 for https). Readable and writable by the same users that can read and/or write the web-docs directory.
 +
* '''/var/www/www1/website/httpd/logs'''
 +
The directory containing the log-files of the httpd for this website, the most important ones are access_log and error_log.
 +
Note that we strongly advise that the website owners themselves check the errors in error_log and take action  to remedy errors.
 +
* '''/var/www/www1/website/httpd-test/logs'''
 +
Log-directory for the test-version of the website
 +
* '''/var/www/www1/website/writable'''
 +
Preferably the only directory in which the httpd for this website can write, the standard setup has a 'sessions' subdirectory that is used by php as a session_save_path directory.
 +
If the website needs a writable directory, please make in in this directory.
 +
* '''/var/www/www1/website/cgi-bin'''
 +
The cgi-bin directory for the website.
 +
* '''/var/www/www1/website/cgi-bin-test'''
 +
And of course a cgi-bin directory for the test-version.
 +
[/en]
  
Vermijd het gebruik van absolute paden in webpagina's, een website zou altijd verplaatst moeten kunnen worden zonder dat je daarvoor je pagina's hoeft aan te passen!
+
[nl]
 +
Vermijd het gebruik van absolute paden in webpagina's, een website zou altijd verplaatst moeten kunnen worden zonder dat daarvoor de pagina's aangepast hoeven te worden!
 +
[/nl]
 +
[en]
 +
Avoid the usage of absolute paths in web pages, this makes it much more troublesome to move the website, because in that case the web pages need to be changed!
 +
[/en]

Revision as of 17:09, 23 May 2008

Apache Setup

In order to improve the security of websites, we transition to a new setup for our webservers. Until recently we had just one apache httpd running on a webserver. Different websites were served through the apache virtualhosts mechanism. The main advantage of running just one httpd is that all websites share the pool of httpd processes. The main disadvantages are inter-website security and shared log files.

The new setup that is chosen on the webserver athos, doesn't have these disadvantages. Instead of virtual hosts files that are read by just one apache server, we now use a separate apache http for each website. This means that the files in the web-docs directory no longer have to be readable for every user on the webserver. Furthermore every website now gets its own IP address, which means that every website needing https can get its own certificate.

The new directory structure looks like (we use website as an example name):

  • /var/www/www1/website

top directory which contains all files w.r.t. this website

  • /var/www/www1/website/web-docs

The document root for the website. The standard situation for the web-docs directory is that it is readable and writable by the unix group which only contains the users maintaining the website. Next to these users, only the user that runs the website-specific httpd can only read (not write) the files.

  • /var/www/www1/website/test-docs

The document root for a test version of the website, e.g. to test a new version of the website before it goes live. This test-version is available via port 8080, meaning use as URL: http://www.website.science.ru.nl:8080/ and port 4443 for https, meaning use as URL: http://www.website.science.ru.nl:4443/ (note that the real site uses port 80 for http and port 443 for https). Readable and writable by the same users that can read and/or write the web-docs directory.

  • /var/www/www1/website/httpd/logs

The directory containing the log-files of the httpd for this website, the most important ones are access_log and error_log. Note that we strongly advise that the website owners themselves check the errors in error_log and take action to remedy errors.

  • /var/www/www1/website/httpd-test/logs

Log-directory for the test-version of the website

  • /var/www/www1/website/writable

Preferably the only directory in which the httpd for this website can write, the standard setup has a 'sessions' subdirectory that is used by php as a session_save_path directory. If the website needs a writable directory, please make in in this directory.

  • /var/www/www1/website/cgi-bin

The cgi-bin directory for the website.

  • /var/www/www1/website/cgi-bin-test

And of course a cgi-bin directory for the test-version.

Avoid the usage of absolute paths in web pages, this makes it much more troublesome to move the website, because in that case the web pages need to be changed!