LARAVEL + Ubuntu 16 + DIGITALOCEAN

Создание сервера

Создайте новый droplet
LEMP on 16

Настройка сервера


#! Обновление сервера
sudo apt-get update
sudo apt-get install nginx

#! Установка необходимых пакетов для LARVEL
apt-get install php7.0-mbstring php7.0-xml composer unzip

#! Настройка ufw firewall
sudo ufw allow 'Nginx HTTP'

#! Настройка базы данных
sudo mysql_secure_installation

#! Создание swap файла
sudo fallocate -l 1G /swapfile
#! проверка
ls -lh /swapfile
#! Подключеие swap
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
#! Добавление swap файла при загрузки системы
cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Установка Laravel


cd /var/www/
composer create-project --prefer-dist laravel/laravel name

Настройка сервера для работы с Laravel


#! Настрока nginx

nano /etc/nginx/sites-available/default
server {
	listen 80 default_server;
	listen [::]:80 default_server ipv6only=on;

	root /var/www/name/public;
	index index.php index.html index.htm;

	# Make site accessible from http://localhost/
	server_name localhost;

	location / {
		try_files $uri $uri/ /index.php?$query_string;
	}

	error_page 404 /404.html;
	error_page 500 502 503 504 /50x.html;

	location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
	}

	location ~ /\.ht {
		deny all;
	}
}

#! перезагрузка nginx
service nginx restart

#! права на дериктории

chown -R www-data:www-data /var/www/name/storage/

chown -R www-data:www-data /var/www/mideal/bootstrap/cache/

#! Создание ключа шифрования

cd /var/www/name
php artisan key:generate
#! будет сгенерирован ключ, уго необходимо прописать в файл .env
cp /var/www/html/name/.env.example /var/www/html/name/.env
sudo nano /var/www/html/name/.env
#! Допишите сгенерированный ключ в параметр APP_KEY=

#! Добавление базы данных для приложения

mysql -u root -p


CREATE DATABASE laravel DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;



#! Прописать настройки подключения базы данных в .env
sudo nano /var/www/html/name/.env
php artisan migrate

#! Редирект для nginx
#! С www на домен без wwww
if ($http_host ~* "^www.mideal.ru$"){
	rewrite ^(.*)$ http://mideal.ru$1 redirect;
}

#! Со страниц со слешем в конце на страицы без слеша
#rewrite ^([^.]*[^/])$ $1/ permanent;

#! Со страниц без слешем в конце на страицы соз слеша
if ($request_uri ~* "^(.*/)index\.php$") {
	return 301 $1;
}

#! Переадресация с страниц index.php
rewrite ^/(.*)/$ /$1 permanent;
if ($request_uri ~* "^(.*/)index\.php$") {
   return 301 $1;
}

#! Сжатие вайлов
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

#! кеширование в браузере фото
location ~* ^.+\.(jpg|gif|png)$ {
	expires 7d;
}