Установка комплекта linux, nginx, mysql, php (lemp) в ubuntu 20.04 [краткое руководство]

Шаг 4: базовые команды Apache

Для работы с веб-сервером Apache вам необходимо знать базовые команды.

Команда для остановки веб-сервера:

$ sudo systemctl stop apache2

Команда для запуска веб-сервера (после остановки):

$ sudo systemctl start apache2

Команда для перезапуска (остановки и запуска):

$ sudo systemctl restart apache2

Если вы внесли какие-то изменения в конфигурацию, то вы зачастую можете перезапустить Apache без разрыва соединений. Для этого используйте команду:

$ sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск после начала работы сервера. Но эту настройку можно изменить при помощи команды:

$ sudo systemctl disable apache2

Если же вы все-таки хотите, чтобы Apache запускался вместе с сервером, введите:

$ sudo systemctl enable apache2

Теперь Apache снова будет автоматически запускаться после загрузки сервера.

Шаг 1 — Установка веб-сервера Nginx

Установите пакет с помощью следующей команды:

При получении запроса введите для подтверждения того, что вы хотите установить nginx.

После завершения установки запустите следующую команду, чтобы активировать и запустить сервер:

Если вы активировали брандмауэр в соответствии с руководством по начальной настройке сервера, вам нужно будет разрешить подключение к Nginx. Следующая команда будет постоянно активировать подключения по HTTP, запущенные на порту по умолчанию:

Чтобы подтвердить применение изменений, вы можете использовать следующую команду:

Вывод будет выглядеть следующим образом:

Выполните перезапуск конфигурации брандмауэра, чтобы изменения вступили в силу:

После добавления нового правила брандмауэра вы можете проверить, запущен ли сервер, запросив доступ к публичному IP-адресу или доменному имени сервера из вашего веб-браузера.

Примечание: если вы используете DigitalOcean в качестве провайдера хостинга DNS, вы можете изучить нашу для получения подробных инструкций по настройке нового доменного имени и указать ваш сервер.

Если у вас нет доменного имени, указывающего на ваш сервер, и вы не знаете публичный IP-адрес вашего сервера, вы можете найти его, введя следующую команду:

Команда выведет несколько IP-адресов. Вы можете попробовать каждый из них в своем браузере.

Также вы можете проверить доступность IP-адреса из других мест в интернете:

Введите полученный адрес в браузере, после чего вы попадете на страницу Nginx по умолчанию:

Если вы увидите эту страницу, это значит, что ваш веб-сервер установлен корректно.

Шаг 2 — Установка MySQL для хранения данных сайта

Вы можете легко установить MySQL следующей командой:

В процессе установки вам будет предложено ввести рутовый пароль (пароль администратора) для MySQL.

После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:

Скрипт запросит пароль, который вы только что задали для root пользователя в MySQL. Далее вам будет предложено сконфигурировать плагин валидации паролей ().

Внимание: решение включать плагин валидации паролей или нет носит субъективный характер. При включении все пароли, которые не удовлетворяют определённым критериям безопасности, будут отвергаться MySQL с сообщением об ошибке

Это может вызывать проблемы, если вы используете “слабые” пароли совместно с программным обеспечением, которое конфигурирует профили пользователей MySQL, например, пакеты Ubuntu для phpMyAdmin. Вы можете оставить валидацию паролей отключенной, но в этом случае вам следует всегда использовать “сильные” уникальные пароли для пользователей базы данных.

Введите y для включения плагина или что-нибудь другое для продолжения без его включения:

Если вы включили валидацию паролей, вам будет предложено установить уровень надёжности паролей при валидации. Имейте в виду, что при выборе значения 2 (самый строгий уровень валидации), вы будете получать ошибки при попытке задать пароль без цифр, букв в верхнем и нижнем регистре, а также без специальных символов, а также при попытке использовать пароль, основанный на распространённых словах, которые уязвимы для подбора паролей по словарю.

Если вы включили валидацию паролей, вам будет показан уровень надёжности заданного вами ранее пароля root пользователя, а также вам будет предложено изменить этот пароль. Если вы не хотите менять пароль, введите n или no:

На все последующие вопросы просто вводите Y и нажимайте клавишу ENTER для выбора настроек по умолчанию. При этом удалятся некоторые тестовые пользователи и базы данных, будет отключена возможность удаленного доступа с учетной записью root-пользователя, и все изменения будут немедленно применены в MySQL.

Теперь ваша система управления базами данных установлена и мы можем двигаться дальше.

Test LEMP Stack

Let’s create a name-based virtual host on the Nginx server to test our LEMP stack installation.

Domain Name: site.itzgeek.local

Document Root: /www/site.itzgeek.local

Create a virtual host configuration file for our domain in /etc/nginx/conf.d/ directory.

Add the following content.

server {
   server_name site.itzgeek.local;
   root /www/site.itzgeek.local;

   location / {
       index index.html index.htm index.php;
   }

   location ~ \.php$ {
      include        /etc/nginx/fastcgi_params;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Create the root directory to place the PHP files.

For testing the PHP-FPM support, place a .php file onto the document root of the created virtual host.

Change the ownership of the root directory.

Restart the Nginx service.

On your server or desktop machine, create a host entry for your domain (site.itzgeek.local) in the /etc/hosts file in case your environment doesn’t have a DNS server for name resolution.

Add a host entry look like below.

Open up your web browser and type your domain name in the web address.

http://site.itzgeek.local

The page will look like below:

PHP Information

From the above screenshot, PHP is working via FPM/FastCGI, as shown in the Server API line.

If you scroll the page further down, you can view all the supported PHP extensions details.

MySQL Extension

Шаг 3 – Установка PHP и настройка Nginx для использования процессора PHP

Теперь у вас есть Nginx для обслуживания ваших страниц и MySQL для хранения и управления данными, однако у вас до сих пор не установлено ПО, которое может генерировать динамический контент. Для этого требуется установить PHP.

Поскольку Nginx не поддерживает нативную обработку PHP, как некоторые другие веб-серверы, вам потребуется установить , т.е. «менеджер процессов fastCGI». Мы укажем Nginx передавать запросы PHP в это программное обеспечение для обработки.

Примечание. В зависимости от поставщика облачных услуг вам может потребоваться установить хранилище Ubuntu , которое включает бесплатное программное обеспечение и программное обеспечение с открытым исходным кодом, поддерживаемое сообществом Ubuntu, прежде чем устанавливать пакет . Для этого можно ввести следующую команду:

Установите модуль с дополнительным вспомогательным пакетом , который позволит PHP взаимодействовать с серверной частью вашей базы данных. При установке будут загружены необходимые файлы ядра PHP. Введите следующее:

Теперь у вас установлены все требуемые компоненты набора LEMP, однако вам нужно внести еще несколько изменений конфигурации, чтобы Nginx использовал процессор PHP для динамического контента.

Это изменение конфигурации выполняется уровне блока сервера (блоки сервера похожи на виртуальные хосты в Apache). Откройте новый файл конфигурации блока сервера в каталоге . В этом примере новый файл конфигурации блока сервера имеет имя , хотя вы можете использовать любое желаемое имя:

Если вам потребуется восстановить конфигурацию по умолчанию, вы можете отредактировать новый файл конфигурации блока сервера, а не изменять используемый по умолчанию файл.

Добавьте в новый файл конфигурации блока следующее содержимое, которое взято с некоторыми модификациями из файла конфигурации блока сервера по умолчанию:

/etc/nginx/sites-available/example.com

Ниже описано действие этих директив и блоков расположения:

  • — определяет, что будет прослушивать порт Nginx. В данном случае он будет прослушивать порт , используемый по умолчанию для протокола HTTP.
  • — определяет корневой каталог документа, где хранятся файлы, обслуживаемые сайтом.
  • — задает для Nginx приоритет обслуживания файлов с именем (при наличии) при запросе файла индекса.
  • — определяет, какой серверный блок должен использоваться для заданного запроса вашего сервера. Эта директива должна указывать на доменное имя или публичный IP-адрес вашего сервера.
  • — первый блок расположения включает директиву , которая проверяет наличие файлов, соответствующих запросу URI. Если Nginx не сможет найти соответствующий файл, будет возвращена ошибка 404.
  • — этот блок расположения отвечает за фактическую обработку PHP посредством указания Nginx на файл конфигурации и файл file, который объявляет, какой сокет ассоциирован с .
  • — последний блок расположения отвечает за файлы , которые Nginx не обрабатывает. При добавлении директивы из файлов в корневой каталог документа они не будут выводиться посетителям.

После добавления этого содержания следует сохранить и закрыть файл. Для активации нового серверного блока создайте символическую ссылку от нового файла конфигурации серверного блока (в каталоге ) на каталог :

Затем уберите ссылку на файл конфигурации по умолчанию из каталога :

Примечание. Если вам потребуется восстановить конфигурацию по умолчанию, вы можете сделать это посредством воссоздания символической ссылки:

Протестируйте новый файл конфигурации на ошибки синтаксиса:

При появлении сообщений о каких-либо ошибках, вернитесь и повторно проверьте ваш файл, прежде чем продолжать.

Когда вы будете готовы, перезагрузите Nginx для внесения необходимых изменений:

Это завершает установку и настройку набора LEMP. Однако будет разумно убедиться, что все компоненты могут связываться друг с другом.

Шаг 3 — Установка PHP

Поскольку Nginx не имеет встроенной поддержки обработки PHP, как некоторые другие веб-серверы, нам необходимо установить (означает “fastCGI process manager”, менеджер процессов fastCGI). Мы настроим Nginx для передачи PHP запросов этому программному обеспечению для обработки.

Установим этот модуль, а также установим дополнительный пакет, который позволит PHP взаимодействовать с MySQL. В процессе установки будут загружены основные файлы PHP. Сделаем это следующей командой:

Настройка обработчика PHP

После установки компонентов PHP настроим их для повышения безопасности нашего веб-сервера.

Откроем конфигурационный файл с привилегиями root:

Найдём в этом файле параметр . Он будет закомментирован точкой с запятой (;) и будет иметь значение “1” по умолчанию.

Эти настройки по умолчанию очень небезопасны, потому что благодаря им PHP попытается исполнить ближайший файл, который сможет найти в случае, когда запрашиваемый PHP файл не может быть найден. Это позволит пользователям сформировать PHP запросы таким образом, чтобы запускать скрипты, к которым у них не должно быть доступа.

Мы можем предотвратить такое поведение раскомментировав эту строку и изменив её значение на “0”:

/etc/php/7.0/fpm/php.ini

Сохраните и закройте документ после внесения изменений.

Теперь нам осталось перезапустить обработчик PHP:

После перезапуска наши настройки вступят в силу.

Step 1 — Install the Nginx Web Server

In order to display web pages to our site visitors, we are going to employ Nginx, a modern, efficient web server.

All of the software we will be using for this procedure will come directly from Debian’s default package repositories. This means we can use the package management suite to complete the installation.

Since this is our first time using for this session, we should start off by updating our local package index. We can then install the server:

On Debian 8, Nginx is configured to start running upon installation.

If you have the firewall running, you will need to allow connections to Nginx. You should enable the most restrictive profile that will still allow the traffic you want. Since we haven’t configured SSL for our server yet, in this guide, we will only need to allow traffic on port .

You can enable this by typing:

You can verify the change by typing:

You should see HTTP traffic allowed in the displayed output:

Now, test if the server is up and running by accessing your server’s domain name or public IP address in your web browser. If you do not have a domain name pointed at your server and you do not know your server’s public IP address, you can find it by typing one of the following into your terminal:

This will print out a few IP addresses. You can try each of them in turn in your web browser.

As an alternative, you can check which IP address is accessible as viewed from other locations on the internet:

Type one of the addresses that you receive in your web browser. It should take you to Nginx’s default landing page:

If you see the above page, you have successfully installed Nginx.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: