| Autore |
Discussione  |
|
|
Sinapsy
Senior Member
   
Città: Salerno
93 Messaggi |
Inserito il - 21/03/2007 : 14:12:38
|
Salve ho installato il Server web Apache2 sulla suse 10.1,il server web funziona correttamente se lo lancio da root,ma se provo ad alzarlo da utente normale mi dice:
nome[No-Spam]nome:/usr/local/apache2/bin> ./apachectl start (13)Permission denied: make_sock: could not bind to address [::]:80 no listening sockets available, shutting down Unable to open logs
Sono andato a vedere i permessi del file apacheclt, ma ho notato che tutti hanno i permessi di esecuzione; Qualcuno mi sa dire cosa succede? Sembra che l'utente non ha i permessi per creare il socket,se è così come posso fare per risolvere il problema??? Oppure devo lanciare il server web per forza da root??? GRAZIE
|
|
|
ori
Moderatore
    

Città: Verona
2043 Messaggi |
Inserito il - 21/03/2007 : 14:24:31
|
Il problema e` che per aprire una porta tra 0 e 1023 servono i permessi di root; le porte tra 1024 e 65535 sono apribili da chiunque.
Pertanto, se vuoi avviare apache sulla porta standard devi farlo come root, altrimenti cambia porta (ad esempio potresti usare la 8080, di solito associata ai proxy).
Una nota: di solito, quando si avvia apache con lo script standard (che trovi in /etc/init.d, ma credo che la cosa valga anche con il lancio manuale come fai tu, ma non ho mai controllato), viene lanciato un processo come root che apre la porta 80; una volta aperta la porta, il processo viene forkato ( , che termine, ma non trovo niente di equivalente all'inglese to fork che renda esattamente tutto il significato originale) e viene avviato il reale server apache (in una o piu` istanze) con utente (e quindi permessi) normali (di solito si usa l'utente apache o [www]). |
 |
|
|
Sinapsy
Senior Member
   
Città: Salerno
93 Messaggi |
Inserito il - 21/03/2007 : 15:29:40
|
Ciao Ori ho cambiato la porta di ascolto del web server,ora si alza sulla porta 8080,apache funziona sempre perfettamente se alzato da root,ma da utente normale:
nome[No-Spam]nome:/usr/local/apache2/bin> ./apachectl start (13)Permission denied: htt*d: could not open error log file /usr/local/apache2/l ogs/error_log. Unable to open logs
Poi ho modificato i permessi al file error_log ora quando provo ad alzare il server da utente normale non mi da errore ma il server non funziona; Infatti se dopo lancio il comando per mandare giù il server mi dice:
nome[No-Spam]nome:/usr/local/apache2/bin> ./apachectl stop htt*d (no pid file) not running
Ora che succede??
Poi per alzare il server dalla directory etc/init.d come si fa? Quale file si deve lanciare? |
 |
|
|
ori
Moderatore
    

Città: Verona
2043 Messaggi |
Inserito il - 21/03/2007 : 17:26:20
|
Per far partire apache da /etc/init.d, usi il comando /etc/init.d/apache2 start, ottenendo il seguente risultato (sulla suse 10.2): orodruin:/usr/bin # ps xau
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 11674 0.0 0.2 7944 2356 ? Ss 17:14 0:00 /usr/sbin/htt*d2-prefork -f /etc/apache2/htt*d.conf
[www]run 11675 0.0 0.1 7944 1768 ? S 17:14 0:00 /usr/sbin/htt*d2-prefork -f /etc/apache2/htt*d.conf
[www]run 11676 0.0 0.1 7944 1756 ? S 17:14 0:00 /usr/sbin/htt*d2-prefork -f /etc/apache2/htt*d.conf
[www]run 11677 0.0 0.1 7944 1756 ? S 17:14 0:00 /usr/sbin/htt*d2-prefork -f /etc/apache2/htt*d.conf
[www]run 11678 0.0 0.1 7944 1756 ? S 17:14 0:00 /usr/sbin/htt*d2-prefork -f /etc/apache2/htt*d.conf
[www]run 11679 0.0 0.1 7944 1756 ? S 17:14 0:00 /usr/sbin/htt*d2-prefork -f /etc/apache2/htt*d.conf
Domanda: perche` non vuoi che parta come root? |
 |
|
|
Sinapsy
Senior Member
   
Città: Salerno
93 Messaggi |
Inserito il - 21/03/2007 : 18:03:52
|
Nella directory etc/init.d non esiste alcun file che si chiama apache2 quindi se lancio /etc/init.d/apache2 start, mi dice: bash: ./apache2: No such file or directory
Come mai non esiste nessun file che si chiama apache o qualcosa del genere nella directory init.
Risposta: io non sono l'amministratore del sistema,sono un utente normale,come posso alzare il server senza sapere la passwd di root,ma con il consenso dell'amministratore. In poche parole cosa deve fare l'amministratore per farmi alzare il server senza che io conosca la password dell'amministratore?? Se non è possibile farlo perchè???
|
 |
|
|
ori
Moderatore
    

Città: Verona
2043 Messaggi |
Inserito il - 22/03/2007 : 09:29:38
|
Per il file, controlla se c'e` htt*d o simili in /etc/init.d
Per avviare il server come utente normale, quello che dovresti fare e` copiarti (o farti copiare) il contenuto di /etc/htt*d (o /etc/apache, cerca un po' quello che ti sembra corretto) per poi andarlo a modificare in modo che i log, la porta standard e quant'altro sia gestibile da utente normale. Una volta fatto questo, avvia apache (se non funziona con apachectl, usa direttamente htt*d con l'opzione -k, quindi apachectl start diventa htt*d -k start)con l'opzione -d <percorso> dove il percorso fa riferimento alla radice delle nuove configurazioni (di default e` /etc/htt*d) e l'opzione -f htt*d2.conf. In pratica, nel mio test: /usr/sbin/apache2ctl -d /home/ori/apache -f htt*d.conf -k start
(ovviamente cambia i percorsi in base alle tue impostazioni.)
Ho testato e funziona |
Modificato da - ori in data 22/03/2007 09:30:30 |
 |
|
| |
Discussione  |
|