Difference between revisions of "ApacheSetup"

From Cncz
Jump to: navigation, search
(web-docs vervanen door htdocs)
Line 17: Line 17:
 
[nl]
 
[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/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/live/htdocs'''
+
* '''/var/www1/website/live/htdocs'''
 
De document root voor de website. De standaard situatie voor de htdocs 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 htdocs 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/htdocs'''
+
* '''/var/www1/website/test/htdocs'''
 
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''
 
gaat. Deze test-versie is bereikbaar via poort 82, d.w.z. gebruik als URL: http://www.website.science.ru.nl:82/
 
gaat. Deze test-versie is bereikbaar via poort 82, d.w.z. gebruik als URL: http://www.website.science.ru.nl:82/
 
en poort 4432 voor https, d.w.z. gebruik als URL: http://www.website.science.ru.nl:4432/ (merk op dat de echte site gebruik maakt van poort
 
en poort 4432 voor https, d.w.z. gebruik als URL: http://www.website.science.ru.nl:4432/ (merk op dat de echte site gebruik maakt van poort
 
80 voor http en poort 443 voor https). Lees- en schrijfrechten gelijk aan de live/htdocs directory.
 
80 voor http en poort 443 voor https). Lees- en schrijfrechten gelijk aan de live/htdocs directory.
* '''/var/www/www1/website/live/logs'''
+
* '''/var/www1/website/live/logs'''
 
De directory waarin de log-bestanden van de 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 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.
 
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.
* '''/var/www/www1/website/test/logs'''
+
* '''/var/www1/website/test/logs'''
 
Log-directory voor de test-versie van de website
 
Log-directory voor de test-versie van de website
* '''/var/www/www1/website/live/writable'''
+
* '''/var/www1/website/live/writable'''
 
Bij voorkeur de enige directory waar httpd in mag schrijven, standaard maken wij daar ook een ''sessions'' subdirectory in aan
 
Bij voorkeur de enige directory waar httpd in mag schrijven, standaard maken wij daar ook een ''sessions'' subdirectory in aan
 
die door php als session_save_path directory gebruikt wordt.
 
die door php als session_save_path directory gebruikt wordt.
 
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/live/cgi-bin'''
+
* '''/var/www1/website/live/cgi-bin'''
 
De cgi-bin directory voor de website.
 
De cgi-bin directory voor de website.
* '''/var/www/www1/website/test/cgi-bin'''
+
* '''/var/www1/website/test/cgi-bin'''
 
En natuurlijk een voor de test-versie.
 
En natuurlijk een voor de test-versie.
 
[/nl]
 
[/nl]
 
[en]
 
[en]
 
The new directory structure looks like (we use ''website'' as an example name):
 
The new directory structure looks like (we use ''website'' as an example name):
* '''/var/www/www1/website'''
+
* '''/var/www1/website'''
 
top directory which contains all files w.r.t. this website
 
top directory which contains all files w.r.t. this website
* '''/var/www/www1/website/live/htdocs'''
+
* '''/var/www1/website/live/htdocs'''
 
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.
 
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/htdocs'''
+
* '''/var/www1/website/test/htdocs'''
 
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 82, use as URL: http://www.website.science.ru.nl:82/
 
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 82, use as URL: http://www.website.science.ru.nl:82/
 
and port 4432 for https, use as URL: http://www.website.science.ru.nl:4432/ (note that the real site uses port
 
and port 4432 for https, use as URL: http://www.website.science.ru.nl:4432/ (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 htdocs directory.
 
80 for http and port 443 for https). Readable and writable by the same users that can read and/or write the htdocs directory.
* '''/var/www/www1/website/live/logs'''
+
* '''/var/www1/website/live/logs'''
 
The directory containing the log-files of the httpd for this website, the most important ones are access_log and error_log.
 
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.
 
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/test/logs'''
+
* '''/var/www1/website/test/logs'''
 
Log-directory for the test-version of the website
 
Log-directory for the test-version of the website
* '''/var/www/www1/website/live/writable'''
+
* '''/var/www1/website/live/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.
 
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 it in this directory.
 
If the website needs a writable directory, please make it in this directory.
* '''/var/www/www1/website/live/cgi-bin'''
+
* '''/var/www1/website/live/cgi-bin'''
 
The cgi-bin directory for the website.
 
The cgi-bin directory for the website.
* '''/var/www/www1/website/test/cgi-bin'''
+
* '''/var/www1/website/test/cgi-bin'''
 
And of course a cgi-bin directory for the test-version.
 
And of course a cgi-bin directory for the test-version.
 
[/en]
 
[/en]

Revision as of 16:14, 11 August 2017

Apache Setup

In order to improve the security of websites, we have switched 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 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 htdocs 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/www1/website

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

  • /var/www1/website/live/htdocs

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/www1/website/test/htdocs

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 82, use as URL: http://www.website.science.ru.nl:82/ and port 4432 for https, use as URL: http://www.website.science.ru.nl:4432/ (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 htdocs directory.

  • /var/www1/website/live/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/www1/website/test/logs

Log-directory for the test-version of the website

  • /var/www1/website/live/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 it in this directory.

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

The cgi-bin directory for the website.

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

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!

The network drive (for Windows) is \\www.website.science.ru.nl\wwwwebsite, for off-campus usage this can only be done through vpn or easier and faster with WinSCP to lilo.science.ru.nl in the directory /www/website.