Apache: Difference between revisions
(→Installing Apache: Add lamp, clue others that LAMP had best be initially installed else apt-get will not work ...I think) |
Helen Foster (talk | contribs) (Installing Moodle template) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Installing Moodle}} | |||
'''This article refers to the 'Apache HTTP server'''' | |||
The Apache HTTP | The Apache HTTP server is the software that (along with the PHP scripting language) 'runs' Moodle. Note that there are alternatives (e.g. IIS on Windows) but the Apache HTTP Server is very popular on all platforms. | ||
== Installing Apache == | == Installing Apache == | ||
Installers are available for most platforms from http://httpd.apache.org/download.cgi. The official installation instructions are here: http://httpd.apache.org/docs/2.0/install.html. If you are running Linux then you are recommended to use the packaged version if you can. For example in Debian/Ubuntu it is simply: | |||
<pre> | |||
sudo apt-get install apache2 | |||
</pre> | |||
See the documentation for your particular platform for the instructions. Apache is straightforward to build from source if you have to and the PHP documentation contains an article on building both Apache and PHP together - although you should rarely need to do that. | |||
See the documentation for your particular | |||
==Performance== | ==Performance== | ||
See [[Performance recommendations]] | |||
==SSL== | |||
Moodle has an option to enable login pages to force the HTTPS protocol. This is recommended but requires that your web server is configured for SSL. It is possible to run the whole site over HTTPS (typically by configuring Apache to rewrite all http:// URLs to <nowiki>https://</nowiki>) but as this disables caching, there is a considerable performance hit. Only do this if you have a very good reason. | |||
'''WARNING: Before switching on login over HTTPS, make very sure that HTTPS is working (just change the http:// to https:// in any Moodle URL). If not, you may lock yourself out''' | |||
You have two options for obtaining an SSL certificate: | |||
* generate a self-signed certificate. This is fine on (say) an Intranet but unsuitable for the public internet (except perhaps for testing). The user has no assurance that the certificate is legitimate. | |||
* purchase a certificate from a vendor. There is a surprising range of prices and value-added services available. Some hosting companies even provide free certificates. | |||
Below are instructions for install of a self-signed certificate. If you purchase a certificate you will normally receive instructions for installing it | |||
===Debian and Apache2=== | |||
== | |||
1. generate a certification: | 1. generate a certification: | ||
<pre> | |||
apache2-ssl-certificate | |||
</pre> | |||
for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead: | for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead: | ||
<pre> | |||
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem | |||
</pre> | |||
2. edit /etc/apache2/ports.conf: | 2. edit /etc/apache2/ports.conf: | ||
<pre> | |||
Listen 80 | Listen 80 | ||
Listen 443 | Listen 443 | ||
3. copy /etc/ | </pre> | ||
3. copy /etc/apache)2/sites-available/default to /etc/apache2/sites-available/default-ssl, and change /etc/apache2/sites-available/default: | |||
<pre> | |||
NameVirtualHost *:80 | NameVirtualHost *:80 | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
... | ... | ||
</VirtualHost> | </VirtualHost> | ||
</pre> | |||
and also /etc/apache2/sites-available/default-ssl: | and also /etc/apache2/sites-available/default-ssl: | ||
<pre> | |||
NameVirtualHost *:443 | NameVirtualHost *:443 | ||
<VirtualHost *:443> | <VirtualHost *:443> | ||
Line 156: | Line 60: | ||
... | ... | ||
</VirtualHost> | </VirtualHost> | ||
</pre> | |||
4. symbolic link the ssl file: | 4. symbolic link the ssl file: | ||
<pre> | |||
a2ensite default-ssl | |||
</pre> | |||
5. don't forget to symbolic link the ssl module: | 5. don't forget to symbolic link the ssl module: | ||
<pre> | |||
6. restart apache and test the connection (e.g. https://localhost/): | a2enmod ssl | ||
</pre> | |||
6. restart apache and '''test the connection''' (e.g. https://localhost/): | |||
<pre> | |||
/etc/init.d/apache2 restart | |||
</pre> | |||
== See also == | == See also == | ||
Line 170: | Line 81: | ||
* [https://els.earlham.edu/cayaraa/weblog/1468.html Making Moodle work with SSL] | * [https://els.earlham.edu/cayaraa/weblog/1468.html Making Moodle work with SSL] | ||
* [http://www.krufix.de/ Using the same Moodle twice in local network and Internet via SSL-Proxy] (in German) | * [http://www.krufix.de/ Using the same Moodle twice in local network and Internet via SSL-Proxy] (in German) | ||
[[pl:Apache]] | [[pl:Apache]] | ||
[[ja:Apache]] | [[ja:Apache]] | ||
[[de:Apache]] | [[de:Apache]] |
Latest revision as of 09:15, 8 December 2011
This article refers to the 'Apache HTTP server'
The Apache HTTP server is the software that (along with the PHP scripting language) 'runs' Moodle. Note that there are alternatives (e.g. IIS on Windows) but the Apache HTTP Server is very popular on all platforms.
Installing Apache
Installers are available for most platforms from http://httpd.apache.org/download.cgi. The official installation instructions are here: http://httpd.apache.org/docs/2.0/install.html. If you are running Linux then you are recommended to use the packaged version if you can. For example in Debian/Ubuntu it is simply:
sudo apt-get install apache2
See the documentation for your particular platform for the instructions. Apache is straightforward to build from source if you have to and the PHP documentation contains an article on building both Apache and PHP together - although you should rarely need to do that.
Performance
See Performance recommendations
SSL
Moodle has an option to enable login pages to force the HTTPS protocol. This is recommended but requires that your web server is configured for SSL. It is possible to run the whole site over HTTPS (typically by configuring Apache to rewrite all http:// URLs to https://) but as this disables caching, there is a considerable performance hit. Only do this if you have a very good reason.
WARNING: Before switching on login over HTTPS, make very sure that HTTPS is working (just change the http:// to https:// in any Moodle URL). If not, you may lock yourself out
You have two options for obtaining an SSL certificate:
- generate a self-signed certificate. This is fine on (say) an Intranet but unsuitable for the public internet (except perhaps for testing). The user has no assurance that the certificate is legitimate.
- purchase a certificate from a vendor. There is a surprising range of prices and value-added services available. Some hosting companies even provide free certificates.
Below are instructions for install of a self-signed certificate. If you purchase a certificate you will normally receive instructions for installing it
Debian and Apache2
1. generate a certification:
apache2-ssl-certificate
for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead:
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
2. edit /etc/apache2/ports.conf:
Listen 80 Listen 443
3. copy /etc/apache)2/sites-available/default to /etc/apache2/sites-available/default-ssl, and change /etc/apache2/sites-available/default:
NameVirtualHost *:80 <VirtualHost *:80> ... </VirtualHost>
and also /etc/apache2/sites-available/default-ssl:
NameVirtualHost *:443 <VirtualHost *:443> ... SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem ... </VirtualHost>
4. symbolic link the ssl file:
a2ensite default-ssl
5. don't forget to symbolic link the ssl module:
a2enmod ssl
6. restart apache and test the connection (e.g. https://localhost/):
/etc/init.d/apache2 restart