Archivio

Posts Tagged ‘apache2’

Installare la suexec e mod_fcgid con apache2 in Debian Lenny

14 settembre 2009 2 commenti

apacheDi default il web server apache esegue gli script php di un sito con l’utente “www-data”. Per permettere ad uno script di memorizzare dati all’interno di una directory, allora i permessi di quest’ultima devono essere settati a 777 oppure il proprietario della cartella deve essere l’utente “www-data”. In questo caso, se sul vostro server web e’ attivo piu’ di un sito internet, allora uno script di un dominio potrebbe modificare i dati di un’altro. Come fare per ovviare a questo problema?  Eseguendo gli script di ogni sito con un utente distinto installando la suexec, mod_fcgid ed utilizzando il php in modalita’ cgi. Piu’ difficile a dirsi che a farsi, bastano difatti pochi comandi e qualche minuto per configurare il tutto:

1) Innanzitutto e’ necessario installare la suexec, il modulo fcgid ed il
php come cgi:

apt-get install apache2-suexec libapache2-mod-fcgid php5-cgi

2) Abilitiamo questi due moduli:

a2enmod suexec
a2enmod fcgid

3) Adesso dovremo forzare il PHP a correggere il percorso del cgi in modo conforme alle specifiche PATH_INFO/PATH_TRANSLATED. Bastera’ aggiungere nel php.ini (/etc/php5/cgi/php.ini) questa direttiva:

cgi.fix_pathinfo = 1

4)Andiamo a creare l’utente proprietario del sito:

adduser utente-sito

5) Creiamo le directory che conterra’ il sito web ed impostiamo su essa il
corretto proprietario:

mkdir -p /var/www/vhosts/sito1/htdocs
chown utente-sito:utente-sito /var/www/vhosts/sito1/htdocs

N.B. La suexec e’ precompilata per contenere i siti in /var/www
Potrete verificarlo eseguendo questo comando e leggendo il contenuto della
variabile AP_DOC_ROOT:
/usr/lib/apache2/suexec -V
Per modificarlo purtroppo dovrete ricompilare la suexec

6) Creiamo il wrapper che utilizzeremo per avviare il php e configurare mod-fcgid:

mkdir -p /var/www/fcgid-conf-sito1

Inseriamo nel file /var/www/fcgid-conf-sito1/sito1.conf questo:

#!/bin/sh
export PHPRC=/etc/php5/cgi
export PHP_FCGI_MAX_REQUESTS=400
export PHP_FCGI_CHILDREN=2
exec /usr/lib/cgi-bin/php

PHPRC,PHP_FCGI_MAX_REQUESTS e PHP_FCGI_CHILDREN sono opzionali e se verranno omessi sara’ impostato il valore di default. Sono utili per poter indicare il percorso del php.ini, permettendo cosi’ di utilizzare una configurazione diversa da sito a sito, oppure per definire il numero di child per processo ed il numero di richieste che puo’ gestire prima di terminare.

7) Impostiamo i permessi ed il corretto proprietario del wrapper:

chmod 755 /var/www/fcgid-conf-sito1/sito1.conf
chown -R utente-sito:utente-sito /var/www/fcgid-conf-sito1

8 ) Non ci rimane che inserire questo codice nella configurazione del sito:

<IfModule mod_fcgid.c>
SuexecUserGroup utente-sito utente-sito
PHP_Fix_Pathinfo_Enable 1
<Directory /var/www/vhosts/sito1/htdocs>
Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/fcgid-conf-sito1/sito1.conf .php
Order allow,deny
Allow from all
</Directory>
</IfModule>

9) Riavviamo il server web:

/etc/init.d/apache2 restart

Riproduci filmati in streaming dal tuo sito

3 settembre 2009 1 commento

Contrariamente a quanto si potrebbe pensare, visualizzare filmati in streaming dal proprio sito e’ un’operazione davvero semplice. Basta installare il modulo mod_flvx nel web server apache e pubblicare i tuoi video insieme ad un player flash. Cliccate su questo link per vedere un esempio di streaming.

Questi sono i passi da fare:

1) Installare il modulo mod_flvx su apache2
2) Pubblicare sul sito un player flash
3) Calcolare i meta data ed inserirli all’interno del file che volete riprodurre
4) Preparare la pagina web per lo streaming

1)
mod_flvx e’ gratuito, coperto da licenza Apache License v2 http://www.apache.org/licenses/LICENSE-2.0 e si puo’ scaricare qui
Per compilarlo bastera’ eseguire questo comando (con utente root):

apxs2 -i -a -c mod_flvx.c

N.B. Per compilare mod_flvx viene utilizzata l’applicazione ‘apxs2′ (APache eXtension). Se non e’ presente nel vostro sistema dovrete installarla. Per chi utilizza la distribuzione Debian bastera’ digitare “apt-get install apache2-prefork-dev”

Adesso nella configurazione del web server apache (/etc/apache2/httpd.conf in Debian 5.0) si dovranno inserire le seguenti direttive:

LoadModule flvx_module /usr/lib/apache2/modules/mod_flvx.so
AddHandler flv-stream .flv

Si dovra’ riavviare il servizio:

/etc/init.d/apache2 restart

2)
Come anticipato dovremo pubblicare nel nostro sito anche il player flash (oltre che i video da riprodurre).  Il player da utilizzare potrete prelevarlo qui

E’ gratuito per usi non commerciali, altrimenti e’ necessario acquistare la licenza (il sito ufficiale e’ http://www.topfstedt.de)

3)
Dopo aver preparato il vostro video dovrete calcolare i meta data ed inserirli all’interno del file. Questo si fa con l’applicazione (gratuita) flvtool2 . Con le distribuzioni linux Debian o Ubuntu potrete installarla con il comando “apt-get install flvtool2″.
Il comando da eseguire e’ questo:

flvtool2 -U video.flv

4)
A questo punto non rimane che inserire questo codice nella pagina web che dovra’ contenere il video (modificando ovviamente www.NomeDelTuoSito.it, il percorso di FLVScrubber2.swf ed il nome del file video):

<object width=”384″ height=”288″>
<param
name=”movie”
value=”http://www.NomeDelTuoSito.it/FLVScrubber2.swf?file=VideoDaRiprodurre.flv&bufferTime=2&startAt=0&autoStart=true” />
<param name=”allowScriptAccess” value=”sameDomain” />
<param name=”allowFullScreen” value=”true” />
<embed
src=”http://www.NomeDelTuoSito.it/FLVScrubber2.swf?file=VideoDaRiprodurre.flv&bufferTime=2&startAt=0&autoStart=true”
type=”application/x-shockwave-flash”
allowScriptAccess=”sameDomain”
allowFullScreen=”true”
width=”384″ height=”288″ />
</object>