Apache2 Hosting

Questa non è una guida ma una serie di appunti messi assieme per realizzare un host di due pagine contenenti owncloud e homepage del server.

Per primissima cosa vado a configurare il file /etc/hosts:

#
# Indirizzi IPv4.
#

127.0.0.1	localhost.localdomain localhost
192.168.x.x	myserver.org myserver.local myserver
192.168.x.x	myserver.org myserver

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Da notare che in 127.0.0.1 viene messo a fine indirizzamento il nome del server, cosi facendo si possono omettere altre indicazioni che potrebbero creare conflitto ai fini del corretto funzionamento di apache.

Un esempio problematico:

#
# Indirizzi IPv4.
#
127.0.0.1	localhost
127.0.1.1	localhost
127.0.0.1	localhost.localdomain		localhost
192.168.x.x	myserver.org		localhost

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

In questo caso si avra un errore in /var/log/apache2/error.log seguente:
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

In /etc/apache2/conf.d/virtual.conf devo avere questa configurazione:

#
#  We're running multiple virtual hosts.
#

NameVirtualHost *:80

In caso contrario nei log di apache si avrebbe una dicitura che riporta:
VirtualHost *:80 — mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

riavviamo apache dopo le modifiche

service apache2 reload && service apache2 restart

Fatta questa procedura iniziamo con analizzare il file di log digitando:

less /var/log/apache2/error.log

In passato ho avuto parecchie noie con il virtual host di apache2, per mia ostinazione cercavo di ottenere un server di dominio a cui aggiungendo /pagina/ (myserver/pagina/) si potesse visualizzare delle pagine diverse.
Ho proceduto sempre inserendo in /etc/apache2/sites-avaible una copia di default.conf opportunamente modificata eseguendo poi un ln in sites-enabled.

	ServerAdmin webmaster@localhost

DocumentRoot /var/www

		Options FollowSymLinks
		AllowOverride None

		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined

Cambiando il percorso della cartella la porta da usare e l’ip!
Deciso a porre fine a questo problema ho deciso di usare invece la directory /etc/apache2/conf.d/ interessato ad avere owncloud e pyload utilizzando semplicemente lo “/” ho trovato molto comodo questo tipo di sistema, creando un file con il nome del programma.conf ed aggiungendo come segue:

<IfModule mod_alias.c>
Alias /mypafe "/var/www/mypage"
</IfModule>
<Directory /var/www/mypage>
Options None
Order allow,deny
allow from all
</Directory>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ErrorLog /var/www/logs/error.log 
CustomLog /var/www/logs/access.log combined 
</VirtualHost>

In questo modo posso assegnare un alias alla mia pagina web locata nella cartella “/var/www” digitando myserver/mypage o myserver accederò alla stessa pagina, detto ciò proviamo con owncloud:

<IfModule mod_alias.c>
Alias /owncloud "/var/www/owncloud"
</IfModule>

<Directory /var/www/owncloud>
Options None
Order allow,deny
allow from all
</Directory>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ErrorLog /var/www/owncloud/logs/error.log 
CustomLog /var/www/owncloud/logs/access.log combined 
</VirtualHost>

Con questa semplice config posso accedere ad owncloud digitando myserver/owncloud/ bisogna tenere presente che, in questo caso, quando si creano nuove pagine bisogna creare anche le directory logs.