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:
[code]suhosin.executor.include.whitelist = phar[/code]
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
[code]allow_url_fopen = On[/code]
2º Passo - Baixar e instalar o Composer
Acesse seu servidor via SSH e faça o seguinte comando:
[code language="bash"] curl -sS https://getcomposer.org/installer | php71 -c ~/php.ini [/code]
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:
[code language="bash"] php71 -c ~/php.ini ~/composer.phar [/code]
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:
[code language="bash"]php71 -c ~/php.ini ~/composer.phar create-project laravel/laravel ~/laravel[/code]
Ainda não está pronto. Precisaremos organizar as pastas manualmente. Vamos mover tudo que está dentro da pasta ~/laravel para a pasta raíz:
[code language="bash"]mv ~/laravel/* ~/laravel/.* ~/
#o ~/laravel/.* serve para mover arquivos que começam com ponto tipo .env
[/code]
Pode ser que um erro tipo esse apareça:
[code]mv: cannot move `/home/storage/a/5b/50/minha_hospedagem/laravel/.' to `/home/storage/a/5b/50/minha_hospedagem/.': Device or resource busy[/code]
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:
[code language="bash"]# 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[/code]
Exclua o .htaccess da pasta public:
[code language="bash"]rm ~/public/.htaccess[/code]
Agora mova tudo da pasta ~/public para a ~/public_html:
[code language="bash"]mv ~/public/* ~/public/.* ~/public_html[/code]
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:
[code language="bash"]php71 -c ~/php.ini ~/composer.phar create-project laravel/laravel ~/public_html/meu_app[/code]
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:
[code] order deny,allow deny from all [/code]
Agora na pasta ~/public_html/meu_app/public edite o .htaccess e adicione no final:
[code] allow from all [/code]
É isso!
Qualquer dúvida ou erro me informe nos comentários!