В статье описана первичная настройка сервера. Описанные действия, проводились на виртуальной машине Vagrant и
Установка Nginx
Установим Nginx последней стабильной версии (на данный момент 1.12.1).
Для настройки репозитория нужно добавить в конец файла /etc/apt/sources.list пару строк.
Открываем файл sources.list для редактирования
sudo nano /etc/apt/sources.list
Дописываем в конец файла строки:
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
Где xenial – кодовое имя дистрибутива Ubuntu (16.04 – это xenial).
Сохраняем и закрываем файл.
Для проверки подлинности подписи репозитория nginx необходимо добавить ключ, которым были подписаны пакеты и репозиторий, в связку ключей программы apt.
Скачиваем ключ
wget https://nginx.org/keys/nginx_signing.key
Добавляем файл в связку ключей
sudo apt-key add nginx_signing.key
Далее устанавливаем Nginx
sudo apt-get update
sudo apt-get install nginx
Установка PHP 7.1
Добавляем репозиторий
sudo add-apt-repository ppa:ondrej/php
Обновляем список репозиториев
sudo apt-get update
Устанавливаем пакеты
sudo apt-get install php7.1 php7.1-fpm php7.1-mbstring php7.1-mongo
Установка MongoDB
Импортируем публичный ключ GPG MongoDB
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Создаем файл списка для MongoDB
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Обновляем список репозиториев
sudo apt-get update
Устанавливаем последнюю стабильную версию MongoDB (на данный момент 3.4)
sudo apt-get install mongodb-org
Проверяем запустилась ли MongoDB
ps -ax | grep mongod
Если нет, то добавляем MongoDB в автозагрузку
Создаем скрипт
sudo nano /etc/init.d/mongodstartup
Добавляем строки
#! /bin/sh
sudo service mongod start
Сохраняем файл и делаем так, чтобы скрипт можно было исполнять
sudo chmod +x /etc/init.d/mongodstartup
Добавляем скрипт mongodstartup в автозагрузку
sudo update-rc.d mongodstartup defaults 80
Если понадобится удалить скрипт из автозагрузки, выполнить команду:
sudo update-rc.d -f /etc/init.d/mongodstartup remove
Стартуем MongoDB
sudo service mongod start
Установка composer
Установите composer следуя инструкции на официальном сайте.
После этого для глобальной установки composer пропишем команду
sudo mv composer.phar /usr/local/bin/composer
Установка библиотеки MongoDB для php
Перейдите в папку с вашим проектом
cd /папка/c/проектом
Установим библиотеку последней версии (на данный момент 1.1.2)
composer require mongodb/mongodb
Настройка Nginx
Редактируем файл настроек Nginx
sudo nano /etc/nginx/conf.d/default.conf
Изменяем блок location /
location / {
# путь к файлам вашего проекта
root /vagrant/pomodorolab.info/public_html;
# перенаправление всех несуществующих файлов на index.php
try_files $uri $uri/ /index.php?$args;
#отключение кеша
sendfile off;
# дописываем index.php, если его нет
index index.php index.html index.htm;
}
Раскоментируем блок location ~ .php$ — убираем # и изменяем на:
location ~ .php$ {
# Закрываем доступ к несуществующим php файлам
try_files $uri = 404;
# путь к файлам вашего проекта
root /vagrant/pomodorolab.info/public_html;
# путь к unix-сокету php
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
#Задаём имя файла, который при создании переменной $fastcgi_script_name будет добавляться после URI, если URI заканчивается слэшом
fastcgi_index index.php;
#Задаём параметр, который будет передаваться FastCGI-серверу.
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Перезагрузим конфигурацию и службу Nginx
sudo nginx -s reload
sudo service nginx restart
Сервер готов.
В статье не затронуты вопросы безопасности и оптимизации. Для лучшего понимания вопроса, ознакомьтесь с официальной документацией проектов:
Документация Nginx
Документация MongoDB
Работа с библиотекой MongoDB на PHP
Автор: UnDenya