# configurazione Webserver con apache2 e php5

## GoraNz

ciao a tutti. ho appena installato i pacchetti php, mysql e apache per creare un webserver su cui far girare il mio sito. Ho seguito varie guide, ma ho preso in considerazione piu di tutte una di questo forum (precisamente https://forums.gentoo.org/viewtopic-t-309862-highlight-creare+webserver.html ) e l'ho integrata con questa http://www.linuxtutorial.it/installare-e-configurare-un-webserver-su-arch-linux/ . Ora, una volta installato apache e php, ho dei grossi problemi a settare up le mie pagine di prova: se creo un file in /var/www/localhost/htdocs (directory di default) chiamato "prova.php", sul browser non me lo visiona, se lo rinomino con .html invece tutto va bene. Presumo che non sia stato caricato correttamente il modulo del php5 dall'apache, ma, come potrete vedere nei conf in basso, il modulo è stato settato nel relativo conf: come posso risolvere questo problema? 

Un'ultima cosa: ho cercato di accedere al sito da un pc remoto, digitando sul browser l'ip pubblico della macchina, ma non riesco a visionarlo, come mai? grazie delle eventuali risposte a tutti!

vi posto i vari conf:

```
/etc/conf.d/apache2

APACHE2_OPTS="-D DEFAULT_VHOST -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D INFO -D PHP5"

# PID file

#PIDFILE=/var/run/apache2.pid

# timeout for startup/shutdown checks

#TIMEOUT=10

# ServerRoot setting

SERVERROOT=/usr/lib/apache2

# Configuration file location

# - If this does NOT start with a '/', then it is treated relative to

# $SERVERROOT by Apache

CONFIGFILE=/etc/apache2/httpd.conf

# Location to log startup errors to

# They are normally dumped to your terminal.

STARTUPERRORLOG="/var/log/apache2/startuperror.log"

# A command that outputs a formatted text version of the HTML at the URL

# of the command line. Designed for lynx, however other programs may work.

#LYNX="lynx -dump"

# The URL to your server's mod_status status page.

# Required for status and fullstatus

STATUSURL="http://localhost/server-status"

# Method to use when reloading the server

# Valid options are 'restart' and 'graceful'

# See http://httpd.apache.org/docs/2.2/stopping.html for information on

# what they do and how they differ.

#RELOAD_TYPE="graceful"

```

```
/etc/apache2/httpd.conf

ServerRoot "/usr/lib/apache2"

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule php5_module modules/libphp5.so

LoadModule authn_alias_module modules/mod_authn_alias.so

LoadModule authn_anon_module modules/mod_authn_anon.so

LoadModule authn_dbm_module modules/mod_authn_dbm.so

LoadModule authn_default_module modules/mod_authn_default.so

LoadModule authn_file_module modules/mod_authn_file.so

<IfDefine AUTHNZ_LDAP>

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

</IfDefine>

LoadModule authz_dbm_module modules/mod_authz_dbm.so

LoadModule authz_default_module modules/mod_authz_default.so

LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

LoadModule authz_host_module modules/mod_authz_host.so

LoadModule authz_owner_module modules/mod_authz_owner.so

LoadModule authz_user_module modules/mod_authz_user.so

LoadModule autoindex_module modules/mod_autoindex.so

<IfDefine CACHE>

LoadModule cache_module modules/mod_cache.so

</IfDefine>

LoadModule cgi_module modules/mod_cgi.so

<IfDefine DAV>

LoadModule dav_module modules/mod_dav.so

</IfDefine>

<IfDefine DAV>

LoadModule dav_fs_module modules/mod_dav_fs.so

</IfDefine>

<IfDefine DAV>

LoadModule dav_lock_module modules/mod_dav_lock.so

</IfDefine>

LoadModule deflate_module modules/mod_deflate.so

LoadModule dir_module modules/mod_dir.so

<IfDefine CACHE>

LoadModule disk_cache_module modules/mod_disk_cache.so

</IfDefine>

LoadModule env_module modules/mod_env.so

LoadModule expires_module modules/mod_expires.so

LoadModule ext_filter_module modules/mod_ext_filter.so

<IfDefine CACHE>

LoadModule file_cache_module modules/mod_file_cache.so

</IfDefine>

LoadModule filter_module modules/mod_filter.so

LoadModule headers_module modules/mod_headers.so

LoadModule include_module modules/mod_include.so

<IfDefine INFO>

LoadModule info_module modules/mod_info.so

</IfDefine>

<IfDefine LDAP>

LoadModule ldap_module modules/mod_ldap.so

</IfDefine>

LoadModule log_config_module modules/mod_log_config.so

LoadModule logio_module modules/mod_logio.so

<IfDefine CACHE>

LoadModule mem_cache_module modules/mod_mem_cache.so

</IfDefine>

LoadModule mime_module modules/mod_mime.so

LoadModule mime_magic_module modules/mod_mime_magic.so

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule setenvif_module modules/mod_setenvif.so

LoadModule speling_module modules/mod_speling.so

<IfDefine SSL>

LoadModule ssl_module modules/mod_ssl.so

</IfDefine>

<IfDefine STATUS>

LoadModule status_module modules/mod_status.so

</IfDefine>

#LoadModule unique_id_module modules/mod_unique_id.so

<IfDefine USERDIR>

LoadModule userdir_module modules/mod_userdir.so

</IfDefine>

LoadModule usertrack_module modules/mod_usertrack.so

LoadModule vhost_alias_module modules/mod_vhost_alias.so

User apache

Group apache

Include /etc/apache2/modules.d/*.conf

Include /etc/apache2/vhosts.d/*.conf

ServerName GoraNz.it
```

P.S.: tutti i conf dei settaggi delle directory e delle porte e ip di listen del server sono in /etc/apache2/vhost.d/ . se dovessero servire non esitate a chiedere! grazie a tutti anticipatamente

----------

## Peach

posteresti le flag con cui hai compilato apache e php ?

----------

## GoraNz

ho aggiunto queste flag al make.conf 

```
USE="ldap apache2 mysql php session pam ssl xml xml2 berkdb innodb jpeg png unicode"
```

 e messo nel package.use queste altre

```
dev-lang/php xmlrpc imap exif gd pic odbc soap postgres snmp iconv apache
```

 come dice nella guida, ma credo di aver sbagliato qualcosa nella compilazione..

----------

## MajinJoko

Per esperienza ti posso solo dire che se non caricasse il modulo del php5, semplicemente non "compilerebbe la pagina", ti mostrerebbe solo il codice sorgente.

Se proprio non ti mostra quelle che con estensione .php, mi sembra di ricordare che c'é un file di configurazione dove specifichi quali pagine processare.

Onestamente però trovo molto strano questo comportamento, soprattutto perché vedo che hai la use "php" attivata   :Confused: 

----------

## Peach

 *GoraNz wrote:*   

> se creo un file in /var/www/localhost/htdocs (directory di default) chiamato "prova.php", sul browser non me lo visiona

 

non mi è chiara sta cosa: come diceva MajinJoko dovresti spiegare un po' meglio il comportamento al tentativo di apertura del file: potrebbe anche essere un problema di permessi.

Normalmente ci sono tre casi:

ti visualizza il codice php anziché l'output parsato: apache non ha caricato il modulo php (nn mi sembra il tuo caso)

ti chiede di scaricare la pagina php anziché aprirla direttamente: è un problema di mime-type (operazione che TEORICAMENTe dovrebbe incaricarsi l'ebuild di php)

va in timeout al caricamento della pagina: il problema potrebbe essere multiplo... da indagare

 *GoraNz wrote:*   

> Un'ultima cosa: ho cercato di accedere al sito da un pc remoto, digitando sul browser l'ip pubblico della macchina, ma non riesco a visionarlo, come mai? grazie delle eventuali risposte a tutti!

 

dipende su che indirizzo lasci in ascolto il tuo web server controlla in /etc/apache/vhosts.d/00_default_vhost.conf

----------

## GoraNz

allora mi spiego meglio: per verificare il funzionamento corretto del server apache, ho creato un piccolo script in php come da guida chiamandolo "test.php". quando vado a immettere nel browser 192.168.1.100/test.php, mi dice che la pagina richiesta non esiste e non me la apre. 

@MajinJoko:

per quanto riguarda il file di cui parli te, non so se è giusto quello che ho fatto, ma ho inserito nel default_vhost.include, le seguenti diciture per dirgli di aprire i file con una certa estensione:

```
<IfModule mod_php5.c>

DirectoryIndex index.php index.html

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

</IfModule>

```

la sintassi credo sia giusta ma non so se è giusto il posto dove le ho messe. voi che ne pensate?

per quanto riguarda invece l'ip di ascolto, per il momento ho messo quello locale, ma se tento anche di mettere quello mio pubblico, non è raggiungibile lo stesso, come è possibile?

----------

## PboY

 *GoraNz wrote:*   

> per quanto riguarda invece l'ip di ascolto, per il momento ho messo quello locale, ma se tento anche di mettere quello mio pubblico, non è raggiungibile lo stesso, come è possibile?

 

la butto li: webserver del router attivo sulla 80?

----------

