Это полное руководство по развертыванию приложения Laravel на свежей капельке Ubuntu 18.04 на Digitalocean. Мы можем выполнить те же шаги для развертывания на любом подобном хосте (например, Linode) с ОС Ubuntu 18.04. Для этого вам понадобится свежая капля с сервером Ubuntu 18.04, установлена и корневым доступом этого сервера. Нам также нужен домен/поддомен, указанный на IP-адрес этого сервера (вы можете сделать это, установив «значение» в вашем DNS-менеджере). Если мы все настроены до этого момента, давайте переместим вперед и настройте наш новый сервер Ubuntu.
Теперь мы собираемся установить следующее:
- Nginx.
- MySQL 5.7
- PHP 7.2
Прежде всего запустить следующую команду:
$ apt-get update
1. Nginx.
NGINX — один из самых популярных веб-серверов в мире и несет ответственность за проведение некоторых из крупнейших и самых высоких площадок трафика в Интернете. Это более ресурсоирено, чем Apache в большинстве случаев и может использоваться в качестве веб-сервера или обратного прокси.
1.1. Установка Nginx.
$ apt-get install nginx
1.2. Регулировка брандмауэра
Перед тестированием Nginx программное обеспечение для брандмауэра необходимо настроить, чтобы разрешить доступ к сервису. Nginx регистрирует себя как услугу с UFW
При установке, сделав его прямо, чтобы разрешить доступ NGINX.
Перечислите конфигурации приложений, которые UFW
Знает, как работать, набрав:
$ ufw app list
Мы должны получить список профиля приложения
//Output Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Теперь мы можем включить HTTP, набрав
$ ufw allow 'Nginx HTTP'
Давайте проверим изменение, набрав
$ ufw status
Мы должны увидеть HTTP-трафик, разрешенный на отобранном выходе:
//Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
1.3. Проверка веб-сервера
В конце процесса установки Ubuntu 18.04 начинает nginx. Веб-сервер уже должен быть запущен и работает. Мы можем проверить по следующей команде
$ systemctl status nginx
//Output ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-06-09 00:00:00 ; 3h 33min ago Docs: man:nginx(8) Process: 2062 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 1803 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 2064 (nginx) Tasks: 5 (limit: 4915) CGroup: /system.slice/nginx.service ├─2064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─2066 nginx: worker process ├─2068 nginx: worker process ├─2071 nginx: worker process └─2072 nginx: worker process
Теперь Если мы пойдем к нашему Server_ip_or_domain
из вашего браузера мы будем на следующей странице
2. MySQL 5.7
На Ubuntu 18.04 только последняя версия MySQL включена в репозиторий Package APT по умолчанию. На момент написания, это MySQL 5.7. Чтобы установить выполнить следующую команду:
$ apt-get install mysql-server
Это установит MySQL, но не предложит вам установить пароль или внести любые другие изменения конфигурации. Потому что это оставляет нашу установку небезопасности MySQL, мы запустим следующую команду.
$ mysql_secure_installation
Это приведет нас через серию подсказков, где мы можем внести некоторые изменения в наши параметры безопасности MySQL, такие как установить пароль для пользователя root и т. Д. Мы должны установить пароль для пользователя root. Чтобы войти в пользователь root с недавно заданным паролем, мы можем запустить следующую команду
$ mysql -u root -p
Чтобы проверить будь то MySQL
работает запускать следующую команду
$ systemctl status mysql
// Output ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-06-09 00:00:00; 3h 53min ago Process: 1948 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS) Process: 1792 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 1950 (mysqld) Tasks: 28 (limit: 4915) CGroup: /system.slice/mysql.service └─1950 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
3. PHP 7.2
PHP 7.2 включен в репозиторий Ubuntu по умолчанию на 18.04. Мы можем перечислить каждый из доступных пакетов PHP 7.2 со следующей командой
$ apt-cache pkgnames | grep php7.2
Далее мы можем установить пакеты, которые требуют нашего приложения
$ apt-get install php curl git unzip $ apt-get install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php
Наконец, мы можем перезапустить Nginx, чтобы позволить PHP запустить
$ systemctl restart nginx
И подтвердить версию PHP
$ php --version
// Output PHP 7.2.16-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 7 2019 20:23:29) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.16-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Основной файл конфигурации PHP 7.2 будет сохранен как /так далее/php/7.2/fpm/php.ini
. Мы можем использовать любой текстовый редактор для изменения соответствующих настроек в этом файле
$ nano /etc/php/7.2/fpm/php.ini
Теперь нам нужен другой инструмент, прежде чем мы сможем настроить настроить Laravel. Этот инструмент — композитор
Отказ Composer — это популярный инструмент управления зависимостями для PHP, созданный в основном для облегчения установки и обновлений для зависимостей проекта. Чтобы установить композитор
Мы должны запустить следующие команды
$ cd ~ $ curl -sS https://getcomposer.org/installer -o composer-setup.php
Чтобы установить Composer по всему миру, используйте следующую команду, которая загрузится и установит композитор в виде команды System-Share с именем композитор
под /usr/local/bin
$ php composer-setup.php --install-dir=/usr/local/bin --filename=composer
//Output All settings correct for using Composer Downloading... Composer (version 1.6.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Чтобы проверить нашу установку, мы можем запустить
$ composer
И мы получим следующий вывод со всеми аргументами композитора
Output ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.6.5 2018-05-04 11:44:59 Usage: command [options] [arguments] ...
Как мы закончили установку всех зависимостей. Теперь его время для нас, чтобы создать основной проект. Здесь я собираюсь использовать Git, чтобы потянуть мой Laravel Project из удаленного репозитория и поддерживать контроль версий приложения.
Настройка базы данных
Но сначала мы должны создать новую базу данных для приложения. Чтобы создать базу данных MySQL и пользователей, мы должны следовать этим шагам.
- На командной строке мы должны войти в MySQL в качестве пользователя root.
$ mysql -u root -p
Вставьте пароль root для входа в mysql оболочку.
- Чтобы создать пользователь базы данных, мы должны ввести следующую команду. Заменить
Имя пользователя
с пользователем, который вы хотите создать, и заменитьпароль
с паролем пользователя.
$ mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
Затем введите \ Q, чтобы выйти из программы MySQL.
- Чтобы войти в MySQL как пользователь, который мы только что создали, введите следующую команду. Заменить
Имя пользователя
с именем пользователя, который вы создали на предыдущем шаге.
$ mysql -u username -p
Вставьте пароль пользователя для входа в Shell MySQL.
- Чтобы создать базу данных, мы должны вводить следующую команду. Заменить
dbname
с именем базы данных, которую вы хотите создать.
$ mysql> CREATE DATABASE dbname;
Настройка приложений
Мы собираемся принять наше приложение в /var/www/html
каталог нашего сервера. Вы можете использовать любой другой каталог, если хотите. Мы будем использовать Гит
Загрузить файлы проекта и поддерживать контроль версий. Я полагаю, мы знаем основы git. Давайте погрузиться в.
- Создайте пустой репозиторий Git в
/var/www/html
каталог.
$ cd /var/www/html $ git init
Скажем, наш удаленный репозиторий на Гадость И у нас есть ссылка https://github.com/username/project-name.git
И это репо имеет Производство
ветвь. Теперь давайте добавим это удаленное репо на наше недавно созданное пустое репо и потяните файлы проекта с пульта.
$ git remote add origin https://github.com/username/project-name.git $ git pull origin production
Возможно, нам придется войти в ваше имя пользователя и пароль GitHub здесь. Тогда мы должны ждать, пока полная ветвь не будет загружена на сервер. Теперь мы настроим приложение Laravel на нашем сервере. Убедитесь, что мы находимся в нашем каталоге проекта (здесь это /var/www/html
).
$ cp .env.example .env $ nano .env
Это откроет .env
Файл в нано
Редактор, чтобы мы могли внести необходимые изменения.
// .env file APP_NAME=application_name APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=application_url DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dbname DB_USERNAME=username DB_PASSWORD=password MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1
После редактирования мы сохраним файл by Ctrl + O
и выход из Ctrl + x
Отказ Теперь давайте устанавливаем все зависимости через композитор
Отказ
$ composer update
После того, как все зависимости установлены успешно запустите следующие команды.
$ composer dump-autoload $ php artisan config:clear $ php artisan key:generate $ php artisan migrate $ php artisan db:seed
Наше приложение Laravel почти настроено сейчас. Единственное, что осталось делать сейчас, — сделать файл конфигурации NGINX. Мы можем использовать /etc/nginx/sites-available/default.conf
файл или мы можем сделать новый файл конфигурации. В любом случае это будет работать. Здесь мы собираемся использовать по умолчанию
файл.
$ nano /etc/nginx/sites-available/default.conf
Очистите все из файла и добавьте следующий фрагмент.
// /etc/nginx/sites-available/default.conf file server { listen 80; listen [::]:80; root /var/www/html/public; index index.php index.html index.htm index.nginx-debian.html; server_name; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Сохраните и закройте файл. Теперь мы должны сделать символическую ссылку этого файла к /etc/nginx/sites-sisted/
каталог. Выполнить, что выполняет следующую команду.
$ ln -S /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/
Чтобы проверить, правильно ли правильная настройка NGINX, мы можем запустить следующую команду.
$ nginx -t
Если файл конфигурации правильный, он выводит следующее.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Теперь мы должны перезапустить обслуживание Nginx.
$ systemctl restart nginx
В этот момент наше приложение Laravel успешно развернуто на нашем сервере Ubuntu 18.04. Теперь, чтобы проверить мы просматриваем IP или домен сервера из браузера и увидим наше приложение в прямом эфире.
В этом посте я попытался дать вам, ребята, полное руководство по тому, как вы можете развернуть приложение вашего Laravel с Nginx на Ubuntu 18.04 на цифровой платформе или Linode или любой другой подобной платформе хостинга. Надеюсь, это поможет вам все в некотором роде. Мир.
Оригинал: «https://dev.to/shuv1824/deploy-laravel-application-with-nginx-on-ubuntu-18-04-on-digitalocean-1egl»