Execute esses comandos pra instalar a última versão do composer (verifique em https://getcomposer.org/download/):
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
- php composer-setup.php
- php -r "unlink('composer-setup.php');"
Depois mova o composer para pasta de binários locais:
- mv composer.phar /usr/local/bin/composer
Após isto, ainda é necessário dar permissão à cache
sudo chown -R $USER $HOME/.composer
E então instalar o Laravel
- composer global require "laravel/installer"
E adicionar o laravel aos comandos reconhecidos pelo sistema.
(temporariamente executando):
- export PATH="$PATH:$HOME/.composer/vendor/bin"
Ou permanentemente, editando:
Adionando o mesmo comando
- export PATH="$PATH:$HOME/.config/composer/vendor/bin"
E recarregando path config
É necessário instalar o zip php extension
- sudo apt-get install php7.0-zip
Para criar um novo projeto Laravel, execute
- laravel new nomedoprojeto
Caso ocorra um erro de permissão, é necessário executar o comando direcionando para a pasta onde estarão os projetos
- sudo chown usuario /var/www/html
Após criar um projeto com o comando laravel new projeto, será necessário dar permissão para a pasta
storage dentro dele, com o comando
- sudo chmod -R 777 /var/www/html/nomedoprojeto/storage/
Além disto, é necessário configurar o apache pra reconhecer o projeto, editando o arquivo /etc/apache2/sites-available/000-default.conf, adicionando
Alias /yourdir /var/www/html/yourdir/public/
<Directory "/var/www/html/yourdir/public">
AllowOverride All
Order allow,deny
allow from all
</Directory>
Reinicie o servidor apache com
- sudo service apache2 restart
E confira que no diretorio /public/ do seu projeto, o arquivo .htaccess esteja assim:
RewriteEngine On
RewriteBase /yourdir/
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Authorization Headers
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Fontes: