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!
Tadeu Torquato
Boa noite,
Não estou conseguindo instalar o laravel….fiz todos os procedimentos e na hora da esse erro abaixo
-bash-3.2$ php71 -c ~/php.ini ~/composer.phar global require “laravel/installer”
Changed current directory to /home/storage/5/48/f3/infoconsultor/.composer
Using version ^2.0 for laravel/installer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 216621056) (tried to allocate 4096 bytes) in phar:///home/storage/5/48/f3/infoconsultor/composer.phar/src/Composer/Repository/ComposerRepository.php on line 593
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 216621056) (tried to allocate 4096 bytes) in phar:///home/storage/5/48/f3/infoconsultor/composer.phar/src/Composer/Repository/ComposerRepository.php on line 593
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 216621056) (tried to allocate 4096 bytes) in phar:///home/storage/5/48/f3/infoconsultor/composer.phar/src/Composer/Repository/ComposerRepository.php on line 593
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 216621056) (tried to allocate 4096 bytes) in phar:///home/storage/5/48/f3/infoconsultor/composer.phar/src/Composer/Repository/ComposerRepository.php on line 593
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 216621056) (tried to allocate 4096 bytes) in phar:///home/storage/5/48/f3/infoconsultor/composer.phar/src/Composer/Repository/ComposerRepository.php on line 593
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 216621056) (tried to allocate 4096 bytes) in phar:///home/storage/5/48/f3/infoconsultor/composer.phar/src/Composer/Repository/ComposerRepository.php on line 593
mmap() failed: [12] Cannot allocate memory
tiagosmx
Parece que você tá com pouca memória RAM na sua hospedagem PHP.
Você sabe aumentar a memória do PHP pelo php.ini?
Joao Coltrane
Não estou conseguindo instalar um laravel que criei e coloquei no seguinte diretório:
public_html/meu_app
Eu só consigo acessar se eu coloco na url o seguinte: meu_dominio/meu_app/public OU meu_dominio/meu_app/index.php
Eu gostaria que o usuário ao cair em meu_dominio/meu_app (ou qualquer outro projeto) fosse direto para o index.php . Eu estou tentando fazer assim porque preciso instalar vários projetos na locaweb. Help!