Solucionado (ver solução)
Solucionado
(ver solução)
15
respostas

Não estou conseguindo acessar o meu index.php com o IP fixo

Olá,

Estava seguindo o curso até agora, mas como aqui em casa, diferentemente da estrutura a qual o Nico estava trabalhando, não se trata de uma rede pública em uma empresa, estou tentando voltar meu VagrantFile para que eu fixe o ip a ser requisitado quando quiser acessar minha página.

Eu defini como ip fixo 192.168.1.25 no arquivo, como no exemplo do curso, mas quando acesso via navegador o endereço http://192.168.1.25/, ele aparece a página inicial do apache.

1° pergunta: Este endereço está correto? Ou tenho que passar uma porta no endereço para acessar meu index.php? 2° pergunta: Há algo errado e/ou faltando em meu Vagrantfile?

Abaixo seguem informações para ajudarem a entender como estão as coisas por aqui até agora:

Vagrantfile:

$script_mysql = <<-SCRIPT
  apt-get update && \
  apt-get install -y mysql-server-5.7 && \
  mysql -e "CREATE USER 'phpuser'@'%' identified by 'pass';"
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.define "mysqldb" do |mysql|

    #  config.vm.network "private_network", type: "dhcp"
    mysql.vm.network "private_network", ip: "192.168.1.24"
    mysql.vm.provision "shell",
    inline: "echo Hello, World >> hello.txt"
    mysql.vm.provision "shell", inline: "cat /configs/id_bionic.pub >> .ssh/authorized_keys"
    mysql.vm.provision "shell", inline: $script_mysql
    mysql.vm.provision "shell", inline: "cat /configs/mysqld.cnf > /etc/mysql/mysql.conf.d/mysqld.cnf && service mysql restart"

    mysql.vm.synced_folder "./configs", "/configs"
    mysql.vm.synced_folder ".", "/vagrant", disabled: true
  end

  config.vm.define "php" do |php|
    php.vm.network "forwarded_port", guest: 80, host: 8081
    php.vm.network "private_network", ip: "192.168.1.25"
    php.vm.provision "shell",
      inline: "apt-get update && apt-get install -y puppet"
    php.vm.provision "puppet" do |puppet|
      puppet.manifests_path = "./configs/manifest"
      puppet.manifest_file = "phpweb.pp"
    end
  end
end
15 respostas

Continuando...

configs/manifest/phpweb.pp:

#update no repositório
exec { 'apt-update' :
  command => '/usr/bin/apt-get update'
}

#instalando o apache2
package { ['php7.2', 'php7.2-mysql']:
  require => Exec['apt-update'],
  ensure => installed
}

#iniciando o serviço do PHP
exec { 'run-php7':
  require => Package['php7.2'],
  command => '/usr/bin/php -S 0.0.0.0:8888 -t /vagrant/src &'
}

Estrutura de diretórios de minha máquina:

bionic
|_.vagrant
|__ (pastas da VM)
|_configs
|__ manifest
|___ phpweb.pp
|_src
|__ index.php
|_Vagrantfile

Há algo mais que eu possa informar para ajudar no diagnóstico?

Obrigado

Olá Guilherme, tudo bem? Você já tentou acessar http://192.168.1.25:8888? porque note que na linha:

command => '/usr/bin/php -S 0.0.0.0:8888 -t /vagrant/src &'

O servidor PHP subiu na porta 8888, então para acessar mesmo de fora da máquina você precisa usar a porta 8888, e usando apenas o http://192.168.1.25/ você realmente deve acessar a página inicial do Apache já que esse endereço leva você para a porta 80 e não 8888 que é onde a aplicação está. Tenta dessa forma e fala pra gente o resultado!

Oi Jonilson, boa tarde.

Obrigado pelo retorno.

Eu tentei, e dá ERR_CONNECTION_REFUSED.

Guilherme, você poderia tentar colocar public_network no lugar de private_network, seu Vagrantfile ficando da seguinte forma:

$script_mysql = <<-SCRIPT
  apt-get update && \
  apt-get install -y mysql-server-5.7 && \
  mysql -e "CREATE USER 'phpuser'@'%' identified by 'pass';"
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.define "mysqldb" do |mysql|

    #  config.vm.network "public_network", type: "dhcp"
    mysql.vm.network "public_network", ip: "192.168.1.24"
    mysql.vm.provision "shell",
    inline: "echo Hello, World >> hello.txt"
    mysql.vm.provision "shell", inline: "cat /configs/id_bionic.pub >> .ssh/authorized_keys"
    mysql.vm.provision "shell", inline: $script_mysql
    mysql.vm.provision "shell", inline: "cat /configs/mysqld.cnf > /etc/mysql/mysql.conf.d/mysqld.cnf && service mysql restart"

    mysql.vm.synced_folder "./configs", "/configs"
    mysql.vm.synced_folder ".", "/vagrant", disabled: true
  end

  config.vm.define "php" do |php|
    php.vm.network "forwarded_port", guest: 80, host: 8081
    php.vm.network "public_network", ip: "192.168.1.25"
    php.vm.provision "shell",
      inline: "apt-get update && apt-get install -y puppet"
    php.vm.provision "puppet" do |puppet|
      puppet.manifests_path = "./configs/manifest"
      puppet.manifest_file = "phpweb.pp"
    end
  end
end

E fala pra gente o resultado!

Jonilson boa tarde.

Não deu certo.

Será que não ter instalado o Nginx na VM faz alguma diferença?

É realmente bastante estranho Guilherme, você consegue ver a página inicial do apache mesmo colocando o public_network é isso? Você poderia tirar alguns prints e colocar no Google Drive e compartilhar o link aqui pra gente poder entender o problema. Outra coisa de qual computador você está tentando fazer o acesso? É do computador que tem o Vagrant em execução ou é de outra máquina na rede?

É, isso tava assim antes, agora nem isso hehehehe

abaixo segue o Vagrantfile atual:

$script_mysql = <<-SCRIPT
  apt-get update && \
  apt-get install -y mysql-server-5.7 && \
  mysql -e "CREATE USER 'phpuser'@'%' identified by 'pass';"
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.define "mysqldb" do |mysql|

    #  config.vm.network "private_network", type: "dhcp"
    mysql.vm.network "public_network", ip: "192.168.1.24"
    mysql.vm.provision "shell",
    inline: "echo Hello, World >> hello.txt"
    mysql.vm.provision "shell", inline: "cat /configs/id_bionic.pub >> .ssh/authorized_keys"
    mysql.vm.provision "shell", inline: $script_mysql
    mysql.vm.provision "shell", inline: "cat /configs/mysqld.cnf > /etc/mysql/mysql.conf.d/mysqld.cnf && service mysql restart"

    mysql.vm.synced_folder "./configs", "/configs"
    mysql.vm.synced_folder ".", "/vagrant", disabled: true
  end

  config.vm.define "php" do |php|
    php.vm.network "forwarded_port", guest: 80, host: 8888
    php.vm.network "public_network", ip: "192.168.1.25"
    php.vm.provision "shell",
      inline: "apt-get update && apt-get install -y puppet"
    php.vm.provision "puppet" do |puppet|
      puppet.manifests_path = "./configs/manifest"
      puppet.manifest_file = "phpweb.pp"
    end
  end
end

Guilherme, poderia passar alguns prints de tela pra gente poder verificar corretamente, e de antemão você poderia tentar usando esse código:

$script_mysql = <<-SCRIPT
    apt-get update && \
    apt-get install -y mysql-server-5.7 && \
    mysql -e "create user 'phpuser'@'%' identified by 'pass';"
SCRIPT

Vagrant.configure("2") do |config|
    config.vm.box = "ubuntu/bionic64"

    config.vm.define "mysqldb" do |mysql|
        mysql.vm.network "public_network", ip: "192.168.1.21"

        mysql.vm.provision "shell", 
            inline: "cat /configs/id_bionic.pub >> .ssh/authorized_keys"
        mysql.vm.provision "shell", inline: $script_mysql
        mysql.vm.provision "shell", 
            inline: "cat /configs/mysqld.cnf > /etc/mysql/mysql.conf.d/mysqld.cnf"
        mysql.vm.provision "shell", inline: "service mysql restart"

        mysql.vm.synced_folder "./configs", "/configs"
        mysql.vm.synced_folder ".", "/vagrant", disabled: true 
    end

    config.vm.define "phpweb" do |phpweb|
        phpweb.vm.network "forwarded_port", guest: 8888, host: 8888
        phpweb.vm.network "public_network", ip: "192.168.1.22"

        phpweb.vm.provision "shell", 
            inline: "apt-get update && apt-get install -y puppet"

        phpweb.vm.provision "puppet" do |puppet|
            puppet.manifests_path = "./configs/manifests"
            puppet.manifest_file = "phpweb.pp"
        end
    end

end

Jonilson,

Coloquei os mesmos códigos informados, e ainda está dando timeout na requisição:

Dentro da máquina do PHP, este é o resultado do netstat -lntp:

vagrant@ubuntu-bionic:~$ netstat -lntp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::80                   :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
vagrant@ubuntu-bionic:~$

ifconfig:

vagrant@ubuntu-bionic:~$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::2b:21ff:fe86:a5be  prefixlen 64  scopeid 0x20<link>
        ether 02:2b:21:86:a5:be  txqueuelen 1000  (Ethernet)
        RX packets 3496  bytes 917695 (917.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2041  bytes 294170 (294.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.22  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2804:14d:1c78:872c:a00:27ff:fef1:e48b  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::a00:27ff:fef1:e48b  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:f1:e4:8b  txqueuelen 1000  (Ethernet)
        RX packets 30394  bytes 37940515 (37.9 MB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 9042  bytes 796538 (796.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 58  bytes 5844 (5.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 58  bytes 5844 (5.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Você precisa de prints de quais telas? (e como torna-las públicas para serem exibidas aqui?)

Obrigado

É bastante estranho esse problema, os prints é porque preciso de mais detalhes para tentar identificar o problema, mas uma dúvida, você está usando Windows na sua máquina física é isso? Você tem docker ou algum outro serviço no tipo, porque o que me vêm a mente é que algum outro serviço pode está gerando conflito com a rede da máquina virtual criada pelo Vagrant.

Jonilson,

Aqui é o bom windão 10 sem fronteira. Tem docker instalado, pausei o serviço e mesmo assim não deu certo a rede.

Que tela vc precisa que eu mande o print? (e como disponibilizar os mesmos prints aqui?)

Sobre os prints, você pode colocar as imagens em sites como o Imgur, e colocar o link aqui no fórum que já vamos conseguir acessar tranquilamente, mas se quiser melhorar ainda mais a exibição das imagens você pode ler nesse artigo: Fórum da Alura: Como inserir imagens nas perguntas. Sobre quais imagens, você poderia passar imagens das configurações de rede da sua máquina virtual dentro do VirtualBox, imagem do erro no navegador, das configurações de rede da sua máquina física.

Fico aguardando retorno.

Boa noite Jonilson.

Seguem os prints das telas:

Portas seriais: https://i.imgur.com/x1YrUYR.png

Mais Portas seriais: https://i.imgur.com/QYfOjvD.png

Timeout gerado: https://i.imgur.com/NWC7b2I.png

Adaptador 1 da rede: https://i.imgur.com/C0LV9rs.png

Adaptador 2 da rede: https://i.imgur.com/plM91y4.png

Se tiver alguma tela a mais que precise ver, me avise por favor.

obrigado

solução!

Guilherme, quando você alterou o código do Vagrantfile você tentou destruir a máquina e criar novamente? Outra coisa, você já verificou se na sua rede tem algum dispositivo usando esse IP 192.168.1.22? Outra coisa, durante a criação da máquina depois de ter alterado o Vagrantfile mostrou algum erro de atribuição de IP? Porque aparentemente está tudo certinho, o que me vêm a mente é a questão IP que pode está em outro dispositivo. Em último caso, você poderia colocar a máquina pra receber o IP automaticamente com o dhcp da seguinte forma:

config.vm.network "public_network"

Depois criar a máquina dessa forma e verificar qual o IP ela está adquirindo e depois tentar acessar o ìndex.php, se você obtiver sucesso dessa forma, então o problema é no IP, você pode tentar colocar como IP fixo o mesmo IP que ele recebe do seu roteador via DHCP.

Jonilson, boa noite.

Sim, toda alteração que eu faço no Vagrantfile eu executo um vagrant destroy e um vagrant up log em seguida.

Sobre subir o vagrant, nenhum erro acusa sobre nada, e até troquei o ip de acesso para 192.169.1.199 e também não achou...

De todo o caso, segui seu conselho e deixei public, e agora consigo acessar atraves de http://localhost:8888/.

obrigado

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software