2015-06-21 27 views
6

Sto tentando di creare una scatola LAMP usando Vagrant. Mi è stato detto che è abbastanza semplice da usare. Sono completamente nuovo alle reti e alle macchine virtuali e ho poca esperienza con Linux/Ubuntu. Al momento ho provato a seguire il tutorial sulla pagina di documentazione ufficiale: http://docs.vagrantup.com/v2/getting-started/networking.html.Problemi con Vagrant - "404 - Non trovato"

Ho ottenuto l'articolo di rete nella documentazione e non riesco a farlo funzionare.

Ora il problema è che, a causa della mia inesperienza con il networking e il sistema operativo basato su Linux, non ho idea di dove iniziare la risoluzione dei problemi. Proverò a dare più informazioni possibili.

Sto eseguendo l'ultima versione di Vagrant con l'ultima versione di Virtualbox con Windows 8.1.

Come per il tutorial, il mio attuale Vagrantfile assomiglia a questo:

Vagrant.configure(2) do |config| 
    config.vm.box = "hashicorp/precise32" 
    config.vm.provision :shell, path: "bootstrap.sh" 
    config.vm.network :forwarded_port, host: 4567, guest: 80 
end 

Il mio file bootstrap.sh si presenta così:

#!/usr/bin/env bash 

apt-get update 
apt-get install -y apache2 
if ! [ -L /var/www ]; then 
    rm -rf /var/www 
    ln -f /vagrant /var/www 
fi 

Quando sono andato a http://127.0.0.1:4567, è visualizzata una pagina di errore contenente questo messaggio:

Not Found 

The requested URL/was not found on this server. 
=================================================== 
Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 4567 

avrei preferito non modificare ogni fil config es, a meno che non ci fosse una spiegazione, poiché ritengo che sarebbe una soluzione. Ma a prescindere, QUALSIASI aiuto sarebbe apprezzato. Se ho bisogno di aprire una porta, allora come sono al punto in cui sto considerando di usare XAMPP.

risposta

10

ho avuto lo stesso problema. Ho provato a riavviare Apache dalla scatola vagabonda, ho ricevuto il seguente avviso sul mio terminale.

vagabondo @ vagabondo-ubuntu-fidato-64: ~ $ servizio sudo apache2 restart * Il riavvio apache2 web server
AH00112: Attenzione: DocumentRoot [/ var/www/html] non esiste AH00558: apache2: Could non determinare in modo affidabile il nome di dominio completo del server , utilizzando 10.0.2.15.Impostare la direttiva 'ServerName' a livello globale per sopprimere questo messaggio

Creando la cartella "html" ordinato il mio problema 404.

Creare una DocumentRoot. I ssh scatola e la cartella html creato per Vagrant in questo percorso

/var/www/

+0

che ha fatto il trucco – Raffael

+0

tldr: Crea cartella html – Ruben

1

È possibile accedere al server Web dall'interno della macchina virtuale?

Ad esempio, provare curl localhost:80

se riccio non è installato, utilizzare sudo apt-get install curl su Ubuntu e riprovare.

Inoltre, hai controllato gli host virtuali di Apache? Esiste un file di default 000 in/etc/apache2/sites-available?

+0

ho effettivamente ottenere esattamente lo stesso messaggio non trovato dall'interno dell'host. Non esiste un valore predefinito di 000 ma ci sono altri 2 file predefiniti. – Dimi

+0

puoi incollare il risultato di '' 'ls -ls/etc/apache2/sites-enabled'''? – jiop

+0

Attualmente sta funzionando. Grazie per l'aiuto. Per curiosità se non apparisse, cosa avresti assunto? – Dimi

1

Ci sono due questioni in bootstrap.sh

  1. È necessario avviare il servizio web. Puoi anche vagrant ssh avviarlo manualmente
  2. È necessario creare un collegamento software, non un collegamento fisso.

Così lo script verrà aggiornato, se

$ cat bootstrap.sh 
#!/usr/bin/env bash 

apt-get update 
apt-get install -y apache2 
if ! [ -L /var/www ]; then 
    rm -rf /var/www 
    ln -s /vagrant /var/www 
fi 

service apache2 start 
+0

Non sembra funzionare. Ma cos'è un link soft e un hard link? – Dimi

+0

Se non sai cos'è il soft link e il collegamento fisico, leggi questo http://askubuntu.com/questions/108771/che-è-del-differenza-del-hard-link-and-a- simbolico-link – BMW

+0

e la soluzione funziona, è necessario rivedere l'ambiente prima di fare questa conclusione. – BMW

6

La questione è sul /etc/apache2/sites-enabled di file 000-default.

Apache2 punta a var/www/html e un esempio vagabondo a var/www basta rimuovere de/html e creare un sudo service apache2 restart.

0

Ho sperimentato due soluzioni di lavoro:

Il primo è quello di modificare il file /etc/apache2/sites-enabled/000-default.conf modifing DocumentRoot in /var/www invece di /var/www/html

il secondo è quello di cambiare il file diVagrant bootstrap.sh nel seguente modo:

#!/usr/bin/env bash 

apt-get update 
apt-get install -y apache2 
if ! [ -L /var/www/html ]; then 
    rm -rf /var/www/html 
    ln -fs /vagrant /var/www/html 
fi 

Accanto a questo, per qualche motivo che ho dovuto cambiare anche la configurazione di port forwarding nel Vagrantfile, aggiungendo la chiave host_ip, in questo modo:

Vagrant.configure(2) do |config| 
    config.vm.box = "hashicorp/precise32" 
    config.vm.provision :shell, path: "bootstrap.sh" 
    config.vm.network :forwarded_port, host: 4567, guest: 80, host_ip: "127.0.0.1" 
end