- Home
- Categorie
- Coding e Sistemistica
- Hosting e Cloud
- Abilitare Php Su Exec Apache
- 
							
							
							
							
							Abilitare Php Su Exec ApacheQuesto tutorial l'ho trovato sul blog di Juanin: Attivare php come modulo CGI su un virtualhost ATTENZIONE - PREMESSA: Se sul server è installato php4 sostituire php4 a php5. Individuare il file di configurazione del Virtualhost per il quale si vuole effettuare la modifica. (Solitamente si trova in /etc/apache2/sites-available/ ma ad ognuno il suo.) Una volta trovato il file del Virtualhost che vi interessa aggiungere a quest?ultimo le seguenti direttive: SuexecUserGroup "#1001" "#1002" ```Sostituendo i corretti valori di Uid e Gid (in forma numerica) con il quale si vuol fare girare gli script PHP (generalmente questi coincidono con Uid e Gid dell?utente FTP). **Nota:** Si possono ricavare gli Uid e Gid numerici di un utente di cui si conosce il nome-utente di login con il comando:id nome-utente 
 uid=1001(nome-utente) gid=1002(nome-utente) groups=1000(nome-utente), 20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev)Una volta ricavato l?uid e inserita nel virtualhost la direttiva con gli id corretti, aggiungere allo stesso file le seguenti righe:AddHandler php-script .php 
 Action php-script /cgi-bin/php5E verificare che nel Virtualhost sia presente la direttiva **?ScriptAlias?** simile a quanto riportato sotto:ScriptAlias /cgi-bin/ /home/sito-web/cgi-bin/ 
 <Directory /home/sito-web/cgi-bin>
 allow from all
 </Directory>Successivamente è necessario copiare dentro la directory cgi-bin del Virtualhost i file php5 ed il link simbolico php -> php5 utilizzando il seguente comando:cp -a /usr/lib/cgi-bin/php* /home/sito-web/cgi-bin/ Impostare i permessi sui file copiati dentro la cgi-bin dell?utente in modo che l?utente ed il gruppo specificato in **?SuexecUserGroup?** ne siano i proprietari:chown -R 1001:1002 /home/sito-web/cgi-bin/php* Verificare la configurazione di Apache per assicurarsi che le modifiche effettuate siano corrette usando il comando:apache2ctl configtest Riavviare Apache con il seguente comando:/etc/init.d/apache2 restart Verificare il risultato tramite questo script di test:<?php 
 // Test per verificare se PHP sta girando come modulo CGI
 echo "Utente con il quale sta girando lo script PHP ed il processo di Apache:";
 echo "<br><br>";
 echo "Risultato whoami:";
 echo "<br>";
 echo exec('whoami');
 echo "<br><br>";
 echo "Risulato id:";
 echo "<br>";
 echo exec('id');
 echo "<br><br>";
 echo "Verificare le Server API per determinare in che modalità sta girando PHP";
 // Se PHP gira come CGI sarà riportato: "Server API GI/FastCGI"
 // Altrimenti il risultato sarà: "Server API Apache 2.0 Handler"
 echo "<br><br>";
 phpinfo();
 ?>
 
- 
							
							
							
							
							Perchè si dovrebbe avere questa necessità visto che è penalizzante dal punto di vista delle prestazioni?Quali soon i vantaggi? 
 
- 
							
							
							
							
							Giusto come monito a chi tramite i motori di ricerca si imbattesse in questo vecchio thread : SuExec è sorpassato ormai. Se si vogliono separare i privilegi utenti all'interno oggi si usa PHP-FPM che promette performance velocissime e può girare con permessi UID/GID separati per ogni vhost.