OVH Community, your new community space.

Configurazione PHP-Mysql-Apache Ubuntu Debian


PaNiCo
07.06.2013, 00.02
Citazione Originariamente Scritto da TheDarkITA
Dovresti utilizzare php-fpm e mettere su apache mod_fastcgi per far girare ogni sito con utente e gruppo corretto.

ciao TheDarkITA e ciao Gnoll e ciao mac grazie per la risposta non appena possibile provo e vi faccio sapere se riesco, siccome sono proprio principiante in questo settore vorrei riuscire a sistemare il vps per i 3 siti che ho e stare co l anima in pace riguardo problemi dei vari provider di hosting cndivisi e non : ) comunque sia grazie ancora buona serata.

Gnoll
05.06.2013, 23.59
Citazione Originariamente Scritto da PaNiCo
ciao azrael666x grazie per la tua risposta ma non riguarada un problema del server ma della guida di leo che ho seguito ma non riesco a capire questa cosa.
Ciao PaNiCo, il problema è che tu stai sicuramente creando un utente effettivo ( con useradd o adduser ) e quindi ti viene creata la home dell'utente ( /home/NOMEUTENTE ) e tu vorresti metterci il sito dentro.

Il punto è che la home dell'utente ha i permessi dell'utente creato, mentre apache viene avviato come root ma poi diventa "www-data", quindi quando php deve eseguire un operazione qualsiasi ( upload di un immagine, creazione di un file o una directory ) la fa con l'utenza "www-data" che naturalmente non potrà scrivere in una directory in cui non ha permessi.

Credo che tu voglia creare utenti effettivi perchè cosi puoi connetterti in ftp con quella username e password, quindi non considero soluzioni senza "utenti" ( o con utenti virtuali ):

Per ovviare il problema potresti inserire tutti gli utenti che utilizzi nel gruppo "www-data" e assegnare i permessi di scrittura nella home dell'utente al gruppo:

usermod -G www-data NOME_UTENTE
chmod -R 770 /home/DIRECTORYUTENTE


il primo comando serve per inserire l'utente nel gruppo www-data, mentre il secondo comando permette a tutti gli utenti che sono nel gruppo di leggere\scrivere\eseguire i file all'interno della directory specificata, in questo modo dovrebbe andare.


Spero di esserti stato d'aiuto.

Emanuele.

mac
05.06.2013, 23.55
In questo specifico caso, l'utente del webserver è "www-data" per ogni Virtualhost. I permessi di ogni utente, devono essere adeguati di conseguenza.

Avendo la necessità di far girare il webserver con i permessi di uno specifico utente, bisogna utilizzare altro. Ad esempio:
-Apache ITK (apache2-mpm-itk)
-Apache mod_ruid2 (libapache2-mod-ruid2)
ma ci sono anche altre soluzioni.

Contrariamente a quanto consiglia la guida, io userei sites-available/ e sites-enabled/ splittando la configurazione di ogni virtualhost in un file per ogni dominio... e rispetterei la "debian-way" per la configurazione. Non è certo obbligatorio per il funzionamento, ma semplifica di molto la vita.

Con rispetto parlando per chi l'ha scritta, personalmente questa guida mi piace davvero poco.

TheDarkITA
05.06.2013, 23.53
Dovresti utilizzare php-fpm e mettere su apache mod_fastcgi per far girare ogni sito con utente e gruppo corretto.

PaNiCo
05.06.2013, 19.57
Citazione Originariamente Scritto da azrael666x
Ti ricordo che il servizio di OVH è di tipo non gestito, ma se non trovi assistenza qui sul forum, puoi sempre provare richiedere un intervento a pagamento ai tecnici OVH, tramite ticket incidente, sezione "Supporto" > "Dichiarare un incidente".

ciao azrael666x grazie per la tua risposta ma non riguarada un problema del server ma della guida di leo che ho seguito ma non riesco a capire questa cosa.

azrael666x
05.06.2013, 18.38
Ti ricordo che il servizio di OVH è di tipo non gestito, ma se non trovi assistenza qui sul forum, puoi sempre provare richiedere un intervento a pagamento ai tecnici OVH, tramite ticket incidente, sezione "Supporto" > "Dichiarare un incidente".

PaNiCo
05.06.2013, 17.05
ciao a tutti saro molto spiccio nel spiegarvi il mio problema:

la guida l ho trovata molto utile ma ho trovato un "intoppo"
In poche parole nel momento in cui io vado a creare un nuovo utente per avere il risultato /home/utente_creato il sito viene visualizzzato correttamente ma il php mi gioca brutti schrzi ovvero non mi crea le pagine non cancella li elementi ecc... insomma alla fine ho indagato sulla cosa perchè mi pareva strana e sono arrivato a un risultato,
nella configurazione di apache2 ce un file (/etc/apache2/envvars) dove viene indicato l user e il gruppo cui ha i permessi apache di default è www-data;
io ho provato a indicare precedentemente www-data e ha fare la root del mio sito nella cartella /var/www e fin qui tutto ok funzionava alla perfezione,
ma alla creazionione di un sottodominio dato il comando per creare l utente aggiunto il vitual host reload apache ed è spuntato il primo problema quello spiegato nelle prime linee, successivamente ho edittato il file (/etc/apache2/envvars)e ho indicato l user precedentemente indicato riavviato apache e dato i permessi al processo il rusultato è stato che l user del sottodominio ha cominciato a funzionare perfettamente e quello di root in /var/www no.
la soluzione drastica sarebbe mantenere tutti i siti su un solo user e fare delle sotto cartelle la cosa l ho gia provata e funziona ma io vorrei mantenere la linea di un sottodominio un user perchè li vorrei limitare un quanto risorse hd;
ho provato anche a mettere li user nel gruppo di www-data sperando in un risultato ma nulla successivamente ho provato a cambiare la home di ogni utente mantenendola in /var/www/sottodomino/ ma ancora nessun risultato

insomma mi sono trovato davanti a questo problema deduco sia un problema di permessi ma non capendo molto di questo ambiente volevo chiedervi che ne pensate

spero di non farvi perdere molto tempo grazie da PaNiCo.

Gnoll
10.06.2010, 17.43
io Credo sia meglio installare una cosa per volta, perchè si bada piu alla configurazione e sopratutto alla sicurezza, derivata dalla configurazione, installare tutto insieme significa declinare l'impostazione dei servizi al pacchetto precompilato, al gestore di pacchetti e ai file di configurazione di default, ed essendo di default è difficile che siano sicuri, ergo...

Davide
10.06.2010, 17.35
Credo sia sufficiente, invece di seguire tutta la procedura, digitare

Codice:
sudo apt-get install phpmyadmin
- tutto viene installato automaticamente, anche php e mysql vengono configurati per funzionare con apache senza dover editare a mano dei files.

Certo è consigliabile mettere una password all'utente root di MySql!!!

Ego-Ale-Sum
06.03.2010, 18.32
mamma mia povero italiano... "o modificato"...

comunque...
ti dice che stai configurando 2 address-based virtual hosts sullo stesso indirizzo (stesso IP e porta).
devi usare "NameVirtualHost" in questo caso.

gio01
06.03.2010, 18.07
Ho un problema
Reloading web server config: apache2[Sat Mar 06 18:05:54 2010] [warn] VirtualHost 178.32.35.151:80 overlaps with VirtualHost 178.32.35.151:80, the first has precedence, perhaps you need a NameVirtualHost directive
ho modificato il fle ports ma lo dice lo stesso

Gnoll
11.11.2009, 17.29
Che utilità c'è a installare sudo se si è gia root? non ha senso...

gio01
11.11.2009, 17.14
oppure se vuoi sudo fai apt-get install sudo e ti installa tutto in automatico

Gnoll
11.11.2009, 14.32
Citazione Originariamente Scritto da gio01
sudo apt-get update fai cosi
il sudo non c'è di default su debian, e apache va installato da root :P
quindi: apt-get update

gio01
11.10.2009, 13.27
sudo apt-get update fai cosi

checcco
11.10.2009, 12.50
Ragazzi ho bisogno di una mano,perchè appena digito

Codice PHP:
apt-get install apache2 apache2-mpm-prefork 
mi dice

Codice PHP:
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell
'albero delle dipendenze in corso       
Lettura informazioni sullo stato... Fatto        
E: Impossibile trovare apache2 
Non riesco a venirne a capo... Ha a che fare con le repository, vero? /etc/apt/sources.list

Aiuto, please grazie a tutti

abele
21.08.2009, 23.00
Citazione Originariamente Scritto da gio01
usando l'apposito coamndo privileges grabti i privigeli x tot utenti a evdere fll db ed altro... occhio hai privilegi
mi puoi spiegare bene?

gio01
19.08.2009, 21.41
usando l'apposito coamndo privileges grabti i privigeli x tot utenti a evdere fll db ed altro... occhio hai privilegi

abele
07.08.2009, 11.35
Ciao a tutti, ho un problema: quando creo un utente mysql e gli assegno un db, l'utente riesce a vedere tutti i db degli altri utenti. Come risolvo??? Grazie mille.

gio01
20.06.2009, 10.23
Imposta i permessi a 755

Gekone
16.06.2009, 22.19
Citazione Originariamente Scritto da roccos

090611 16:16:14 [Warning] Can't create test file /disk1/MysqlDB/SERVER2.lower-test
090611 16:16:14 [Warning] Can't create test file /disk1/MysqlDB/SERVER2.lower-test
090611 16:16:14 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to

hai idea di che voglia dire e come metto fine a questa storia?
E' abbastanza esplicativo l'errore no? -> The error means mysqld does not have the access rights to <-
Verifica i permessi di quella directory... Per prova, impostali momentaneamente a "777", e prova a riavviare mysql, se non ti da problemi sarai certo che è un problema di permessi.
P.S.: impostali ricorsivamente i permessi: sudo chmod -R 777 /directory1/directory2/

roccos
15.06.2009, 12.12
eccolo qui



File system Dim. Usati Disp. Uso% Montato su
/dev/sdc1 14G 2,7G 11G 21% /
tmpfs 360M 0 360M 0% /lib/init/rw
varrun 360M 356K 359M 1% /var/run
varlock 360M 0 360M 0% /var/lock
udev 360M 152K 360M 1% /dev
tmpfs 360M 0 360M 0% /dev/shm
lrm 360M 2,4M 357M 1% /lib/modules/2.6.28-12-generic/volatile
/dev/md0 151G 75G 69G 52% /disk1/MysqlDB
tmpfs 360M 2,2M 358M 1% /lib/modules/2.6.28-13-generic/volatile


MysqlDB è una sotto cartella di disk1 ..
grazie ancora .

LeO
11.06.2009, 18.23
scusami, puoi farmi vedere un

df -h ?
quella cartella come mai l'hai montata in /disk1 ??
non ho capito questo passaggio .
Per esempio potevi montarlo in /mnt
disk1 mi spiazza.

roccos
11.06.2009, 17.59
appena ne ho modo ti scrivo .. cmq tornando al problema credo che si tratti di permessi per mysql con comandi tipo chown -R mysql solo che non trovo dove diavolo l'utente ( il SO è Kubuntu).... cmq ci continuerò a lavorare.. se hai qualche idea ogni tanto darò un occhio qui

grazie 10000000

LeO
11.06.2009, 17.26
sarebbe da vedere "fisicamente" qual'e' il problema con i relativi dati.
Se vuole puo' inviarmeli a supporto@ovh.it

roccos
11.06.2009, 16.18
Citazione Originariamente Scritto da LeO
scusami ma disk1 dove risiede? nella root ?? cosi' come lo hai fatto te sembra che la dir stia in /disk1/mysql
E' cosi' ? esiste questa cartella?
si si certo che esiste è un raid 1
anche apache punta li e la web site root è appunto una cartella che risiede dentro /disk1/WebSite

roccos
11.06.2009, 16.17
ho provato a far partire il server modificando sempre my.cnf
da
datadir = /var/lib/mysql
in
datadir = /disk1/MysqlDB
con questo comando :
sudo mysqld --defaults-file=/etc/mysql/my.cnf --user=mysql

a video mi ha riportato i seguenti errori :

090611 16:16:14 [Warning] Can't create test file /disk1/MysqlDB/SERVER2.lower-test
090611 16:16:14 [Warning] Can't create test file /disk1/MysqlDB/SERVER2.lower-test
090611 16:16:14 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.


(SERVER2 è il nome della macchina che mi fa da server )

hai idea di che voglia dire e come metto fine a questa storia?
Ciao e grazie

LeO
11.06.2009, 16.13
scusami ma disk1 dove risiede? nella root ?? cosi' come lo hai fatto te sembra che la dir stia in /disk1/mysql
E' cosi' ? esiste questa cartella?

roccos
11.06.2009, 15.27
Citazione Originariamente Scritto da LeO
scusami, cosa metti nella dir? mi puoi far vedere il percorso completo? hai gia' creato database? hai provato a spostare tutti i file che sono nella dir specificata nel file di configurazione?
qui è che vado ad editare:
da
datadir = /var/lib/mysql (originale)
in
datadir = /disk1/MysqlDB (nuova cartella )

il contenuto delle cartelle è identico ho spostato tutti i file ed i db che stavano in /var/lib/mysql

cmq grazie x la pazienza leo

LeO
11.06.2009, 15.08
scusami, cosa metti nella dir? mi puoi far vedere il percorso completo? hai gia' creato database? hai provato a spostare tutti i file che sono nella dir specificata nel file di configurazione?

roccos
11.06.2009, 15.00
Starting MySQL database server mysqld [fail]

l'errore è solo questo
ho provato ad editare nuovamente my.cnf
la voce
datadir

LeO
11.06.2009, 14.47
prova a digitare manualmente /etc/init.d/mysqld start

dovrebbe darti degli errori.

roccos
11.06.2009, 14.32
strano sono vuoti sia mysql.err sia mysql.log

LeO
11.06.2009, 14.23
dovresti guardare nei log del mysql
normalmente sono in /var/log li' c'e' la risposta a questo problema.

roccos
11.06.2009, 13.33
Ciao a tutti
ho seguito le vostre istruzioni per la configurazione di Configurazione PHP-Mysql-Apache Ubuntu Debian , tutto funziona alla perfezione ma ho un problema con Database Server
MySQL versione 5.0.75 quando gli vado a cambiare la root dei database ,
mi spiego: finchè mantengo i db sulla cartella originaria /var/lib/mysql va tutto bene,
ma se cambio x far puntare a dei db presenti su un altro spazio del disco es : disk1/MysqlDB , non si avvia + il server mysql ,
sia se modifico la stringa del file my.cnf
da
datadir = /var/lib/mysql
in
datadir = /disk1/MysqlDB

sia se cambio il percorso da webmin - configurazione del modulo
Persorso della directory dei database: /disk1/MysqlDB

sia se cambio sempre da webmin - Configurazione del server MySQL - Directory dei file dei database - sfoglia ( ...) /disk1/MysqlDB

ho provato di tutto , ma il risultato non cambia ,al riavvio del server , non si avvia +.. potreste indicarmi la via ?
grazie a tutti

vpsfree
16.03.2009, 13.24
Ciao,
ho trovato questi post veramente utili. Comunque vi consiglio di ottimizzare il database per risparmiare dello spazio RAM.
Se non si usano tabelle di tipo INNODB, è meglio disattivarne il supporto.
Per fare ciò, aprire il file di configurazione di mysql (/etc/mysql/my.cnf) e rimuovete il cancelletto davanti alla riga [skip-innodb], salvate e riavviate mysql usando il comando che trovate nei post precedenti.

Vorrei inoltre consigliarvi di dare un letta a Ottimizzare Mysql e alla guida per l'installazione di eAccelerator (ottimizzatore e cache per php) che trovate su sito.

gio01
16.03.2009, 11.18
ci provo

LeO
16.03.2009, 10.16
virtualhost:
per poter mettere piu' siti in solo solo indirizzo IP questa e' una procedura, anche se molte persone ne usano un altra ovvero quella di andare ad editare i file sites-available e sites-enabled. Comunque io vi faccio vedere come procedo in caso di VirtualHost:
Questo e' un modo per far si che aggiungiamo virtualhost con dir nella home di ogni user, ovvero andremo per esempio ad aggiungere pippo proprio come utente ma senza (o se volete con) la shell:
per esempio:

adduser pippo
password
e troveremo /home/pippo

e siccome andremo a vedere il virtual host aggiungiamo anche un altro sito che puo' andare sia nella stessa home di pippo /home/pippo/sito2 o in /home/pluto

adduser pluto
password
ed avremo /home/pluto


editare il file /etc/apache2/apache2.conf
andare fino alla fine del file,
ed aggiungere:

NameVirtualHost ip.del.server


ServerName www.pippo.net
ServerAlias pippo.net
ServerPath /home/pippo
DocumentRoot /home/pippo/
ErrorLog /home/pippo/log

Options FollowSymLinks
AllowOverride All




ServerName www.pluto.net
ServerAlias pluto.net
ServerPath /home/pluto
DocumentRoot /home/pluto/
ErrorLog /home/dirsito2/log

Options FollowSymLinks
AllowOverride All


salviamo il lavoro ed usciamo.
P.S. creare per ogni utente una cartella chiamata log in modo che ogni user ha i suoi log nella sua home.
Ora digitiamo
/etc/init.d/apache2 reload
Non dovrebbero esserci errori
=
Non so se e' molto chiara la procedura, scrive semmai!!!

Spesso, quando si creano dei virtual host viene fuori un warning del tipo NameVirtualHost *:80 blablabla
C'e' da cambiare nel file port.conf che e' dentro /etc/apache2
Da cosi'
||
\ /
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80


# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443



a cosi'
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

#NameVirtualHost *:80
Listen 80


# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443


ovvero mettendo il cancelletto su NameVirtualHost *:80

poiche' lo impostiamo direttamente nei vari vhost.

Liftoff
13.03.2009, 22.39
Citazione Originariamente Scritto da gio01
ehm praticamente nn vede nulla
Boh strana sta cosa,se hai apache 2.2 si tratta di aggiungere quelle poche righe,l'ho fatto tempo fa e non mi ha dato particolari problemi.

Ego-Ale-Sum
13.03.2009, 22.17
consiglio personale: i pacchetti di PHP e MySQL presenti in Debian sono spesso molto vecchi...
nel mio server uso i pacchetti di www.dotdeb.org : oltretutto, loro includono anche le patch Suhosin, che dovrebbero migliorare la sicurezza di PHP.

gio01
13.03.2009, 20.53
ehm praticamente nn vede nulla

Liftoff
13.03.2009, 20.27
Che problemi hai trovato con la guida che ti ho linkato?

gio01
13.03.2009, 19.33
Citazione Originariamente Scritto da LeO
In serata vi spieghero' anche come fare i virtualhost per far si che + siti si possano hostare in un solo ip.
Salut
Leonardo!!!
Guida elaborata su base e-pillole, tnx!!
beh sta guida?a me servirebbe ^^

ibanez89
12.02.2009, 12.18
Si dai anche così va bene

LeO
12.02.2009, 11.59
Sisi, appena ci aprono le categorie la spostiamo subito e cerchero' anche di farla con le foto :P
Pero diciamo che gia cosi' rende l'idea!!!

ibanez89
12.02.2009, 11.58
Grazie, io direi di fare questa discussione importante o di trasferirla in una sezione "guida" se la creerete

LeO
12.02.2009, 11.42
In serata vi spieghero' anche come fare i virtualhost per far si che + siti si possano hostare in un solo ip.
Salut
Leonardo!!!
Guida elaborata su base e-pillole, tnx!!

LeO
12.02.2009, 11.39
Attenzione la guida parte dall'installazione di apache webserver ed a seguire.

LeO
12.02.2009, 11.39
Ora testiamo l'installazione
andiamo su /var/www e creiamo testphp.php con nano testphp.php ed inseriamo questo dentro

phpinfo();
?>

Ora ci colleghiamo alla macchina facendo http://ip/testphp.php
Se tutto va a buon fine leggerete una pagina con scritte informazioni sulle varie versioni degli applicativi installati sulla macchina/

Per collegarvi al phpmyadmin basta digitare http://ip/phpmyadmin
Ovviamente se dovete fare un hosting o qualcosa di simile io direi di poggiare tutto su dns per esempio
http://phpmyadmin.vostrosito.com
Comunque in serata vi spiego anche questo.
Spero di essere stato utile!!!

Techno_man
12.02.2009, 11.37
Ecco forse così evitiamo un po' di thread Bravo Leo

LeO
12.02.2009, 11.36
3)
Installazione MYSQL
Primo passo
apt-get install mysql-server-5.0 php5-mysql

Il server mysql viene installato senza password di root quindi lanciamo questo comando
mysql -u root

ed eseguiamo questi comandi
DELETE FROM mysql.user WHERE User = '';
e
FLUSH PRIVILEGES;

Settiamo la pass per l'utente root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('tuapassword');

Installiamo ora phpmyadmin
apt-get install phpmyadmin

Riavviare la macchina!!!

LeO
12.02.2009, 11.33
2)
Installazione PHP 5 :
Primo pass
apt-get install php5 libapache2-mod-php5 php5-cgi php5-gd php5-cli

Passo successivo
cp /usr/share/doc/php5-common/examples/php.ini-recommended /etc/php5/apache2/php.ini

Passo successivo
nano /etc/php5/apache2/php.ini
andrete a modifica il php.ini per abilitare il supporto di Mysql e per le gd lib

Cercate queste due stringhe
;extension=mysql.so
;extension=gd.so
e decommentatele togliendo i ;

Assicuriamoci che il modulo PHP 5 sia abilitato con questo comando
a2enmod php5

In fine riavviate apache con
/etc/init.d/apache2 reload

LeO
12.02.2009, 11.29
1)
Ecco a voi una guida su come configurare un server LAMP (linux apache mysql php) su debian e ubuntu

Partiamo ad installare apache2 (web server):

apt-get install apache2 apache2-mpm-prefork
Dare Yes alla domanda e continuare

- /var/www/ è la root folder del vostro webserver

- /etc/apache2/ è la cartella in cui troverete tutti i files di configurazione relativi ad Apache;

- /etc/apache2/mods-available/ è la cartella in cui vengono inseriti i files di configurazione di tutti i moduli installati;

- /etc/apache2/mods-enabled/ è la cartella che contiene dei link simbolici ad ogni file presente nella cartella /etc/apache2/mods-available/. Ognuno di questi link simbolici, ha la facoltà di abilitare ognuno dei moduli presenti nella cartella mods-available;

- /etc/apache2/sites-available/ è la cartella in cui inserire il file di configurazione per ogni virtual host che verrà creato. Di predefinito, è presente unicamente il file default;

- /etc/apache2/sites-enabled/ è la cartella che contiene dei link simbolici ad ogni file presente nella cartella /etc/apache2/sites-available/. Come si può facilmente dedurre da questa struttura, ognuno di questi link simbolici, ha la facoltà di abilitare ognuno dei virtual host definiti nella cartella sites-available.

Gia da questo momento potrete vedere inserendo http://ipserver che il webserver e' funzionante con il messaggio It Work!