[glux] LAMP on Deb Sarge
Andrea
aerdan@inventati.org
Dom 26 Feb 2006 11:41:56 CET
LAMP
-------------------------------------------------------------------------------
Apache2
Documentazione:
http://www.debian-administration.org/articles/357
Installo i pacchetti:
- apache2-mpm-prefork
- apache2-doc
- ca-certificates
ca-certificates configuration
Trust new CAs certificates? ask
Setting Apache2 to Listen on port 80. If this is not desired, please edit
/etc/apache2/ports.conf as desired. Note that the Port directive no longer
works.
Module userdir installed; run /etc/init.d/apache2 force-reload to enable.
Modifico /etc/apache2/ports.conf lasciando solo la linea
Listen 127.0.0.1:80
In questo modo apache risponde solo alla porta 80 dell'interfaccia locale
Creo il file:
/etc/apache2/conf.d/local_configs.conf
con:
# Limitazioni di accesso al filesystem.
<Directory>
# Vieto l'accesso al filesystem
Order Deny,Allow
Deny from all
# Vieto l'utilizzo del file .htaccess in tutte le directory
# tranne per quelle specificatamente abilitate.
AllowOverride None
</Directory>
# Limito le informazioni disponibile riguardo al server.
ServerSignature Off
ServerTokens production
Avendo un solo indirizzo IP ma avendo la necessità di gestire più siti
indipendenti creo più siti virtuali basando la distinzione sul nome e non su un
indirizzo IP.
Creo due directory, una per il sito informatico e una per il sito del lavoro:
# mkdir /var/www/informatica
# mkdir /var/www/lavoro
quindi una sub-directory per ogni precedente directory dove salvare i file che
saranno pubblicati da apache:
# mkdir /var/www/informatica/docs
# mkdir /var/www/lavoro/docs
Ora creo una pagina test per ogni sito:
# touch /var/www/informatica/docs/index.html
# touch /var/www/lavoro/docs/index.html
e ci salvo una struttura base:
<html>
<head>
<title>Mydomain.com test index page</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
Per dire ad Apache che ho due siti creo in:
/etc/apache2/sites-available/
un file per sito che, per semplicità e ordine, chiamerò con il nome del sito
stesso. In questi due file scrivo la configurazione dei siti stessi.
# touch /etc/apache2/sites-available/informatica
# touch /etc/apache2/sites-available/lavoro
la configurazione è:
<VirtualHost * >
#Basic setup
ServerAdmin webmaster@mydomain.com
ServerName www.mydomain.com
DocumentRoot /var/www/mydomain.com/docs
<Directory /var/www/mydomain.com/docs>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
Sosituisco mydomain.com rispettivamente con informatica per un file e lavoro per
l'altro.
Per dire ad Apache che sono attivi utilizzo il comando a2ensite che crea un link
simbolico in:
/etc/apache2/sites-enabled/
Nel caso volessi disattivarli uso a2dissite.
# a2ensite informatica
Site informatica installed; run /etc/init.d/apache2 reload to enable.
# a2ensite lavoro
Site lavoro installed; run /etc/init.d/apache2 reload to enable.
Per navigare nei siti:
http://localhost/informatica/doc/
http://localhost/lavoro/doc/
PHP5
Installo il pacchetto:
- libapache2-mod-php5
da dotdeb.org devo quindi aggiungere in /etc/apt/source.list la seguente riga:
deb http://dotdeb.pimpmylinux.org/ stable all
quindi aggiorno gli archivi di apt e installo:
# apt-get update
# apt-get install libapache2-mod-php5
La configurazione di PHP5 si trova in:
/etc/php5/apache2/php.ini
Per maggiore sicurezza utilizzo una configurazione meno permissiva che trovo in:
/usr/share/doc/php5-common/examples/php.ini-recommended
Salvo la vecchia configurazione:
# mv /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.original
e copio la nuova:
# cp /usr/share/doc/php5-common/examples/php.ini-recommended /etc/php5/apache2/php.ini
Per impedire ad Apache di mostrare la configurazione di PHP edito php.ini
impostantdo a Off la variabile expose_php.
Pensando di seguire la convenzione che vuole tutti i file include di PHP
nominati con .inc e non volendo che questi vengano visualizzati da Apache
edito anche il file /etc/apache2/conf.d/local_configs.conf e aggiungo:
# Nasconde tutti i file con estensione .inc
<Files *.inc>
Order allow,deny
Deny from all
</Files>
MySQL
Installo i pacchetti:
- mysql-server
- php5-mysql
Documentazione in /usr/share/doc/mysql-server-5.0/README.Debian
Per prima cosa: cambiare la password dell'amministratore di database:
# /usr/bin/mysqladmin -u root password "nuova password"
vedi man page di mysqladmin.
Occorre ora testare MySQL:
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11 to server version:
5.0.18-Debian_3.dotdeb.1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE DATABASE informatica;
Query OK, 1 row affected (0.00 sec)
mysql> USE informatica;
Database changed
mysql> CREATE TABLE hardware (nome VARCHAR(20), tipo VARCHAR(20),
caratteristiche VARCHAR(120));
Query OK, 0 rows affected (0.04 sec)
mysql> INSERT INTO hardware VALUES ('Tastiera','italiana','102 tasti');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO hardware VALUES ('Touchpad','Synaptic','2 tasti');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM hardware;
+----------+----------+-----------------+
| nome | tipo | caratteristiche |
+----------+----------+-----------------+
| Tastiera | italiana | 102 tasti |
| Touchpad | Synaptic | 2 tasti |
+----------+----------+-----------------+
2 rows in set (0.01 sec)
mysql> quit
Bye
Sembrerebbe tutto OK.
PHPMYADMIN
PhpMyAdmin è, a quanto dicono su Debian Administration, un ottimo strumento per
la gestione di MySQL così decido di provarlo.
Scarico i sorgenti da http://www.phpmyadmin.net/home_page/index.php e seguo le
indicazioni in LAMP...
# mkdir /usr/local/php5
# cp phpMyAdmin-2.7.0-pl2.tar.gz /usr/local/php5/
# cd /usr/local/php5/
# bunzip2 phpMyAdmin-2.8.0-rc1.tar.bz2
# tar -xvf phpMyAdmin-2.8.0-rc1.tar
# rm phpMyAdmin-2.8.0-rc1.tar
# cp libraries/config.default.php ./config.inc.php
# vim config.inc.php
sostituisco le seguenti linee nel config file:
$cfg['PmaAbsoluteUri'] = ''; -> $cfg['http://localhost/phpmyadmin'] = '';
$cfg['blowfish_secret'] = ''; -> $cfg['blowfish_secret'] = 'passphrase';
$cfg['Servers'][$i]['auth_type'] = 'config'; ->
$cfg['Servers'][$i]['auth_type'] = 'cookie';
L'installazione è terminata. Per utilizzare il software devo legarlo ad un sito
attivo in Apache, per prova utilizzo informatica quindi aggiungo le seguenti
linee a /etc/apache2/site-available/informatica:
# Provvede a un alias per phpmyadmin
Alias /phpmyadmin /usr/local/php5/phpMyAdmin-2.8.0-rc1/
<Directory /usr/local/php5/phpMyAdmin-2.8.0-rc1/>
# Restrict phpmyadmin access to just my worksation
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
Ricarico la configurazione di apache2:
/etc/init.d/apache2 reload
Reloading web server config...done.
Ora all'indirizzo:
http://127.0.0.1/phpmyadmin/
ho accesso allo strumento che è davvero interessante.
Salto per ora l'installazione di Smarty (http://smarty.php.net/whyuse.php) e
ADODB (http://adodb.sourceforge.net) che sono comunque molto interessanti.
Forse prima devo imparare qualcosa di più elementare... ;)
a
--
ð Gli uomini sono fratelli fra loro. Cessano di esserlo quando
¶ la terra viene divisa da steccati e confini.
ñ
² Heinmot-Tayala-Ket, Nez Percé
€
¯ KeyID: 5AF81406 2005-01-03 [scadenza: 2015-01-01]
3 KeyFpr: A4E2 7C7C CFC7 1B1E E405 6443 9E07 AF95 5AF8 1406
Maggiori informazioni sulla lista
glux