Cerca nel blog

martedì 2 dicembre 2014

Php Access Linux ODBC

Ciao, il problema stavolta è interrogare un DB Access con PHP5 sul seguente ambiente:

Sistema Operativo: CentOS release 6.6 (Final)
Driver Odbc: unixODBC 2.2.14
Php: PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53)
Apache: Server version: Apache/2.2.15 (Unix)

File: /etc/odbcinst.ini

[NomeDataSource]
Description = Il nostro database access
Driver = /usr/lib64/libmdbodbc.so.0
Database = /percorso/del/file.mdb



File: /etc/odbc.ini

[MDB]
Description = Driver per l'accesso a database Access
Driver = /usr/lib64/libmdbodbc.so.0
Usage = 1
FileUsage = 1


NB: A seconda della versione del sistema operativo la libreria potrebbe risiedere in un percorso differente. Ovviamente al termine dell'installazione in server apache deve essere riavviato


martedì 2 settembre 2014

Gestione Logs Icinga / Nagios

Mi è capitata una situazione in cui una macchina con installata Icinga continuava a saturare il disco...causa i logs creati dal monitoring degli apparati. Ho trovato uno script in rete che funziona benissimo

manage_naglogs.sh

eseguendo su crontab (facendo attenzione al prefisso dei files..nel mio caso era icinga- e non nagios-) con la seguente sintassi manage_naglogs.sh /percorso/logs/inciga 7 30 verranno lasciati intatti i file di log dei 7 gg prcedententi, compressi quelli tra tra l'ottavo giorno e il 30esimo giorno e il resto eliminati.

lunedì 7 luglio 2014

Liberare memoria su Linux

Non ho voglia di scrivere :-D

PERMETTE DI LIBERARE LA MEMORIA CACHETA:
sudo sysctl -w vm.drop_caches=3

OPPURE
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

VISUALIZZA LA MEMORIA UTILIZZATA
watch -n 1 cat /proc/meminfo

martedì 24 giugno 2014

Autocompletamento non funziona su Eclipse Zend PDT

rm /{PATH_WORK_SPACE}/.metadata/.plugins/org.eclipse.dltk.core.index.sql.h2/* Riavvia eclipse e assicurati che il progetto abbiamo come include library Zend Quit Eclipse Go to workspace/.metadata/.plugins/org.eclipse.jdt.core Remove *.index and savedIndexNames.txt Restart Eclipse and search Ctrl+T for the offending type. The indexes will be rebuilt. Le jeux sont fait!

giovedì 1 maggio 2014

creazione email massiva su plesk

Obiettivo: creazione di x indirizzi email su dominio creato su Plesk
Soluzione: Plesk CLI

script per la creazione degli indirizzi email




File accounts.csv

domenica 20 aprile 2014

Plesk10/11 - php: command not found crontab

Mi è capitato di spostare alcune applicazioni da un server con versione 10.4 a un altro con versione 11.5.

Quando sono andato ad impostare le operazioni pianificate ricevevo il messaggio di errore in oggetto.

Non ho ben capito se è un problema o una nuova implementazione..sta di fatto che plesk aggiunge nel file crontab dell'utente (potente editarlo con crontab -u UTENTE PLESK -e) la riga

SHELL=/usr/local/psa/bin/chrootsh

Quindi è sufficiente cambiare la shell di esecuzione nel mio caso:


/usr/local/psa/bin/server_pref -u -crontab-secure-shell /bin/bash

A sto punto plesk saprà che dovrà utilizzare questa shell per l'esecuzione degli script

Bye!

mercoledì 9 aprile 2014

Aggiungere una password ad una partizione criptata con crypt luks


Verifica quale sia la partizione criptata: blkid
Elenca gli slot utilizzati per la password (ovviamente il dev lo reperite dal comando sopra): cryptsetup luksDump /dev/sd5

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>