Utilizando Laravel no Ubuntu 14.04 – Parte 1

Hoje resolvi instalar o Laravel no Ubuntu. Sendo um usuário mediano de Linux (sei me movimentar mas não conheço a fundo), já imaginei que fosse ser uma aventura. Estou usando o Ubuntu 14.04.

O site oficialinicia a instalação a partir do composer, mas eu utilizei os passos que estão neste site porque eu não tinha o stack LAMP instalado ainda, então comecei do zero a partir deste site.

Os passos são os seguintes, já com algumas dicas do que não funcionou. O processo todo comigo demorou cerca de 2 horas, especialmente porque quando um passo não funcionava em algum tutorial eu precisava buscar metade da Internet pra encontrar a resposta que, normalmente, é idiota.

Dica: onde o comando iniciar com $, é comando normal. Onde iniciar com # é porque precisa ser executado como root (usando sudo).

Passo 1: instalar o LAMP

Pra rodar PHP e Laravel você vai precisar do Apache, MySQL e PHP. Comece assim:

Instale o PHP5

# apt-get install python-software-properties
# add-apt-repository ppa:ondrej/php5
# apt-get update
# apt-get install -y php5 php5-mcrypt

Instale o Apache

# apt-get install apache2 libapache2-mod-php5

Instale o MySQL

# apt-get install mysql-server php5-mysql

Passo 2: instalar o composer

Já é daqui que a documentação oficial inicia, apesar de ser diferente o método, até onde entendi. O composer facilita a vida toda porque ele instala as dependências do Laravel sozinho quando você usa um “$ sudo composer install

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

Passo 3: instalar o Laravel

$ cd /var/www
# git clone https://github.com/laravel/laravel.git

Assim que clonar o repo do Laravel para a pasta que deseja, você navega até a pasta e deixa o composer fazer o restante. Vai demorar um pouco até baixar e instalar tudo:

$ cd /var/www/laravel
# composer install

O próximo passo é adicionar a propriedade do diretório e dizer as permissões. Eu entendi que é mais adequado adicionar o meu usuário ao grupo “www-data” porque se não fico sem permissão pra fazer qualquer modificação nos arquivos ou pastas. Eu li isso em um artigo de Joomla (pra ver onde eu fui parar) e acabei executando o que está abaixo (troque youruser pelo seu nome de usuário do ubuntu):

# adduser youruser www-data

Depois, dê as permissões das pastas e arquivos do Laravel para o grupo:

# chown -R www-data.www-data /var/www/laravel
# chmod -R 755 /var/www/laravel

Caso esteja logado no momento com esse usuário, as permissões só terão efeito quando você fizer um logoff e logon novamente. Eu fiquei quase meia hora tentando usar o Atom para editar arquivos da pasta até que percebi isso, já que só me dava permissão negada.

Um passo muito importante: abra o arquivo app.php e altere a string usada para hashes. Se não fizer isso não irá funcionar a instalação. Talvez as permissões que você usou pra instalar já permitiram ao composer fazer isso sozinho, mas no meu caso tive que fazer à mão: 

# nano /var/www/laravel/config/app.php

Caso queira gerar uma string usando o artisan (ferramenta que vem com o Laravel), pode fazer

$ cd /var/www/laravel/
$ php artisan key:generate

E então copiar a string para o app.php. Depois é só salvar o arquivo.

Passo 4: criar o virtualhost no Apache

Meu último passo foi criar o virtualhost no Apache, para que possamos acessar a instalação. Edite / crie o arquivo:

# nano /etc/apache2/sites-available/laravel.dev.conf

Copie e cole o conteúdo abaixo neste arquivo

<VirtualHost *:80>
        
        ServerName laravel.dev
        DocumentRoot /var/www/laravel/public

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/laravel>
                AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Finalmente, habilite o site e recarregue o serviço do Apache:

$ a2ensite laravel.dev
# service apache2 reload

Dá trabalho mas, no final, a recompensa:

Captura de tela de 2015-11-20 23:42:48

 

Agora é só encontrar um bom tutorial e começar a aprender. :)