Laravel - популярный PHP-фреймворк
Рост популярности связан с его простотой и одновременно мощным инструментарием
Для начала установим composer (если его ещё нет).
На Ubuntu будет выглядеть так:
sudo apt-get install composer
Через composer скачиваем установщик Laravel
Стандартное место установки веб-проектов: cd /var/www
composer global require "laravel/installer"
После завершения загрузки устанавливаем фреймворк в папку blog (папка создастся автоматически):
composer create-project --prefer-dist laravel/laravel blog
После выполнения команды появится папка blog, в которой будут исходные файлы проекта.
Корневой папкой сайта будет blog/public. В ней уже содержится index.php и остальные файлы вебстраницы.
Пример создания связки вебсервера nginx c php7.1-fpm (конфиг nginx):
/etc/nginx/sites-enabled/default
Так же стоит озаботится правами. Юзер вебсервера должен быть способным писать в папку с проектом.
Результат - установленный Laravel:
Так же можно использовать nginx-конфиг от самих разработчиков Laravel:
Конфиг доступен тут
Спасибо за внимание.
Возможные проблемы: laravel/installer v2.0.1 requires ext-zip Решение: sudo apt-get install php7.1-zip - версия php должна быть такая же как и установленная у Вас
Возможные проблемы: laravel/framework v5.6.5 requires ext-mbstring Решение: sudo apt-get install php7.1-mbstring phpunit/phpunit 7.1.x-dev requires ext-dom Решение: sudo apt-get install phpunit
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/blog/public;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
}

server {
# Port that the web server will listen on.
listen 80;
# Host that will serve this project.
# server_name app.dev;
# Useful logs for debug.
access_log /path/log/nginx/access.log;
error_log /var/log/nginx/error.log;
rewrite_log on;
# The location of our projects public directory.
root /var/www/blog/public;
# Point index to the Laravel front controller.
index index.php;
location / {
# URLs to attempt, including pretty ones.
try_files $uri $uri/ /index.php?$query_string;
}
# Remove trailing slash to please routing system.
if (!-d $request_filename) {
rewrite ^/(.+)/$ /$1 permanent;
}
# PHP FPM configuration.
location ~* \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php7.1-fpm.sock;
}
# We don't need .ht files with nginx.
location ~ /\.ht {
deny all;
}
# Set header expirations on per-project basis
location ~* \.(?:ico|css|js|jpe?g|JPG|png|svg|woff)$ {
expires 365d;
}
}