Como instalar o Laravel no Ubuntu 20.04

Tudo o que você precisa saber para implantar um aplicativo da web Laravel em uma máquina Ubuntu 20.04 LTS

Laravel é um framework PHP de código aberto muito popular com a sintaxe expressiva e elegante usada para projetar aplicativos da web modernos e bonitos. O objetivo do Laravel é tirar a dor do desenvolvimento web e torná-lo uma experiência divertida e criativa, transformando desenvolvedores web em artesãos da web.

Neste guia, você aprenderá como instalar o Laravel com a pilha LAMP em um servidor Ubuntu 20.04 para ter seu aplicativo da web instalado e funcionando.

Pré-requisitos

Para seguir este guia, você precisará de um servidor Ubuntu 20.04 LTS e estar conectado como um sudo do utilizador. Antes de começar, atualize e atualize os pacotes do Ubuntu 20.04 executando:

sudo apt update && sudo apt update

Instalando a pilha LAMP

LAMP é um acrônimo para eu sistema operacional inux, UMA servidor web pache, M banco de dados ySQL e P Linguagem de programação HP. Já estamos no Ubuntu 20.04, que marca o Linux na pilha LAMP. Portanto, vamos instalar o restante dos três pacotes para completar a pilha LAMP para nosso aplicativo Laravel.

Não há meta-pacote disponível para instalar a pilha LAMP nos repositórios do Ubuntu 20.04. Mas podemos usar um pequeno recurso bacana de apto gerenciador de pacotes chamado tarefas. As tarefas são denotadas usando o nome da tarefa disponível com um cadete (^) anexado a ele.

sudo apt install lamp-server ^

Este comando irá pesquisar os arquivos da lista de pacotes para todos os campos “Tarefa:” e instalar todos os pacotes com “lamp-server” em seus campos de tarefas. Portanto, a pilha LAMP que consiste em pacotes Apache, MySQL e PHP com todas as suas dependências será instalada em seu servidor Ubuntu.

Configurar Firewall

Depois de instalar a pilha LAMP, você também precisa configurar o firewall descomplicado (UFW) e alterar suas regras para que possa acessar o servidor Apache da Internet.

O UFW fornece perfis de aplicativo simples que podem ser usados ​​para alterar regras e alternar o tráfego nas portas de rede. Execute o seguinte comando para listar todos os aplicativos que acessam as portas de rede:

lista de aplicativos sudo ufw

Você verá uma saída como esta:

Aplicativos disponíveis: Apache Apache Full Apache Secure OpenSSH

As portas de rede que esses perfis abrem em seu servidor Ubuntu 20.04 estão listadas abaixo:

  • Apache: este perfil só abre a porta 80 (permite o tráfego HTTP)
  • Apache Full: Este perfil abre ambos 80 & 443 portas (permite o tráfego HTTP e HTTPS)
  • Apache Secure: este perfil abre apenas a porta 443 (permite o tráfego HTTPS)
  • OpenSSH: este perfil abre porta 22 que permite o protocolo SSH

Você precisa habilitar o perfil ‘Apache Full’ que permitirá o tráfego para o servidor da web Apache a partir da Internet. Além disso, você também precisará habilitar o perfil 'OpenSSH' que permite o tráfego na porta 22 (SSH) em seu servidor Ubuntu 20.04. Se você habilitar UFW sem permitir o perfil 'OpenSSH', não será capaz de se conectar ao seu servidor usando SSH.

Para alterar a regra UFW e permitir o tráfego na porta 80 e 22, corre:

sudo ufw allow 'Apache Full' sudo ufw allow 'OpenSSH'

Em seguida, habilite o firewall UFW usando o seguinte comando:

sudo ufw enable

Você pode obter um prompt dizendo “o comando pode interromper as conexões ssh existentes. Continuar com as operações (y | n)? ”. pressione Y para continuar, pois já adicionamos uma regra para permitir SSH no UFW.

Agora você pode acessar a página da web padrão do Apache usando o endereço IP do seu servidor Ubuntu da internet. Para fazer isso, abra seu navegador e digite o endereço IP do seu servidor Ubuntu 20.04 na barra de URL e pressione Enter.

// Your_ubuntu_server_ip

Esta página confirma que o servidor da web Apache está funcionando corretamente e as regras UFW estão configuradas corretamente.

Configurando o banco de dados MySQL para Laravel

O Laravel 7 torna a interação com bancos de dados extremamente simples entre os vários back-ends de banco de dados que ele suporta, como MySQL versão 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ e SQL Server 2017+. Já temos o pacote MySQL mais recente instalado com o lâmpada-cortador ^ tarefa. Portanto, nesta seção, iremos configurar o servidor MySQL e então ver como configurar um novo usuário MySQL e banco de dados para a aplicação Laravel.

Configurar MySQL

O banco de dados MySQL vem com um script de segurança pré-instalado que pode ser usado para remover algumas configurações padrão inseguras. É recomendado que você execute este script antes de implantar seu aplicativo Laravel.

sudo mysql_secure_installation

O comando acima executará o script de segurança, que apresentará uma série de perguntas para configurar o servidor MySQL.

Primeiro, você será perguntado se deseja configurar o VALIDAR SENHA plugar. Este plugin verifica sua senha e as classifica como seguras ou inseguras com base no nível de política de validação de senha que você escolherá em breve. Então pressione Y se você deseja habilitar este plugin.

Saída: Protegendo a implantação do servidor MySQL. Conectando-se ao MySQL usando uma senha em branco. VALIDATE PASSWORD COMPONENT pode ser usado para testar senhas e melhorar a segurança. Ele verifica a força da senha e permite que os usuários definam apenas as senhas que são seguras o suficiente. Deseja configurar o componente VALIDATE PASSWORD? Pressione y | Y para Sim, qualquer outra tecla para Não: Y

Em seguida, defina o nível de política de validação de senha digitando 0, 1 ou 2 dependendo de quão forte você deseja criar sua senha para seus bancos de dados.

Saída: Existem três níveis de política de validação de senha: Comprimento BAIXO> = 8 Comprimento MÉDIO> = 8, numérico, letras maiúsculas e minúsculas e caracteres especiais FORTE Comprimento> = 8, numérico, letras maiúsculas e minúsculas, caracteres especiais e arquivo de dicionário Insira 0 = BAIXO, 1 = MÉDIO e 2 = FORTE: 2

Em seguida, será solicitado que você insira uma nova senha para o usuário root do MySQL. Digite uma senha adequada para a raiz do MySQL. O plugin VALIDATE PASSWORD dará a você a força estimada de sua senha de acordo com seu nível de validação de senha. pressione Y para continuar com a senha que você forneceu.

Saída: Defina a senha do root aqui. Nova senha: Digite novamente a nova senha: Força estimada da senha: 100 Deseja continuar com a senha fornecida? (Pressione y | Y para Sim, qualquer outra tecla para Não): Y

pressione Y para o restante dos prompts, eles removerão alguns usuários anônimos e os bancos de dados de teste, desabilitarão o login de root remoto e recarregarão as novas configurações do servidor MySQL. Quando terminar, teste seu banco de dados executando:

sudo mysql

O comando acima irá abrir o console MySQL, conectando-se ao banco de dados MySQL como o raiz do utilizador. Você verá uma saída como esta:

Saída: Bem-vindo ao monitor MySQL. Os comandos terminam com; ou \ g. Seu ID de conexão do MySQL é 10 Server version: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle e / ou suas afiliadas. Todos os direitos reservados. Oracle é uma marca registrada da Oracle Corporation e / ou de suas afiliadas. Outros nomes podem ser marcas registradas de seus respectivos proprietários. Digite 'ajuda;' ou '\ h' para obter ajuda. Digite '\ c' para limpar a instrução de entrada atual. mysql>

Você deve ter percebido que não precisava inserir a senha que definiu para o usuário root do MySQL. Isso ocorre porque o método de autenticação padrão para o usuário root do MySQL administrativo é caching_sha2_authentication ao invés de mysql_native_password método que usa uma senha para fazer o login.

Portanto, por padrão, você só pode fazer login como usuário root do MySQL com sudo usuários habilitados que atuam como segurança adicional para o servidor MySQL. Mas a biblioteca MySQL PHP não suporta caching_sha2_authentication método. Portanto, precisamos usar mysql_native_password método quando criamos um novo usuário para o Laravel, já que ele usa senhas para conectar e interagir com o banco de dados.

Crie um novo usuário e banco de dados MySQL

É sempre uma boa prática criar um novo usuário e banco de dados especificamente para seu aplicativo, em vez de usar o usuário raiz MySQL e bancos de dados de teste. Então, vamos configurar um novo usuário MySQL chamado laravel_user e um banco de dados chamado laravel. Se você seguiu o tutorial até este ponto, deve ter o console do MySQL aberto. Para criar o usuário chamado laravel_user execute a seguinte consulta no console MySQL:

Observação: Substitua o passe de teste na consulta MySQL abaixo com uma senha forte.

CRIAR USUÁRIO 'laravel_user' @ '%' IDENTIFICADO COM mysql_native_password POR 'testpass';

Em seguida, crie um banco de dados chamado laravel para nosso aplicativo Laravel executando esta consulta:

CREATE DATABASE laravel;

Apenas o usuário root do MySQL tem permissões para o laravel do banco de dados recém-criado. Conceda todas as permissões sobre o laravel banco de dados para o laravel_user Correndo:

GRANT ALL ON laravel. * TO 'laravel_user' @ '%';

Portanto, agora temos um novo usuário MySQL e um banco de dados, saia do console MySQL executando:

SAÍDA;

Teste seu novo usuário MySQL fazendo login no console do MySQL com ele, para fazer isso, execute este comando no terminal:

mysql -u laravel_user -p

Observe o -p sinalizador no comando, ele irá solicitar a senha que você usou ao criar o laravel_user (passe de teste na consulta). Depois de fazer login no console do MySQL como laravel_user, confirme se o usuário tem acesso ao laravel banco de dados executando:

MOSTRAR BASES DE DADOS;
Saída: + -------------------- + | Banco de dados | + -------------------- + | laravel | | information_schema | + -------------------- + 2 linhas no conjunto (0,01 seg)

A saída acima confirma que o usuário MySQL laravel_user tem permissões para o banco de dados laravel. Saia do console MySQL usando o SAÍDA; consulta para que possamos prosseguir com a criação do aplicativo DemoApp Laravel.

Instalando o Laravel

O framework Laravel utiliza o Composer para baixar e gerenciar suas dependências. Portanto, precisamos instalar o Composer em nossa máquina Ubuntu 20.04 antes de podermos criar um aplicativo Laravel.

Instale o Composer

Composer é uma ferramenta gerenciadora de dependências para PHP, que torna a instalação e atualização de frameworks e bibliotecas PHP muito mais fácil. Veremos como instalar o Composer rapidamente neste tutorial para que possamos usá-lo para baixar e gerenciar o framework Laravel.

Você precisa instalar alguns pacotes adicionais que são exigidos pelo Composer para funcionar, como php-cli para executar scripts PHP no terminal e descompactar para ajudar o Composer a extrair os pacotes. Instale os dois executando:

sudo apt install php-cli unzip

Então, para instalar o Composer globalmente, baixe o script de instalação do Composer com ondulação e instale-o usando o seguinte comando:

curl -sS //getcomposer.org/installer | sudo php - --install-dir = / usr / local / bin --filename = composer

Por fim, verifique se o composer foi instalado corretamente executando:

compositor
 ______ / ____ / ___ ____ ___ ____ ____ ________ _____ / / / __ \ / __ `__ \ / __ \ / __ \ / ___ / _ \ / ___ / / / ___ / / _ / / / / / / / / _ / / / _ / (__) __ / / \ ____ / \ ____ / _ / / _ / / _ / .___ / \ ____ / ____ / \ ___ / _ / / _ / Composer versão 1.10.8 2020-06- 24 21:23:30 Uso: comando [opções] [argumentos]

Esta saída confirma que o Composer está funcionando corretamente em seu servidor Ubuntu 20.04, você pode começar a usá-lo para instalar e gerenciar bibliotecas e estruturas de PHP.

Crie um aplicativo Laravel

Temos praticamente tudo o que é necessário para criar um aplicativo Laravel em nosso servidor Ubuntu 20.04, exceto algumas extensões PHP. Instale essas extensões ausentes usando o seguinte comando:

sudo apt instalar php-mbstring php-xml php-bcmath php-zip php-json

Agora, podemos instalar o Laravel e criar um novo aplicativo Laravel com a ajuda do Composer. Primeiro, certifique-se de estar no diretório inicial do usuário:

cd ~

Em seguida, crie um novo projeto Laravel usando o Composer's criar projeto comando:

compositor create-project --prefer-dist laravel / laravel LaravelApp

O comando acima irá criar um novo projeto chamado LaravelApp e também irá instalar e configurar o Laravel Framework para você. Você verá uma saída semelhante a esta:

Saída: Criando um projeto "laravel / laravel" em "./LaravelApp" Instalando laravel / laravel (v7.12.0) Instalando laravel / laravel (v7.12.0): Baixando (100%) Projeto criado em / home / ath / LaravelApp @php - r "file_exists ('. env') || copy ('. env.example', '.env');" Carregando repositórios do composer com informações de pacote Atualizando dependências (incluindo require-dev) Operações de pacote: 97 instalações, 0 atualizações, 0 remoções Instalando voku / portable-ascii (1.5.2): Baixando (100%) Instalando symfony / polyfill-ctype (v1 .17.1): Baixando (100%) Instalando phpoption / phpoption (1.7.4): Baixando (100%) Instalando vlucas / phpdotenv (v4.1.7): Baixando (100%) Instalando symfony / css-selector (v5.1.2) : Baixando (100%) ....

Quando a instalação terminar, vá para o diretório raiz do aplicativo e execute o Laravel artesão comando para verificar se todos os componentes estão instalados corretamente:

cd LaravelApp / php artisan
Saída: Laravel Framework 7.18.0 Uso: comando [opções] [argumentos] Opções: -h, --help Exibe esta mensagem de ajuda -q, --quiet Não exibe nenhuma mensagem -V, --version Exibe esta versão do aplicativo --ansi Forçar saída ANSI --no-ansi Desativar saída ANSI -n, --no-interação Não faça nenhuma pergunta interativa --env [= ENV] O ambiente em que o comando deve ser executado sob -v | vv | vvv, --verbose Aumento o detalhamento das mensagens: 1 para saída normal, 2 para saída mais detalhada e 3 para depuração ....

Esta saída confirma que a instalação foi bem-sucedida e todos os arquivos estão no lugar e as ferramentas de linha de comando do Laravel estão funcionando corretamente. No entanto, ainda precisamos configurar o aplicativo para configurar o banco de dados e algumas outras configurações.

Configurar o aplicativo Laravel

Os arquivos de configuração do Laravel estão localizados em um diretório chamado config dentro do diretório raiz do aplicativo. Além disso, quando instalamos o Laravel através do Composer, ele criou um arquivo de ambiente chamado ‘.env’ no diretório raiz do aplicativo. O arquivo de ambiente inclui as configurações específicas do ambiente e tem precedência sobre as configurações nos arquivos de configuração regulares localizados dentro do diretório config.

Nota: O arquivo de configuração do ambiente contém informações confidenciais sobre o seu servidor, como senhas do banco de dados, chaves do aplicativo Laravel, etc. Portanto, ele nunca deve ser compartilhado publicamente.

Vamos agora editar o .env para alterar a configuração e adicionar as credenciais do banco de dados a ele. Abra o arquivo usando o editor nano executando:

nano .env

Existem muitas variáveis ​​de configuração neste .env Arquivo. Não precisamos alterar cada um deles, pois o Composer definiu a maioria das configurações automaticamente. Portanto, aqui está a lista de algumas variáveis ​​de configuração primárias que você deve conhecer:

  • NOME DO APLICATIVO: O nome do aplicativo usado para notificações e mensagens, então vamos defini-lo como ‘LaravelApp’.
  • APP_ENV: Esta variável é usada para indicar o ambiente do aplicativo atual. Ele pode ser definido para ambientes locais, de desenvolvimento, teste ou produção. Vamos configurá-lo para o ambiente de desenvolvimento por enquanto.
  • APP_KEY: Chave de aplicativo exclusiva usada para criar sais e hashes para o aplicativo da web. Ele é gerado automaticamente quando você instala o Laravel através do Composer, então não há necessidade de alterá-lo.
  • APP_DEBUG: Pode ser definido como verdadeiro ou falso, dependendo se você deseja exibir erros no lado do cliente. Defina-o como falso ao mover para o ambiente de produção.
  • APP_URL: URL base ou IP para a aplicação, mude para o seu nome de domínio se você tiver um para o seu aplicativo Laravel ou então mantenha-o intocado por enquanto.
  • DB_DATABASE: Nome do banco de dados que você deseja usar com o aplicativo Laravel. Vamos usar o banco de dados MySQL ‘laravel’ que criamos durante a configuração do MySQL.
  • DB_USERNAME: Nome de usuário para conectar ao banco de dados. Vamos usar o usuário MySQL ‘laravel_user’ que criamos.
  • DB_PASSWORD: A senha para se conectar ao banco de dados.
 APP_NAME = LaravelApp APP_ENV = desenvolvimento APP_KEY = base64: Application_unique_key APP_DEBUG = verdadeiro APP_URL = // domain_or_IP LOG_CHANNEL = pilha DB_CONNECTION = mysql DB_HOST = 127.0.0.1 DB_PORT = 3306 DB_DATABASE = laravel DB_USERNAME = laravel_user DB_PASSWORD = passe de teste

Faça alterações no .env arquivo de acordo e quando terminar de editar, salve e saia do arquivo usando CTRL + X então aperte Y e pressione Enter para confirmar. Agora, tudo o que resta é configurar o servidor Apache e criar um host virtual para nosso aplicativo Laravel.

Configurando o Apache Web Server

Instalamos o Laravel na pasta local do diretório inicial do usuário. Embora isso funcione perfeitamente bem para o desenvolvimento local, é uma prática recomendada ter o diretório do aplicativo da web localizado em / var / www. A razão pela qual não instalamos o Laravel no / var / www diretamente é porque é propriedade do root e o Composer não deve ser usado com sudo.

Então use o mv comando para mover a pasta do aplicativo Laravel e seu conteúdo para / var / www:

sudo mv ~ / Laravel / / var / www

O diretório LaravelApp é propriedade do usuário, então você ainda pode editar e fazer alterações nos arquivos sem usar o sudo comando. Mas o servidor web Apache precisa acessar os diretórios de cache e armazenamento do aplicativo, já que o Laravel armazena os arquivos gerados pelo aplicativo nele. Altere o proprietário dessas pastas para o www-data usuário usando o chown comando:

sudo chown -R www-data.www-data / var / www / LaravelApp / storage sudo chown -R www-data.www-data / var / www / LaravelApp / bootstrap / cache

Depois de alterar o proprietário desses diretórios, habilite o Apache mod_rewrite como é requerido pelo Laravel para transformar apropriadamente os URLs para serem interpretados por sua função de roteamento via .htaccess Arquivo.

sudo a2enmod reescrever

Em seguida, precisamos configurar um host virtual para o aplicativo Laravel. As configurações do host virtual estão localizadas em / etc / apache2 / sites-available. Vamos editar o arquivo host virtual padrão para implantar o aplicativo Laravel. Abra o arquivo de configuração de host virtual padrão usando o editor nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Alterar a raiz do documento de / var / www / html para / var / www / LaravelApp / public e adicione o seguinte snippet abaixo da linha DocumentRoot:

 AllowOverride All 

Sua 000-default.conf deve ser parecido com isso agora, com alguns comentários.

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / LaravelApp / public AllowOverride Todos ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log combinados 

Reinicie o servidor da web Apache executando o seguinte comando:

sudo systemctl restart apache2

Agora vá para o seu navegador e digite o endereço IP do seu servidor Ubuntu 20.04. Você verá a página inicial do Laravel ao invés da página de boas-vindas padrão do Apache.

Supondo que você tenha seguido este guia até agora, você deve ter um aplicativo Laravel funcionando com um banco de dados MySQL chamado laravel para isso. A partir deste ponto, você pode começar a desenvolver seu aplicativo Laravel por conta própria. Para aprender mais sobre o framework Laravel e seu uso, visite a página de documentação do Laravel.