LAMP, Linux Apache MySQL PHP

Installazione

Prima di iniziare l'installazione, assicurarsi che la propria distribuzione sia aggiornata (il "#" indica che si deve eseguire il comando come root):

 # apt update && aptitude upgrade

MySQL

Poi installare mysql usando il comando seguente:

 # apt install mysql-server mysql-client

Immediatamente dopo aver installato il server MySQL si dovrebbe cambiare la sua password root:

 # /usr/bin/mysqladmin -u root password 'inserire-qui-la-propria-nuova-buona-password'

Non si deve mai usare l'account e la password root quando si eseguono database. L'account root è un account privilegiato che dovrebbe essere usato solo per procedure amministrative. Sarà necessario creare un account utente separato per connettersi ai propri database MySQL da uno script PHP. Si possono aggiungere utenti ad un database MySQL usando un pannello di controllo come phpMyAdmin, per creare facilmente utenti o assegnargli permessi per i database.

Apache2

Il server web può essere installato con:

 # apt install apache2 apache2-doc

Configurare le directory utente per il server web Apache

Abilitare il modulo

# a2enmod userdir

Configurare il modulo userdir Apache in /etc/apache2/mods-enabled/userdir.conf come segue:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride All
                Options MultiViews Indexes SymLinksIfOwnerMatch
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                  </LimitExcept>
        </Directory>
</IfModule>

Per Apache 2.4 e successivi usare invece:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride All
                Options MultiViews Indexes SymLinksIfOwnerMatch
                <Limit GET POST OPTIONS>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Require all denied
                </LimitExcept>
        </Directory>
</IfModule>

Creare la directory da utente (non da root):

$mkdir /home/$USER/public_html

Cambiare gruppo da root (sostituire nel comando il proprio nome utente) e riavviare il server web:

# chgrp www-data /home/<nome_utente>/public_html
# service apache2 restart

Se si ottiene un errore Forbidden quando si accede alla cartella home da Apache, controllare che /home/nome_utente abbia i permessi impostati a drwxr-xr-x. Se i permessi sono sbagliati, correggerli usando:

# chmod 755 /home/<nome_utente>

Per poter servire PHP (PHP deve essere installato, come dicono le istruzioni) controllare che /etc/apache2/mods-available/php5.conf sia corretto:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
        Require all granted
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
        Require all denied
    </FilesMatch>
    # Per ri-abilitare php nelle directory utente commentare le righe seguenti
    # (da <IfModule ...> a </IfModule>.) NON lo impostare a On dato che
    # impedisce ai file .htaccess di disabilitarlo.
    #<IfModule mod_userdir.c>
    #    <Directory /home/*/public_html>
    #        php_admin_value engine Off
    #    </Directory>
    #</IfModule>
</IfModule>

Mettere dei contenuti web in ~/public_html e vedere il risultato su http://localhost/~nome_utente

La parte "P"

Installare la componente PHP di LAMP in Debian è piuttosto semplice, basta digitare in console da root (il # è il simbolo del prompt per root):

 # apt install php php-mysql

Se si preferisce Perl, allora si può considerare di usare:

 # apt install perl libapache2-mod-perl2

Se si preferisce Python, allora si può considerare l'uso di:

 # apt install python3 libapache2-mod-python

Configurazione

File di configurazione di Apache2: /etc/apache2/apache2.conf

Si può modificare questo file quando necessario, ma per le applicazioni più semplice non dovrebbe essere necessario dato che la maggior parte delle cose viene ora fatta usando conf.d.

Testare PHP

Per testare l'interfaccia PHP, modificare il file /var/www/html/test.php:

 # nano /var/www/html/test.php

e inserire il codice seguente.

<?php phpinfo(); ?>

Successivamente, puntare il proprio browser su http://IP_SERVER/test.php per iniziare ad usarlo.

phpMyAdmin

Probabilmente si desidera installare anche phpMyAdmin per facilitare la configurazione:

 # apt install phpmyadmin

Per avere l'accesso a phpMyAdmin sul proprio sito web (cioè http://example.com/phpMyAdmin/ ) tutto ciò che è necessario fare è includere la riga seguente in /etc/apache2/apache2.conf (necessaria solo prima di Squeeze; a partire da 6.0 verrà creato automaticamente dallo script di installazione del pacchetto il collegamento /etc/apache2/conf.d/phpmyadmin.conf -> ../../phpmyadmin/apache.conf):

Include /etc/phpmyadmin/apache.conf

Riavviare Apache:

 # /etc/init.d/apache2 restart

Andare su http://IP_SERVER/phpmyadmin/ per iniziare ad usarlo. (Sostituire IP_SERVER con l'IP o il nome del proprio PC/server oppure il nome invece di IP_SERVER) (L'IP di localhost è sempre 127.0.0.1).)

PHP: /etc/php5/apache2/php.ini

Un problema comune con la configurazione di PHP è abilitare MySQL. Basta modificare il file e decommentare la riga seguente (suggerimento: cercare mysql)

extension=mysql.so

Notare che questo non dovrebbe essere più necessario dato che ora viene usato conf.d.

MySQL : /etc/mysql/my.cnf

You can find configuration examples in /usr/share/doc/mysql-server/examples

Vedere anche


CategorySystemAdministration CategoryNetwork CategorySoftware