Linux Apache - omartek/linux_variePerLaboratorio GitHub Wiki
Per prima cosa realizza la struttura web all'interno della cartella di default,
sudo mkdir -p /var/www/primo/public_html
e dai i permessi all'utente attuale (individuato dalla variabile $USER),
sudo chown -R $USER:$USER /var/www/primo/public_html
ed ulteriori permessi di lettura per garantire l'accesso alla directory web generale e che tutti i file e le cartelle che contiene possano essere servite correttamente.
sudo chmod -R 755 /var/www
Creare una homepage d'esempio che sarà raggiungibile solo dopo aver modificato il file di configurazione 000-default.conf del punto seguente.
nano /var/www/primo/index.html
Modificare il file di configurazione di default che si trova qui:
sudo nano /etc/apache2/sites-available/000-default.conf
indicando la cartella a cui puntare modificando il valore DocumentRoot,
DocumentRoot /var/www/html
e quindi riavviare il server.
sudo service apache2 restart
Abilitare il modulo per la codifica SSL,
sudo a2enmod ssl
creare quindi una cartella dove verranno inserite le chiavi generate.
sudo mkdir /etc/apache2/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Verranno richieste alcuni informazioni; è importante in Common Name indicare il dominio o l'indirizzo IP del server. Al termine sarà necessario modificare il file di configurazione,
sudo nano /etc/apache2/sites-available/default-ssl.conf
modificando le righe in grassetto
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
'''ServerName your_domain.com or IP'''
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
'''SSLCertificateFile /etc/apache2/ssl/apache.crt'''
'''SSLCertificateKeyFile /etc/apache2/ssl/apache.key'''
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</filesmatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</virtualhost>
</ifmodule>
Al termine sarà necessario abilitare il modulo e riavviare Apache.
sudo a2ensite default-ssl.conf sudo service apache2 restart
Accedendo al sito comparirà un messaggio di warning poichè il certificato creato non è certificato da ente esterno. Volendo si potrebbero utilizzare servizi di certificazione gratuiti come Let's encrypt.
Per garantire la retrocompatibilità del nostro sito HTTPS con chi tenta di raggiungerlo in HTTP, possiamo aggiungere una ulteriore entry nel file /etc/apache2/sites-available/000-default.conf che effettua un redirect automatico:
<VirtualHost *:80>
ServerName miosito.com/
Redirect / https://miosito.com/
</virtualhost>
Nel pannello di amministrazione DNS del gestore del dominio creare HOST con indirizzo IPv4 della VPS:
- empty
- www
- wiki
sudo nano /etc/apache2/sites-available/000-default.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.scuolabit.it
DocumentRoot /var/www/html
</virtualhost>
<VirtualHost *:80>
ServerName wiki.scuolabit.it
DocumentRoot /var/www/html/wiki
</virtualhost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Modifica al file di MediaWiki contenuto in
sudo nano /var/www/html/wiki/LocalSettings.php
## The protocol and server name to use in fully-qualified URLs #$wgServer = "http://167.114.245.77"; $wgServer = "http://www.scuolabit.it"; #$wgServer = "http://wiki.scuolabit.it"; (questo non funziona ancora)