LAMP (Italiano)
From ArchWiki
i18n |
---|
English |
Italiano |
Русский |
Česky |
简体中文 |
Español |
Contents |
Apache, PHP, and MySQL
Questo documento descrive i passi per creare un Server Web basato su Apache su Arch Linux. Spiega inoltre come installare PHP e MySQL ed integrarlo con il server Apache
Installare i Pacchetti
# pacman -Sy # pacman -S apache # pacman -S php # pacman -S mysql # pacman -S libxml2
Se volete potete installare solo apache, apache e php, o tutti e tre. Questa guida assume che voi li abbiate installati tutti e tre, ma se volete potete fermarvi dopo ogni sezione.
Configurare Apache
- Aggiungete questa linea in
/etc/hosts
(se il file non esiste, createlo):
127.0.0.1 localhost.localdomain localhost
Nota: Se volete un hostname differente, mettetelo alla fine:
127.0.0.1 localhost.localdomain localhost myhostname
- Editate
/etc/rc.conf
: Se nel primo step avete messo un hostname, la variabile HOSTNAME deve avere lo stesso valore; altrimenti, usate "localhost":
# # Networking # HOSTNAME="localhost"
- Commentate un modulo nella configurazione di Apache
# nano /etc/httpd/conf/httpd.conf
LoadModule unique_id_module modules/mod_unique_id.so
a
#LoadModule unique_id_module modules/mod_unique_id.so
- Lanciate dal terminale (come root):
# /etc/rc.d/httpd start
- Apache ora dovrebbe essere attivo. Testatelo visitando
http://localhost/
nel nostro browser. Dovreste vedere una semplice pagina di test di Apache.
- Editate
/etc/rc.conf
(per lanciare Apache durante il boot):
DAEMONS=(... some daemons ... httpd)
Oppure aggiungete questa linea in rc.local
:
/etc/rc.d/httpd start
- Se volete che le directory degli utenti siano accessibili dal web (es.
~/public_html
nella macchina sarà accessibile comehttp://localhost/~user/
, decommentate le seguenti linee in/etc/httpd/conf/extra/httpd-userdir.conf
:
UserDir public_html
e
<Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI <Limit GET POST OPTIONS PROPFIND> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS PROPFIND> Order deny,allow Deny from all </LimitExcept> </Directory>
Dovrete essere sicuri che i permessi delle vostre home directory siano settati nella maniera corretta in modo che Apache possa usarle. La vostra directory e ~/public_html/
devono essere eseguibili per Others ("il resto del mondo"). Questo può essere fatto con:
$ chmod o+x ~ $ chmod o+x ~/public_html
Ci sono modi più sicuri per settare i permessi, magari creando un gruppo speciale e permettendo solo a voi e ad Apache di farne parte... dipende da quanto siete attenti alla sicurezza.
Opzioni addizionali per Apache
Decommentare per utilizzare.
Questa opzione presente in /etc/httpd/conf/httpd.conf potrebbe interessarvi:
# Listen 80
Questa è la porta in ascolto di Apache. Per una connessione con un router, dovete aprire la porta.
# ServerAdmin sample@sample.com
Questo è l'indirizzo e-mail che troverete nelle pagine d'errore.
# DocumentRoot "/srv/http"
Questa è la directory dove potete mettere le vostre pagine web, ma potete cambiarla.
Configurare PHP
PHP è praticamente avviabile "out of the box" ora.
- Aggiungete queste righe in
/etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so Include conf/extra/php5_module.conf
- Ricordate di aggiungere il riferimento al file .phtml se necessario nel file /etc/httpd/conf/extra/php5_module.conf:
DirectoryIndex index.php index.phtml index.html
- Se volete il modulo libGD , decommentate in
/etc/php/php.ini
:
;extension=gd.so
a
extension=gd.so
- Se la vostra
DocumentRoot
è fuori da/home/
, aggiungetela aopen_basedir
nel file/etc/php/php.ini
come:
open_basedir = /home/:/tmp/:/usr/share/pear/:/path/to/documentroot
- Riavviate il servizio Apache perché i cambiamenti facciano effetto (da root):
# /etc/rc.d/httpd restart
- Testate PHP questocon un semplice script:
<html> <head> <title>Pagina di test per PHP</title> </head> <body> Questa è Arch Linux, con attivo PHP. <?php phpinfo(); ?> </p> </body> </html>
Salvete questo file come test.php
e copiatelo in /srv/http/
o in ~/public_html
secondo la configurazione adottata. Inoltre, ricordate di renderlo eseguibile (chmod o+x test.php
).
- Testiamo PHP: http://localhost/test.php o http://localhost/~myname/test.php
# pacman -S php-apache
Setup MySQL
Seguite questi passi solo se necessitate del supporto MySQL. Configurate MySQL come descritto qui: MySQL (Italiano)
- Editate
/etc/php/php.ini
(questo si trova in/usr/etc
nei sistemi vecchi) Per decommentare le seguenti righe (Rimuovendo i;
):
;extension=mysql.so
a
extension=mysql.so
- Potete aggiungere degli utenti con privilegi minori per i vostri script web editando le tabelle che si trovano nel database di
mysql
. Dovete riavviare MySQL perché i cambiamenti abbiano effetto. Non dimenticate di verificare la tabellamysql/users
. Se c'è un secondo record per root e il vostro hostname è senza alcuna password settata, chiunque dal vostro host potrà ottenere un pieno accesso. Guardate la prossima sezione per questo.
- Potreste ottenere il messaggio "
error no. 2013: Lost Connection to mysql server during query
" quanto andrete a connettervi al demone MySQL da TCP/IP. Questo è il sistema di wrapping TCP (tcpd), che usa il sistema dihosts_access(5)
per permettere o non permettere le connessioni.
- Se avete questo problema, assicuratevi di aver aggiunto questa linea nel vostro file /etc/hosts.allow:
# mysqld : ALL : ALLOW # mysqld-max : ALL : ALLOW # and similar for the other MySQL daemons.
- Note: L'esempio qui sopra è il caso semplice, stiamo dicendo a tcpd di permettere connessioni da ovunque. Potreste fare una scelta più appropriata della clausola fin troppo permissiva ALL. Assicuratevi solo che localhost e l' IP address (numerico o DNS) della interfaccia dalla quale vi collegate siano specificati.
- Potrebbe anche essere necessario editare
/etc/my.cnf
e commentare la lineaskip-networking
così:
skip-networking
a
#skip-networking