Ambiente per testare sito in php

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Ambiente per testare sito in php

Messaggio da joe »

Mi piacerebbe provare a creare un piccolo "sito" basato su php.
Tempo addietro avevo seguito una piccola guida per html, piuttsto facile da comprendere per i neofiti come me su questo sito: www.web-link.it
Adesso vedo che sullo stesso sito c'è anche una guida per php. Vorrei iniziare a seguirla e per fare ciò vorrei mettere in piedi in locale un piccolo ambiente di test in modo da poter creare qualche pagina web e capire come si usa il php.
Quindi sia chiaro, per il momento non ho la necessità di mettere il sito online, darvi accesso dall'esterno o simili...anzi per ovvie ragioni di scurezza non voglio avere un server aperto all'esterno.
Quali possibilità ho per soddisfare queste poche esigenze? Cosa mi serve? possibili alternative ecc ecc.... :D
Grazie in anticipo :)

Avatar utente
twister
Staff
Staff
Messaggi: 1599
Iscritto il: mar 11 nov 2003, 0:00
Slackware: current
Località: Roma
Contatta:

Re: Ambiente per testare sito in php

Messaggio da twister »

apache
php
eventualmente mysql se ti appoggi a db

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Ambiente per testare sito in php

Messaggio da raffaele181188 »

Aggiungo a Twister
Ogni distribuzione ha già inclusa tutta questa roba (ma se non ricordo male devi aggiungere qualche riga ad httpd.conf per fargli caricare il modulo php)
Unica cosa da ricordare: a differenza dell'HTML, il php è interpretato (lato server), quindi non puoi visualizzare il "documento" semplicemente aprendolo con un browser, ma devi passare per un webserver, a cui spetta il compito di elaborare la parte php (che nel caso di Apache viene delegata ad un modulo). Cioè per vedere index.php non devi digitare nella barra del browser file://path/to/index.php, ma

Codice: Seleziona tutto

http://localhost/path/to/index.php
(nota il protocollo http. Ovviamente devi configurare httpd per indirizzare le chiamate alla directory specifica)
httpd è il nome del demone webserver, per avviarlo devi dare

Codice: Seleziona tutto

# /etc/rc.d/rc.httpd start
Se non ricordo male all'inizio si hanno un po' di problemi proprio con httpd. Vedi un po'

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Re: Ambiente per testare sito in php

Messaggio da giberg »

raffaele181188 ha scritto:Aggiungo a Twister
Ogni distribuzione ha già inclusa tutta questa roba (ma se non ricordo male devi aggiungere qualche riga ad httpd.conf per fargli caricare il modulo php)
Basta decommentare la riga opportuna
in /etc/httpd/httpd.conf

Codice: Seleziona tutto

Include /etc/httpd/mod_php.conf
per avviare apache puoi usare anche
il comando

Codice: Seleziona tutto

apachectl start
per fermarlo ovviamente stop
al posto di start.

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Re: Ambiente per testare sito in php

Messaggio da giberg »

Se non sbaglio, per limitare l'accesso
solo in locale, devi permettere
l'accesso solo da 127.0.0.1
impostandolo così:

Codice: Seleziona tutto

<Directory "/srv/httpd/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    #Allow from all
    Allow from 127.0.0.1
</Directory>
In pratica la parte che ti interessa
è Allow from 127.0.0.1

Dovresti farlo anche su queste
righe nel caso tu abbia script cgi-bin:

Codice: Seleziona tutto

<Directory "/srv/httpd/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from 127.0.0.1
  #  Allow from all
</Directory>
Spero sia giusto, magari qualcuno
che conosce meglio di me la questione
potrà confermare o correggere.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

Installato php, apache, mysql (non ho idea a cosa possa servirmi am va bè, c'era già).
Ho letto questa guida sull'ambiente cossiddetto LAMP: http://slackmania.altervista.org/docume ... ckware.pdf

Se apro:
http://localhost/home/user/web/index.html

ottengo:
Forbidden

You don't have permission to access /home/user/web/index.html on this server.
BooOo...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

Può essere che il problema sia questo:
nel httpd.conf avevo impostato la voce

#DocumentRoot "/srv/httpd/htdocs"
DocumentRoot "/home/user/web

Questo perchè vorrei creare il sito con i permessi di utnete semplice, senza dovermi loggare come root e poter allo stesso tempo vedere le pagine al volo...Mi spiego?

Ora se tengo la docroot come /srv/httpd/htdocs, le pagine vi metto dentro dovranno essere editate coi privilegi di root...scomodo no?
Io non sono pratico dell'argomento.. Come ci si organizza di solito?

La prima cosa che m'è venuta in mente è stata, creo una dir web nella mia home ci cotruisco il sito e poi indico ad apache che quella dir è la root del sito dove troverà la index.html o .php che sia (...sì ho impostato in httpd.conf le index da cercare: index.php index.php3 index.html index.htm).
Pur avendo riavviato il sito con la nuova root, mi da errore di accesso alla homepage.

Ah, spetta forse ho capito, leggendo il solito file diconfigurazione salta fuori che vine vietato l'accesso a httpd a qualsiasi directory, poi viene abilitato a ciascuna directory che ci serve con per ognuna le funzionalità desiderate

Codice: Seleziona tutto

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
Ecco poi c'è la sesione seguente che si riferisce alla directory "root" di default del sito:

Codice: Seleziona tutto

# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/srv/httpd/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    #Allow from all
    Allow from 127.0.0.1

</Directory>
Quindi se si sostituisce la directory root, va anche modificato il percorso della sezione precedente, come d'altra parte viene consigliato nel file.
Provo.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

Ok, così funziona, la root del sito ora è /home/user/web a cui posso accedere coi privilegi d'utente semplice...
Pareri?

Avatar utente
Naitso
Linux 2.x
Linux 2.x
Messaggi: 208
Iscritto il: lun 10 nov 2008, 15:09

Re: Ambiente per testare sito in php

Messaggio da Naitso »

Ciao invece di modificare il file httpd.conf, leggi per Apache:

Codice: Seleziona tutto

/etc/httpd/extra/httpd-userdir.conf
e

Codice: Seleziona tutto

/etc/httpd/extra/httpd-vhosts.conf
e per mysql:

Codice: Seleziona tutto

/etc/rc.d/rc.mysqld
Ciao e buon sviluppo! :thumbright:

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Ambiente per testare sito in php

Messaggio da targzeta »

Come suggerito na Naitso nel file di configurazione di apache:

Codice: Seleziona tutto

/etc/httpd/httpd.conf
invece di modificare la directory root, puoi decommentare la riga seguente:

Codice: Seleziona tutto

# User home directories
Include /etc/httpd/extra/httpd-userdir.conf
a questo punto, seguendo le impostazioni del file

Codice: Seleziona tutto

/etc/httpd/extra/httpd-userdir.conf
puoi crearti nella tua home la sottodirectory

Codice: Seleziona tutto

public_html/
e tutte le pagine che inserisci lì dentro saranno raggiungibili all'indirizzo

Codice: Seleziona tutto

http://127.0.0.1/~tuo_utente/pagina
Inoltre puoi anche configurare apache in modo da settare server virtuali in modo da poter accedere alle pagine invece che con

Codice: Seleziona tutto

http://127.0.0.1/~tuo_utente/pagina
con

Codice: Seleziona tutto

http://mio_sito_locale/pagina
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

Intanto grazie, ho modificato come hai detto e pare funzionare.
Una domanda:
perchè se apro 127.0.0.1 vedo la pagina "It works", cioè la index.html presente di default in "/srv/httpd/htdocs/" (che adesso è di nuovo la root di apache)....mentre se apro 127.0.0.1/~user non compare nulla?
Eppure nella web-directory dell'utente /home/user/public_html c'è una index.php, e avevo settato apposta apache affinchè cercasse esplicitamente la homepage tra quelle nominate index.{php,php3,html,htm).
Invece se la apro esplicitamente, così come tutte le altre pagine contenute nella directory public_html, allora funziona (cioè come dicevi 127.0.0.1/~user/index.php così funziona)
Dove sbaglio? O è normale così? Direi che dovrebbe aprire l'homepage in entrambi i casi, sia esplicitandola che no...
Infatti quella "tilde" m'ha fatto venire in mente il sito di AlienBob su slackware.com.
Se apro:
www.slackware.com/~alien
funziona...Tanto come:
www.slackware.com/~alien/index.html

A me in locale invece funge solo la seconda...nel mio caso la homepage del mio semplice utente è chiamata "index.php".
Ho provato anche a rinominarla in .html e ad aggiungere del testo col tag <p>Bla bla bla</p> fuori dal codice php, e sta volta accade una cosa assai strana:
- se mi collego a 127.0.0.1/~user vedo "blablaabla", quindi la pagina desso viene visualizzata senza specificarla
- Ma se la specifico 127.0.0.1/~user/index.html Non si vede nulla! :shock: (che sia apache ad aver fumato un po' troppo pesante?)

Cosa ne pensate?

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

...continuo a non capire dove sta il problema... :roll: :(

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

Ora ho riputlito la directory public_html
Vi ho poi editato due sole pagine per provare:

- index.html

Codice: Seleziona tutto

<html>
<head>
</head>
<body>
<p>prova</p>
</body>
</html>


- index.php

Codice: Seleziona tutto

<html>
<head>
</head>
<body>
<?php
 echo "<p>prova in php</p>"
?>
</body>
</html>
Ora sembra funzionare:

- 127.0.0.1/~user apre la pagina index.php perchè è prioritaria in httpd.conf
- 127.0.0.1/~user/index.html apre la pagina corrispondente senza fare storie
- 127.0.0.1/~user/index.php apre la pagina corrispondente senza fare storie

Insomma ora si può iniziare ad apprendere e costruire qualcosa....

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Ambiente per testare sito in php

Messaggio da targzeta »

Mi sembra che anche io avevo avuto il tuo stesso problema, ma non ricordo cosa feci perchè a me va tutto bene. Magari posta l'output di

Codice: Seleziona tutto

grep -v '#' /etc/httpd/httpd.conf
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Ambiente per testare sito in php

Messaggio da joe »

In effetti è un mistero, può darsi che il problema stesse nelle pagine che ho rimosso dalla mia directory public_html...chissà.
Posto l'output come consigliato, lo metto in allegato per "pulizia".
Allegati
posting.http.conf.TXT
(5.39 KiB) Scaricato 58 volte

Rispondi