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

Erro no passo a passo e dúvida sobre o PHP.

Olá, bom dia, na aula 5 e na parte 8 do curso, onde devemos estabelecer o que apredemos há um erro, o arquivo para baixar web.pp é na verdade o arquivo index.php pra ser salvo na pasta src, essa parte da pasta src e como configurar o Puppet não está no passo a passo. Pra quem foi fazendo durante a aula não interfere, mas quem só assistiu as aulas, encontra dificuldade pra fazer funcionar. Uma dúvida que não entendi é se pelo navegador deveria conectar com localhost:8888 porque não consegui fazer essa conexão.

3 respostas

Oi, Leonardo, tudo bem?

Essa sugestão de alteração você pode sugerir aqui: https://cursos.alura.com.br/suggestions/new/vagrant-gerenciando-maquinas-virtuais/52871/question ou em outra aula, logo abaixo do botão próxima atividade tem três bolinhas, lá tem sugerir alteração.

Sobre o erro de conexão, você poderia postar aqui os arquivos do seu projeto?

Os arquivos são, na ordem, Vagrantfile, phpweb.pp e index.php:

    $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 "private_network", ip: "192.168.56.11"
    mysql.vm.provision "shell",
    inline: "cat /configs/id_rsa.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 "private_network", ip: "192.168.56.12"
    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
exec { 'apt-update':
  command => '/usr/bin/apt-get update'
}

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

exec { 'run-php7':
  require => Package['php7.2'],
  command => '/usr/bin/php -S 0.0.0.0:8888 -t /vagrant/src $'
}
<?php
  echo "Testando conexao <br /> <br />";
  $servername = "192.168.56.12";
  $username = "phpuser";
  $password = "pass";

  // Create connection
  $conn = new mysqli($servername, $username, $password);

  // Check connection
  if ($conn->connect_error) {
      die("Conexão falhou: " . $conn->connect_error);
  }
  echo "Connetado com sucesso";
?>
solução!

Olá, percebi um erro no meu arquivo phpweb.pp que tinha $ e na verdade seria &, só que depois eu deveria dar um puppet apply e não sabia, achei que seria tudo automático. E no meu arquivo index.php o IP na verdade deveria ser do mysql e eu estava usando o do php, acredito que possa ter sido falta de atenção durante a aula, mas percebi isso fazendo testes e sobre o IP do mysql na aula seguinte. Obrigado.