Pesquisa de site

Como instalar o Laravel PHP Framework com Nginx no CentOS 8


Laravel é uma estrutura web de código aberto, bem conhecida e moderna baseada em PHP, com sintaxe expressiva, elegante e fácil de entender, o que facilita a construção de aplicações web grandes e robustas.

Seus principais recursos incluem um mecanismo de roteamento simples e rápido, poderoso contêiner de injeção de dependência, vários back-ends para armazenamento de sessão e cache, ORM (mapeamento objeto-relacional) de banco de dados expressivo e intuitivo, processamento robusto de trabalhos em segundo plano e transmissão de eventos em tempo real.

Além disso, ele usa ferramentas como o Composer – um gerenciador de pacotes PHP para gerenciar dependências e o Artisan – uma interface de linha de comando para construir e gerenciar aplicativos da web.

Neste artigo, você aprenderá como instalar a versão mais recente do framework web Laravel PHP na distribuição Linux CentOS 8.

Requisitos do servidor

O framework Laravel possui os seguintes requisitos:

  • PHP >= 7.2.5 com estas extensões PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype e JSON.
  • Composer – para instalar e gerenciar dependências.

Etapa 1: Instalando a pilha LEMP no CentOS 8

1. Para começar, atualize os pacotes de software do sistema e instale a pilha LEMP (Linux, Nginx, MariaDB/MySQL e PHP) usando os seguintes comandos dnf.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Quando a instalação do LEMP for concluída, você precisará iniciar o PHP-PFM, o Nginx e o Serviços >MariaDB usando os seguintes comandos systemctl.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. Em seguida, você precisa proteger e fortalecer o mecanismo de banco de dados MariaDB usando o script de segurança conforme mostrado.

mysql_secure_installation

Responda às seguintes perguntas para proteger a instalação do servidor.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. Se você tiver o serviço firewalld em execução, será necessário abrir o serviço HTTP e HTTPS no firewall para habilitar solicitações de clientes para o servidor web Nginx.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

5. Finalmente, você pode confirmar se sua pilha LEMP está sendo executada usando um navegador no endereço IP do seu sistema.

http://server-IP

Etapa 2: configurar e proteger PHP-FPM e Nginx

6. Para processar solicitações do servidor web Nginx, o PHP-FPM pode escutar em um soquete Unix ou TCP e isso é definido pelo Parâmetro listen no arquivo de configuração /etc/php-fpm.d/www.conf.

vi /etc/php-fpm.d/www.conf

Por padrão, ele está configurado para ouvir em um soquete Unix, conforme mostrado na imagem a seguir. O valor aqui será especificado no arquivo de bloco do servidor Nginx posteriormente.

7. Se estiver usando um soquete Unix, você também deve definir a propriedade e as permissões corretas, conforme mostrado na captura de tela. Remova o comentário dos parâmetros a seguir e defina seus valores para o usuário e grupo para corresponder ao usuário e grupo com o qual Nginx está sendo executado.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Em seguida, defina também o fuso horário de todo o sistema no arquivo de configuração /etc/php.ini.

vi /etc/php.ini

Procure a linha “;date.timezone ” e remova o comentário, depois defina seu valor conforme mostrado na captura de tela (use valores que se aplicam à sua região/continente e país).

 
date.timezone = Africa/Kampala

9. Para mitigar o risco de o Nginx passar solicitações de usuários mal-intencionados que usam outras extensões para executar código PHP para PHP-FPM, remova o comentário do parâmetro a seguir e defina seu valor como 9. código>0.

cgi.fix_pathinfo=1

10. Em relação ao ponto anterior, remova também o comentário do seguinte parâmetro no arquivo /etc/php-fpm.d/www.conf. Leia o comentário para mais explicações.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Etapa 3: Instalando o Composer e o Laravel PHP Framework

11. Em seguida, instale o pacote Composer executando os seguintes comandos. O primeiro comando baixa o instalador e depois o executa usando PHP.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

12. Agora que o Composer está instalado, use-o para instalar arquivos e dependências do Laravel como segue. Substitua mysite.com pelo nome do diretório onde os arquivos Laravel serão armazenados, o caminho absoluto (ou caminho raiz no arquivo de configuração Nginx) será /var/www/html/mysite .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Se tudo correr bem durante o processo, o aplicativo deverá ser instalado com sucesso e uma chave deverá ser gerada conforme mostrado na imagem a seguir.

13. Durante o processo de instalação, o arquivo de ambiente .env foi criado e o aplicativo necessário também foi gerado, portanto você não precisa criá-los manualmente como antes. Para confirmar isso, execute uma longa listagem do diretório raiz laravel usando o comando ls.

ls -la mysite.com/

14. Em seguida, você precisa configurar a propriedade e as permissões corretas nos diretórios storage e bootstrap/cache para serem graváveis pela web Nginx servidor.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Se o SELinux estiver ativado em seu servidor, você também deverá atualizar o contexto de segurança do armazenamento e do bootstrap/cache diretórios.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

Etapa 4: configurar o bloco de servidor Nginx para Laravel

16. Para que o Nginx comece a servir seu site ou aplicativo, você precisa criar um bloco de servidor para ele em um arquivo .conf em >/etc/nginx/conf.d/ conforme mostrado.

vi /etc/nginx/conf.d/mysite.com.conf

Copie e cole a seguinte configuração no arquivo. Anote os parâmetros root e fastcgi_pass.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. Salve o arquivo e verifique se a sintaxe de configuração do Nginx está correta executando.

nginx -t

18. Em seguida, reinicie os serviços PHP-FPM e Nginx para que as alterações recentes tenham efeito.

systemctl restart php-fpm
systemctl restart Nginx

Etapa 5: Acessando o site do Laravel a partir de um navegador da Web

19. Para acessar o site do Laravel em meusite.com, que não é um nome de domínio totalmente qualificado (FQDN) e não está registrado (é usado apenas para fins de teste) , usaremos o arquivo /etc/hosts em sua máquina local para criar o DNS local.

Execute o seguinte comando para adicionar o endereço IP do servidor e o domínio no arquivo necessário (substitua o valor de acordo com suas configurações).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Em seguida, abra um navegador da web na máquina local e use o seguinte endereço para navegar.

http://mysite.com

Você implantou o Laravel com sucesso no CentOS 8. Agora você pode começar a desenvolver seu site ou aplicação web usando o Laravel. Para obter mais informações, consulte o guia de primeiros passos do Laravel.