Устанавливаем Laravel через composer

Laravel - популярный PHP-фреймворк Рост популярности связан с его простотой и одновременно мощным инструментарием Для начала установим composer (если его ещё нет). На Ubuntu будет выглядеть так: sudo apt-get install composer Через composer скачиваем установщик Laravel Стандартное место установки веб-проектов: cd /var/www composer global require "laravel/installer"
Возможные проблемы:
laravel/installer v2.0.1 requires ext-zip
Решение: sudo apt-get install php7.1-zip - версия php должна быть такая же как и установленная у Вас
После завершения загрузки устанавливаем фреймворк в папку blog (папка создастся автоматически): composer create-project --prefer-dist laravel/laravel blog
Возможные проблемы:
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
После выполнения команды появится папка blog, в которой будут исходные файлы проекта. Корневой папкой сайта будет blog/public. В ней уже содержится index.php и остальные файлы вебстраницы. Пример создания связки вебсервера nginx c php7.1-fpm (конфиг nginx): /etc/nginx/sites-enabled/default
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;
        }
}
Так же стоит озаботится правами. Юзер вебсервера должен быть способным писать в папку с проектом. Результат - установленный Laravel:
Так же можно использовать nginx-конфиг от самих разработчиков Laravel:
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;
    }
}
Конфиг доступен тут Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru