Instalando Laravel em hospedagem compartilhada Locaweb

Você precisa ter uma hospedagem Linux com a versão do PHP mais atual (quanto mais atual melhor). Neste tutorial usarei o PHP 7.1. Você pode mudar facilmente a versão do PHP no seu servidor pelo Painel de Controle da Locaweb.

1º Passo – Permitir que o Composer seja executado na sua hospedagem

Abra o php.ini na sua hospedagem (pode ser via FTP, SFTP ou SSH)

e adicione no final do arquivo texto, em uma nova linha, o seguinte:

suhosin.executor.include.whitelist = phar

Essa linha permite que você possa executar o composer via SSH.

Pelo que andei lendo, esse Suhosin é um plugin para o PHP que aumenta a segurança do servidor. É algo que a Locaweb usa para impedir que seus clientes rodem códigos maliciosos nas hospedagens compartilhadas.

Modifique a seguinte linha para permitir que abertura de arquivos via PHP

allow_url_fopen = On

2º Passo – Baixar e instalar o Composer

Acesse seu servidor via SSH e faça o seguinte comando:

curl -sS https://getcomposer.org/installer | php71 -c ~/php.ini

Perceba que em php71 você deve trocar para exatamente a versão do php que você está usando. Se estiver com o PHP 5.6 digite php56, se estiver com o PHP 7.0 digite php70 e assim por diante.

Veja se você consegue rodar o composer com sucesso digitando:

php71 -c ~/php.ini ~/composer.phar

Deverá mostrar Composer escrito em ASCII Art, sua versão e uma explicação dos comandos que o software pode executar.

3º Passo – Instalando o Laravel

php71 -c ~/php.ini ~/composer.phar global require “laravel/installer”

Isso irá instalar o Laravel. Pronto.

4º Passo – Criando um projeto com o modelo do Laravel

Vamos criar uma pasta chamada laravel com todo os arquivos necessários para o laravel funcionar dentro da raíz da sua hospedagem:

php71 -c ~/php.ini ~/composer.phar create-project laravel/laravel ~/laravel

Ainda não está pronto. Precisaremos organizar as pastas manualmente. Vamos mover tudo que está dentro da pasta ~/laravel para a pasta raíz:

mv ~/laravel/* ~/laravel/.* ~/

#o ~/laravel/.* serve para mover arquivos que começam com ponto tipo .env

Pode ser que um erro tipo esse apareça:

mv: cannot move `/home/storage/a/5b/50/minha_hospedagem/laravel/.' to `/home/storage/a/5b/50/minha_hospedagem/.': Device or resource busy

Não se preocupe, o erro aconteceu comigo também, mas todas as pastas foram transportadas.

Certifique-se de que todos os arquivos foram passados, inclusive os ocultos “.env”, “.env_example”, “.gitignore”, etc…

A pasta ~/public é quem contém a página inicial da sua aplicação laravel, o index.php está lá. Como o Locaweb trabalha com a pasta public_html teremos que mover tudo da pasta public para a public_html, mas vamos com calma…

Há um arquivo .htaccess em ambas as pastas! Você vai precisar mesclar as duas.

Copie o conteúdo do ~/public/.htaccess  e cole no final do ~/public_html/.htaccess:

# Dá pra fazer isso com o comando cat, mas não lembro exatamente como

# Você também pode fazer via SFTP com WinSCP ou FileZilla

Exclua o .htaccess da pasta public:

rm ~/public/.htaccess

Agora mova tudo da pasta ~/public para a ~/public_html:

mv ~/public/* ~/public/.* ~/public_html

Pronto! Agora já pode usar o Laravel na sua hospedagem compartilhada da Locaweb.

[Extra] Se quiser instalar o Laravel numa subpasta do ~/public_html

Se quiser instalar o Laravel numa pasta tipo ~/public_html/meu_app siga essas instruções:

Quando for pedir ao composer criar o projeto do Laravel, crie diretamente dentro da pasta ~/public_html:

php71 -c ~/php.ini ~/composer.phar create-project laravel/laravel ~/public_html/meu_app

Cuidado, ao fazer isso seus arquivos podem ser acessados por qualquer pessoa. Para impedir que isso aconteça você precisará criar regras no .htaccess.

Na pasta ~/public_html/meu_app crie um arquivo .htaccess e nele escreva:

order deny,allow
deny from all

Agora na pasta ~/public_html/meu_app/public edite o .htaccess e adicione no final:

allow from all

É isso!

Qualquer dúvida ou erro me informe nos comentários!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *