Grazie a questo tutorial, vedremo come sia possibile installare senza problemi Apache 2 con “mod_fcgid” e PHP5 su Ubuntu 8.10. Per chi non lo sapesse, mod_fcgid è una alternativa compatibile al vecchio mod_fastcgi. In questo modo potrete eseguire script con i permessi dei rispettivi proprietari piuttosto che con quegli dell’utente Apache.
1. Premessa:
In questa guida si utilizza server1.example.com come hostname e 192.168.0.100 come indirizzo IP.
Diventiamo amministratori da terminale:
sudo su
Adesso lanciamo questo comando:
ln -sf /bin/bash /bin/sh
Questo comando necessita anche questa serie di comandi per disabilitare AppArmor:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
2. Installazione vera e propria:
Con questo comando installeremo tutto l’occorrente:
apt-get install apache2 apache2-suexec libapache2-mod-fcgid php5-cgi
Se Apache fosse stato già installato con PHP5 come modulo Apache, disabilitate il modulo tramite questo comando:
a2dismod php5
Abilitate i seguenti moduli:
a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod fcgid
Aprite il file /etc/php5/cgi/php.ini con il vostro editor preferito, per esempio con gedit:
vi /etc/php5/cgi/php.ini
Una volta apertosi il file, aggiungiamo alla fine la seguente riga:
cgi.fix_pathinfo = 1
Ricaricate Apache con questo comando:
/etc/init.d/apache2 force-reload
3. Creare Vhosts www.example1.com www.example2.com
Gli host che creeremo www.example1.com e www.example2.com avranno come proprietari rispettivamente web1 e web2.
Creiamo utenti e gruppi:
groupadd web1
groupadd web2
useradd -s /bin/false -d /var/www/web1 -m -g web1 web1
useradd -s /bin/false -d /var/www/web2 -m -g web2 web2
Creiamo le directory necessarie e le assegnamo a web1 e web2:
mkdir -p /var/www/web1/web
chown web1:web1 /var/www/web1/web
mkdir -p /var/www/web2/web
chown web2:web2 /var/www/web2/web
Avvieremo PHP usando suExec:
/usr/lib/apache2/suexec -V
Ecco l’output restituito:
root@server1:~# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT=”/var/www”
-D AP_GID_MIN=100
-D AP_HTTPD_USER=”www-data”
-D AP_LOG_EXEC=”/var/log/apache2/suexec.log”
-D AP_SAFE_PATH=”/usr/local/bin:/usr/bin:/bin”
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX=”public_html”
root@server1:~#
Proseguiamo:
mkdir -p /var/www/php-fcgi-scripts/web1
mkdir -p /var/www/php-fcgi-scripts/web2
vi /var/www/php-fcgi-scripts/web1/php-fcgi-starter
#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php
vi /var/www/php-fcgi-scripts/web2/php-fcgi-starter
#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php
Chmoddiamo le nostre directory:
chmod 755 /var/www/php-fcgi-scripts/web1/php-fcgi-starter
chmod 755 /var/www/php-fcgi-scripts/web2/php-fcgi-starter
chown -R web1:web1 /var/www/php-fcgi-scripts/web1
chown -R web2:web2 /var/www/php-fcgi-scripts/web2
Creiamo i Vhosts per www.example1.com e www.example2.com:
vi /etc/apache2/sites-available/web1
ServerName www.example1.com
ServerAlias example1.com
ServerAdmin webmaster@example1.com
DocumentRoot /var/www/web1/web/SuexecUserGroup web1 web1
PHP_Fix_Pathinfo_Enable 1Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php-fcgi-scripts/web1/php-fcgi-starter .php
Order allow,deny
Allow from all# ErrorLog /var/log/apache2/error.log
# CustomLog /var/log/apache2/access.log combined
ServerSignature Off
a2ensite web1
vi /etc/apache2/sites-available/web2
ServerName www.example2.com
ServerAlias example2.com
ServerAdmin webmaster@example2.com
DocumentRoot /var/www/web2/web/SuexecUserGroup web2 web2
PHP_Fix_Pathinfo_Enable 1Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php-fcgi-scripts/web2/php-fcgi-starter .php
Order allow,deny
Allow from all# ErrorLog /var/log/apache2/error.log
# CustomLog /var/log/apache2/access.log combined
ServerSignature Off
a2ensite web2
Infine ricaricate Apache:
/etc/init.d/apache2 reload
Abbiamo terminato.
Qualora volesse testare uno script, createlo:
vi /var/www/web1/web/info.php
Copiamo questo all’interno e salviamo:
Prova di Installazione Apache
Adesso apriamo il nostro browser e puntiamolo su www.example1.com/info.php.
Articoli della stessa categoria:
- Nessuno trovato