Cerca nel blog

domenica 30 marzo 2014

Plesk 8.6 personalizzare le impostazioni di PHP per un subdomain

L'ambiente in cui stiamo andando a lavorare è un server linux con distribuzione CentOS e il vecchio Plesk 8.6. Tutte le operazioni vengono eseguite con livello root (lanciando il comando su).

Gli obiettivi di oggi sono diversi:
  1. Cambiare la document Root di Apache per permettere di utilizzare un progetto sviluppato con Zend Framwork
  2. Modificare open_basedir per permettere l'esecuzione del progetto Zend Framwork.
  3. Non fare danni :-D

1 - Cambiare la document root:

Poichè Plesk 8.6 non ha le stesse features delle nuove versioni dobbiamo ricorrere ad un trucchetto ed agire a mano per questo obiettivo.

  • Via terminale ci posizionismo nella cartella del nostro sottodominio
    cd /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/
    Dove DOMAIN rappresenta il nome del dominio che state modificando e SUBDOMAIN il sottodominio a cui dovete modificare le impostazioni
  • Creiamo una nuova directory
    mkdir ZENDAPP
    dove ZENDAPP rappresenta il nome della cartella in cui dovete posizionere il Vs progetto.
  • Controlliamo e annotiamo i permessi e gli utenti assegnati alla document root eseguendo un:
    ls -al /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/
  • Rimuoviamo la document root originale
    rm -R /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs/
  • Creiamo un link simbolico alla cartella della Ns applicazione
    ln -s /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/ZENDAPP/
    /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs/
  • A questo punto cambiamo i permessi del link simbolico appena creato con quelli precedentemente annotati della cartella originale httpdocs. Quando cambiate il gruppo fate attenzione a digitare il path assoluto (comprensivo di slash finale!!!!) del link simbolico:
    chown -H UTENTE:GRUPPO /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs/

2 - Modificare open_basedir o le impostazioni di php.ini

Abituato alla nuova versione di Plesk mi sono trovato spiazzato davanti a questo problemino del personalizzare php.ini per un particolare dominio!
L'operazione è semplice ma come per tutte le cose se non le sai....SALLE!

  • Spostarsi nella directory conf del nostro sottodominio
    cd /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/conf/
  • Creare un nuovo file con nome vhost.conf (io come editor ho installato nano)
    nano vhost.conf
  • E mettiamo dentro le impostazioni apache che ci servono
    <directory /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs>
            php_admin_value open_basedir "/var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs:/tmp:/var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/ZENDAPP/:/usr/lib/php"
            php_admin_flag safe_mode off
    </directory>
Nell'esempio io ho abilitato alcune cartelle per l'open_basedir tra cui anche /usr/lib/php perchè la libreria di Zend risiede li dentro.


Ciao Alla prox!

lunedì 24 marzo 2014

lunedì 3 marzo 2014

Da LAMP a AMP - Installazione di Apache Mysql Php su Mac OSX

Dopo aver per lungo tempo ignorato il mac...ho deciso di acquistarne uno per testarlo e per buttarmi nel mondo delle apps..

Ciò che prima si chiamava LAMP ora ha perso la L e si chiama AMP (Apache Mysql Php)

Sistema operativo utilizzato MacOSX 10.9 (Mavericks). Prima operazione attivare l'utente root con cui devono essere tutte le operazioni di installazione:

  1. preferenze di sistema
  2. utenti e gruppi
  3. lucchetto modifiche disabilitate
  4. immetti password del tuo utente
  5. Opzioni di login
  6. Server account network accedi
  7. apri utlity Directory
  8. lucchetto Modifiche disabilitate
  9. dalla barra del menù in alto la voce composizione
  10. abilita utente root
  11. specificare una password


Installazione Apache
Il webserver risulta già installato ed è necessario semplicemente avviare il server con il comando apachectl start. Ho notato che riavviando il Mac con il servizio attivo questo rimane operativo all'avvio.

Installazione di PHP

Il PHP è già installato è sufficiente editare il file di configurazione di apache dal terminale nano /etc/apache2/httpd.conf e levare il commento dalla riga LoadModule php5_module libexec/apache2/libphp5.so

Installazione di MYSQL
Mysql è un pò meno semplice rispetto ai primi due :-) ma comunque è in stile mac...
E' sufficiente scaricare il pacchetto .dmg dal sito di mysql e il gioco e fatto.
Per evitare di dover avviare ogni volta a mano il server potente installare il pacchetto incluso "MySQLStartupItem.pkg".
Imposta la password con /usr/local/mysql/bin/mysqladmin -u root password 'TUA_PASSWORD'

Installazione di phpmyadmin
E'sufficiente scaricare il pacchetto dal sito ed estrarlo nella home di apache (/Library/WebServer/Documents/) eseguendo lo script di setup http://localhost/phpmyadmin/setup è possibile generare il file di configurazione di phpmyadmin (permessi permettendo!).
Le cose importanti sono 2:

  1. Verificare attraverso la funzione phpinfo() quale sia il path del file socket di mysql (nel mio caso /tmp/mysql.sock) per l'estensione utilizzata da php ( potrebbe essere il parametro mysqli.default_socket oppure mysql.default_socket)
  2. creare il file di configurazione affinche phpmyadmin si colleghi con il sock e non via tcp e attraverso l'estensione appropriata (consiglio mysqli).

Creazione di un VirtualHost
Questa configurazione prescinde dal sistema operativo ma comunque l'ho utilizzata in questo contesto e quindi la riporto :)
In coda al file di configurazione /etc/apache2/httpd.conf ho aggiunto un inclusione attraverso la direttiva Include /private/etc/apache2/extra/*.local.conf in questa maniera verranno inclusi tutti i file presenti nella directory extra che terminano con il suffisso .local.conf.
Il file myvirtualhosts.local.conf contiene le seguenti direttive (ovviamente l'host sito1.local deve essere presente nel file /etc/hosts poichè non risolto da nessun DNS)

NameVirtualHost sito1.local:80
<VirtualHost sito1.local:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/Users/utente/lavori/sito1.local/public"
    ServerName comettiabitare.local
    ServerAlias comettiabitare.local
    ErrorLog "/private/var/log/apache2/sito1.local-error_log"
    CustomLog "/private/var/log/apache2/sito1.local-access_log" common
    <directory "/Users/utente/lavori/sito1.local/public">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </directory>
</VirtualHost>

NameVirtualHost localhost:80
<VirtualHost localhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "/private/var/log/apache2/localhost-error_log"
    CustomLog "/private/var/log/apache2/localhost-access_log" common
    <directory "/Library/WebServer/Documents">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </directory>
</VirtualHost>