Установка и настройка lamp-сервера на ubuntu

Содержание:

Безопасность MySQL

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

Рассмотрим, процесс работы скрипта mysql_secure_installation.

Запускаем скрипт:

Плагин VALIDATE PASSWORD

В первую очередь предлагается включить плагин «VALIDATE PASSWORD». Данный плагин используется для того, чтобы не позволять создавать простые пароли для пользователей MySQL. Если вам важна безопасность, то рекомендуется включить этот плагин. Вводим y и нажимаем Enter.

Уровень сложности для паролей MySQL

Если вы включили плагин «VALIDATE PASSWORD», то далее необходимо установить уровень сложности паролей, который будет использоваться для MySQL:

  •  — позволить использование простых паролей,
  • 1 — позволить только пароли средней сложности (разный регистр символов, наличие цифр и специальных символов),
  • 2 — позволить только сложные пароли (то же, что и предыдущий вариант, но с использованием словаря).

Вводим желаемую цифру (в нашем примере вводим 1) и нажимаем Enter.

Пароль root

Появится запрос на ввод пароля для root-пользователя MySQL. Данный пароль используется для учетной записи root в MySQL. Не путайте его с пользователем root вашей системы Ubuntu. Введите желаемый пароль.

После ввода пароля появится сообщение с указанием сложности вашего пароля по стобалльной шкале.

Если вас все устраивает, вводим y и нажимаем Enter. Если нет, то вводим n, нажимаем Enter, и задаем другой пароль.

Запрет анонимного доступа

Появится предложение удалить анонимный доступ к MySQL. Он используется только в тестовых целях, поэтому на работающем сервере его нужно удалить. Вводим y и нажимаем Enter.

Запрет удаленного входа учетной записью root в MySQL

По умолчанию root-пользователь может получить удаленный доступ к MySQL. Для увеличения безопасности рекомендуется запретить удаленный доступ root-пользователя к MySQL. Вводим y и нажимаем Enter.

Удаление тестовой базы данных

MySQL устанавливается с тестовой базой данных «test», которая используется только в целях тестирования. Рекомендуется удалить ее. Вводим y и нажимаем Enter.

Применение настроек

Чтобы выполненные настройки сразу применились, необходимо перезагрузить привилегии. Вводим y и нажимаем Enter.

В результате получим сообщение:

Выполнение скрипта mysql_secure_installation

Шаг 2 — Установка MySQL

Мы запустили веб-сервер, и теперь нам нужно установить СУБД, которая может хранить данные вашего сайта и управлять ими. MySQL — популярная СУБД, используемая в средах PHP.

Используйте для получения и установки этого программного обеспечения:

Для подтверждения установки введите , а затем нажмите .

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

Скрипт предложит настроить плагин .

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

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

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

Вне зависимости от того, будете ли вы использовать плагин , ваш сервер предложит вам выбрать и подтвердить пароль для root user в MySQL. Не нужно путать его с системным пользователем root. Пользователь root базы данных — это пользователь с правами администратора, который имеет все права для работы с системой управления базы данных. Хотя в MySQL метод аутентификации пользователя root по умолчанию не требует использования пароля даже при его наличии, задайте надежный пароль для обеспечения дополнительной безопасности. Чуть дальше мы расскажем об этом подробнее.

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

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

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

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

Для выхода из консоли MySQL введите следующую команду:

Обратите внимание, что для подключения под именем пользователя root не требуется вводить пароль, хотя вы и задали его при запуске скрипта. Это работает, поскольку используемый по умолчанию метод аутентификации для пользователя MariaDB с правами администратора — , а не

Хотя это может выглядеть как проблема безопасности, это делает сервер БД более безопасным, поскольку вход с правами root в MySQL доступен только системным пользователям с привилегиями sudo, которые подключаются через консоль или через приложение с тем же уровнем прав. На практике это означает, что вы не сможете использовать пользователя root базы данных с правами администратора для подключения из вашего приложения PHP. Настройка пароля учетной записи root MySQL работает как гарантия, если метод аутентификации по умолчанию меняется с на .

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

Примечание. На момент написания этого руководства родная библиотека MySQL PHP не поддерживает , метод аутентификации MySQL 8 по умолчанию. Поэтому при создании пользователей базы данных для приложений PHP на MySQL 8 вам нужно убедиться, что они настроены на использование вместо этого пароля . Мы расскажем, как это сделать в .

Теперь ваш сервер MySQL установлен и защищен. Далее мы выполним установку PHP, последнего компонента набора LAMP.

Paso 1 — Instalar Apache y actualizar el cortafuegos

El servidor web, Apache es uno de los servidores web más populares en el mundo. Se encuentra bien documentado y ha sido utilizado en buena parte de la historia de la web, hechos que lo convierten en un muy buen candidato para ser escogido como el servidor por defecto de páginas web.

Instala Apache usando el administrador de paquetes de Ubuntu, :

Como éste es un comando , estas operaciones son ejecutadas con los privilegios de superusuario. Te preguntará por la contraseña de tu cuenta regular para verificar tus intenciones.

Una vez hayas autenticado tu contraseña, te informará cuáles paquetes se instalarán y cuánto espacio en disco será requerido. Digita y después para continuar, así, la instalación procederá.

Ajuste del cortafuegos para permitir el tráfico web

Asumiendo que seguiste las instrucciones de configuración inicial del servidor y que habilitaste el cortafuegos UFW, ahora podrás asegurarte que tu cortafuegos permite el tráfico HTTP y HTTPS. Para hacerlo, verifica que el UFW tiene un perfil de aplicación para Apache mediante el comando:

Si solicitas la información del perfil , se debería mostrar que el tráfico se encuentra habilitado para los puertos y :

Para permitir el tráfico de entrada HTTP y HTTPS para este perfil, digita:

Puedes hacer una comprobación instantánea de que todo ha ido según lo planeado visitando la dirección IP pública de tu servidor en un navegador (si aún no conoces la dirección IP pública de tu servidor en la siguiente sección encontrarás cómo hallarla):

Verás la página web predeterminada de Apache para Ubuntu 18.04, la cual tiene propósitos informativos y de prueba. Debería verse semejante a:

Si viste esta página, entonces tu servidor web se encuentra instalado correctamente y es accesible a través del cortafuegos.

Cómo encontrar la dirección IP pública de tu servidor

Si no conoces la dirección IP pública de tu servidor, existen varias formas de encontrarla. Usualmente, es la dirección que usas para conectar tu servidor a través de SSH.

Hay diferentes formas de buscarla con la línea de comandos. En primer lugar, puedes usar la herramienta para obtener tu IP, digitando lo siguiente:

Esto retornará dos o tres líneas. Todas serán direcciones correctas, sin embargo, es posible que tu computador solo pueda usar una de ellas, entonces es recomendable que las pruebes todas.

Un método alternativo es el uso de la utilidad para contactar un servicio externo que te diga cómo él ve a tu servidor. Esto se hace preguntándole a un servidor específico cuál es tu dirección IP:

Sin importar el método que uses para obtener tu dirección IP, escríbela en la barra de dirección de tu navegador web para ver la página predeterminada del Apache.

Step 4: Test PHP Processing on your Web Server

In order to test that our system is configured properly for PHP, we can create a very basic PHP script.

We will call this script . In order for Apache to find the file and serve it correctly, it must be saved to a very specific directory, which is called the “web root”.

In Ubuntu 16.04, this directory is located at . We can create the file at that location by typing:

This will open a blank file. We want to put the following text, which is valid PHP code, inside the file:

info.php

When you are finished, save and close the file.

Now we can test whether our web server can correctly display content generated by a PHP script. To try this out, we just have to visit this page in our web browser. You’ll need your server’s public IP address again.

The address you want to visit will be:

The page that you come to should look something like this:

This page basically gives you information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If this was successful, then your PHP is working as expected.

You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, you can type this:

You can always recreate this page if you need to access the information again later.

Шаг 2 — Установка MySQL

Теперь, когда наш веб-сервер установлен и запущен, пора установить MySQL. MySQL это система управления базой данных. Она организует и обеспечит доступ к базам данных, в которых ваш сайт может хранить информацию.

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

Обратите внимание: В данном случае вам нет необходимости предварительно выполнять команду , т.к. мы выполняли ее недавно при установке Apache, и индекс пакетов на вашем комьютере уже должен быть обновлен

В процессе установки ваш сервер попросит вас задать и подтвердить пароль для пользователя “root” в MySQL. Это администраторский аккаунт в MySQL, который имеет расширенные права. Рассматривайте его как аналог root-аккаунта для самого сервера (однако тот, который вы конфигурируете в данный момент, подходит только для MySQL).

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

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

После этого мы запустим простой скрипт, который удалит некоторые опасные настройки по-умолчанию и ограничит доступ к нашей системе управления базами данных. Запустите интерактивный скрипт вводом команды:

Вас попросят ввести пароль, который вы установили для root-аккаунта в MySQL. Затем вас спросят, не хотите ли вы его сменить. Если вас устраивает текущий пароль, введите “n” в командной строке.

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

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

Создание блоков для нескольких доменов

Для примера создадим домен test.ru на машине с только что установленным LEMP. Если машина локальная, то сначала нужно добавить домен в файл hosts, чтобы можно было обратиться к нему из браузера, на хостинге же нужно просто указать вручную в NS записях домена (у регистроатора домена), свой ip адрес сервера и дождаться обновления DNS и делать все по аналогии (в hosts добавлять не нужно, хотя и можно, чтобы не ждать, пока обновятся записи DNS).

Добавим домен в файл hosts:

sudo nano /etc/hosts

Впишем строку:

127.0.0.1       test.ru

Далее продолжим обязательные манипуляции и создадим каталог для домена (не обязательно он должен располагаться в /usr/share/nginx/html, он может быть, например в /var/www):

sudo mkdir /usr/share/nginx/html/test.ru

Зададим права и пользователя для каталога:

sudo chown www-data:www-data /usr/share/nginx/html/test.ru -R
sudo chmod ug+rwx /usr/share/nginx/html/test.ru -R

Создадим в каталоге файл index.html:

nano /usr/share/nginx/html/test.ru/index.html

В него вставим html код:

<html><head></head><body>Hello world!</body></html>

Далее копируем наш файл default.conf в каталог sites-available и назовем его test.ru:

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/test.ru

Откроем его в текстовом редакторе и немного изменим:

sudo nano /etc/nginx/sites-available/test.ru
server {
  listen 80;
  listen :80;
  server_name test.ru www.test.ru;
  root /usr/share/nginx/html/test.ru;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Мы задали имя домена и указали путь к корневому каталогу сайта:

Теперь активируем сайт, задав на него ссылку:

sudo ln -s /etc/nginx/sites-available/test.ru /etc/nginx/sites-enabled/test.ru

Все, нужно перезагрузить Nginx, чтобы изменения вступили в силу:

sudo systemctl restart nginx

Открываем в браузере test.ru для проверки:

Тестовый сайт

Настройки Nginx для сайта test.ru будут в созданном файле /etc/nginx/sites-available/test.ru (например настройка кэша или IP6). И по аналогии с созданием test.ru можно создать любое количество сайтов.

Шаг 5 — Настройка директории WordPress

Перед настройкой WordPress с помощью веб-интерфейса, нам нужно изменить некоторые элементы в директории WordPress.

Настройка принадлежности и разрешений

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

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

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

Далее мы запустим две команды для установки корректных разрешений для директорий и файлов WordPress:

Эти разрешения должны обеспечить эффективную работу с WordPress

Но обратите внимание, что некоторые плагины и процедуры могут потребовать дополнительных изменений

Настройка файла конфигурации WordPress

Теперь нам нужно внести некоторые изменения в основной файл конфигурации WordPress.

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

Чтобы получить безопасные значения из генератора секретных ключей WordPress, введите:

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

Предупреждение! Важно каждый раз запрашивать уникальные значения. НЕ копируйте приведенные ниже значения!. Это строки конфигурации, которые мы можем вставить прямо в наш файл конфигурации для установки защищенных ключей

Скопируйте вывод, который вы получили

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

Далее откройте файл конфигурации WordPress:

Найдите раздел, содержащий фиктивные значения для этих настроек.

/var/www/wordpress/wp-config.php

Удалите эти строки и добавьте значения, которые вы скопировали из командной строки:

/var/www/wordpress/wp-config.php

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

Еще одно изменение, которое нам нужно внести, — это настройка метода, который WordPress должен использовать для записи данных в файловой системе. Поскольку мы предоставили веб-серверу разрешение на запись там, где ему потребуется, мы можем прямо установить метод файловой системы «direct». Если бы мы не внесли это изменение в текущие настройки, это привело бы к тому, что при выполнении некоторых действий WordPress будет запрашивать данные учетной записи для FTP.

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

/var/www/wordpress/wp-config.php

Сохраните файл и закройте его после завершения.

1: Установка Apache и настройка брандмауэра

Apache – один из популярнейших веб-серверов в мире. Он широко используется в интернете почти с самого начала существования сети. Кроме того, он хорошо документирован.

Установить Apache довольно просто, для этого вам нужен только пакетный менеджер apt:

Если вы используете команду sudo впервые текущей сессии, вам нужно ввести пароль текущего пользователя. Также вам будет предложено подтвердить установку. Нажмите Y и Enter, чтобы продолжить.

После завершения установки нужно проверить настройки брандмауэра UFW. Скорее всего, сейчас он блокирует трафик HTTP и HTTPS. Брандмауэр регистрирует профили новых сервисов при их установке, с помощью таких профилей проще изменять его поведение. Просмотрите доступные профили UFW:

В выводе вы увидите несколько профилей Apache, они и управляют трафиком веб-сервера:

Вот что делает каждый из них:

  • Apache: открывает только порт 80 (стандартный нешифрованный трафик).
  • Apache Full: открывает порты 80 и 443 (зашифрованный трафик TLS/SSL)
  • Apache Secure: открывает только зашифрованный трафик по порту 443.

Зашифрованный трафик надежнее, но в данный момент наш сервер еще не поддерживает сертификаты TLS/SSL (а вместе с этим и трафик HTTPS), потому мы можем включить только профиль Apache, который откроет порт 80.

Чтобы включить его, введите:

Проверить изменения в настройках брандмауэра можно с помощью команды:

Чтобы убедиться, что брандмауэр поддерживает входящий трафик по порту 80, посетите внешний IP своего сервера в браузере.

На экране должна появиться стандартная страница Apache для Ubuntu 20.04:

Как узнать внешний IP-адрес сервера

Существует несколько способов узнать внешний IP-адрес своего сервера из командной строки.

Во-первых, можно использовать инструменты iproute2:

Эта команда вернёт несколько адресов, однако сервер может использовать не все, а только один из них; проверьте каждый полученный адрес, чтобы найти правильный.

Также можно при помощи утилиты curl запросить свой адрес у третьей стороны.

Step 5 — Testing PHP Processing on your Web Server

In order to test that your system is configured properly for PHP, create a very basic PHP script called . In order for Apache to find this file and serve it correctly, it must be saved to your web root directory.

Create the file at the web root you created in the previous step by running:

This will open a blank file. Add the following text, which is valid PHP code, inside the file:

info.php

When you are finished, save and close the file.

Now you can test whether your web server is able to correctly display content generated by this PHP script. To try this out, visit this page in your web browser. You’ll need your server’s public IP address again.

The address you will want to visit is:

The page that you come to should look something like this:

This page provides some basic information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If you can see this page in your browser, then your PHP is working as expected.

You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, run the following command:

You can always recreate this page if you need to access the information again later.

Шаг 6 — Завершение установки через веб-интерфейс

Теперь, когда настройка сервера завершена, мы можем завершить установку через веб-интерфейс.

В вашем веб-браузере перейдите на домен вашего сервера или его публичный IP-адрес:

Выберите язык, который вы хотите использовать:

После этого вы должны попасть на главную страницу настройки.

Выберите имя для вашего сайта WordPress, а также выберите имя пользователя. Рекомендуется выбрать что-то уникальное и избегать общих имен, таких как «admin», из соображений безопасности. Надежный пароль создается автоматически. Сохраните этот пароль или выберите другой надежный пароль.

Введите адрес электронной почты и укажите, хотите ли вы, чтобы поисковые машины индексировали ваш сайт:

При нажатии далее вы перейдете на страницу входа:

После входа вы перейдете в панель управления WordPress:

На этом этапе вы можете начать разрабатывать ваш веб-сайт WordPress! Если вы впервые работаете с WordPress, краткое изучите интерфейс для знакомства с вашей новой CMS.

Создание блока сервера Nginx и тест PHP

Серверный блок Nginx это нечто подобное виртуальному хосту в Apache. В блоке по умолчанию нужно много менять, чтобы добиться работы PHP, так что мы создадим другой стандартный блок.

Для начала удалим дефолтный:

sudo rm /etc/nginx/sites-enabled/default

И создадим свой:

sudo nano /etc/nginx/conf.d/default.conf

И вставим в него следующий текст (ничего менять не надо, это блок по умолчанию):

server {
  listen 80;
  listen :80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;
  
  location / {
    try_files $uri $uri/ /index.php;
  }
  
  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }
  
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

В окне редактора nano нужно нажать SHIFT+INSERT, чтобы вставить текст (или мышкой можно). Далее сохраним файл, нажав CTRL+O и выйдем — CTRL+W.

После этого нужно перезагрузить Nginx:

sudo systemctl restart nginx

Приступим к тесту php, создадим файл с функцией phpinfo() в корне сервера:

sudo nano /usr/share/nginx/html/phpinfo.php

Впишем в него:

<?php
phpinfo();
?>

Редактор nano

phpinfo

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

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

Используйте для установки PHP. Кроме того, на этот раз включите несколько вспомогательных пакетов, чтобы код PHP мог работать на сервере с Apache и взаимодействовать с вашей базой данных MySQL:

В большинстве случаев вы захотите изменить способ, которым Apache обслуживает файлы при запросе каталога. Сейчас если пользователь запрашивает каталог с сервера, Apache сначала будет искать файл с именем . Мы хотим указать веб-серверу, чтобы он предпочитал файлы PHP другим.

Введите команду, чтобы открыть файл в текстовом редакторе с правами root:

Содержимое будет выглядеть так:

Измените этот файл следующим образом:

Когда вы закончите, сохраните и закройте файл, нажав . Подтвердите сохранение, набрав , а затем нажмите .

После этого перезапустите веб-сервер Apache:

Вы также можете проверить статус , используя :

Нажмите чтобы выйти.

Для расширения функциональности PHP у вас есть возможность установить некоторые дополнительные модули. Чтобы увидеть доступные опции для модулей и библиотек PHP:

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

Результатом являются все дополнительные компоненты, которые вы можете установить:

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

В качестве альтернативы, посмотрите на полное описание пакета, набрав:

Поле будет содержать более подробное описание. Например, чтобы узнать, что делает модуль , вы можете напечатать:

Вы найдете:

Если вы решите установить пакет, то выполните:

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

На этом этапе ваш стек LAMP установлен и настроен. Однако перед внесением каких-либо изменений или развертыванием приложения было бы полезно предварительно протестировать конфигурацию PHP на случай возникновения проблем.

Step 1 — Installing Apache and Updating the Firewall

The Apache web server is among the most popular web servers in the world. It’s well-documented and has been in wide use for much of the history of the web, which makes it a great default choice for hosting a website.

Install Apache using Ubuntu’s package manager, :

Since this is a command, these operations are executed with root privileges. It will ask you for your regular user’s password to verify your intentions.

Once you’ve entered your password, will tell you which packages it plans to install and how much extra disk space they’ll take up. Press and hit to continue, and the installation will proceed.

Adjust the Firewall to Allow Web Traffic

Next, assuming that you have followed the initial server setup instructions and enabled the UFW firewall, make sure that your firewall allows HTTP and HTTPS traffic. You can check that UFW has an application profile for Apache like so:

If you look at the profile, it should show that it enables traffic to ports and :

Allow incoming HTTP and HTTPS traffic for this profile:

You can do a spot check right away to verify that everything went as planned by visiting your server’s public IP address in your web browser (see the note under the next heading to find out what your public IP address is if you do not have this information already):

You will see the default Ubuntu 18.04 Apache web page, which is there for informational and testing purposes. It should look something like this:

If you see this page, then your web server is now correctly installed and accessible through your firewall.

How To Find your Server’s Public IP Address

If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.

There are a few different ways to do this from the command line. First, you could use the tools to get your IP address by typing this:

This will give you two or three lines back. They are all correct addresses, but your computer may only be able to use one of them, so feel free to try each one.

An alternative method is to use the utility to contact an outside party to tell you how it sees your server. This is done by asking a specific server what your IP address is:

Regardless of the method you use to get your IP address, type it into your web browser’s address bar to view the default Apache page.

Установим WordPress

Для более детального примера и понимания работы с базой данных установим на сайт test.ru CMS WordPress.

Создадим базу данных и пользователя для нее. Откроем консоль MariaDB в терминале:

sudo mariadb -u root

Создадим базу (внимание, здесь обратные кавычки):

CREATE DATABASE `wordpress`;

Создадим пользователя: (myuser — логин, pass- пароль)

CREATE USER 'myuser' IDENTIFIED BY 'pass';

Дадим пользователю разрешение на работу с MariaDB

GRANT USAGE ON *.* TO 'myuser'@localhost IDENTIFIED BY 'pass';

И все права на базу wordpress (имя базы в обратных кавычках):

GRANT ALL privileges ON `wordpress`.* TO 'myuser'@localhost;

Обновим данные прав в MariaDB:

FLUSH PRIVILEGES;

Ну вот, мы создали пользователя и базу данных. Приступим к установке CMS.

Скачаем и распакуем в корневой каталог test.ru (/usr/share/nginx/html/test.ru) сам WordPress с официального сайта (https://ru.wordpress.org/latest-ru_RU.tar.gz).

Перейдем в браузере по адресу test.ru:

Установка wordpress

Жмем вперед и заполняем все поля:

Установка wordpress

Затем создаем файл конфига и сохраняем его, создаем пользователя в WordPress и готово:

Установка wordpress

Переходим на test.ru:

Установка wordpress

Как мы видим — все работает!

На этом установка LEMP с начальной конфигурацией закончена и можно приступать к созданию сайтов и web приложений или их отладке.

627

Conclusion

Now that you have a LAMP stack installed, you have many choices for what to do next. Basically, you’ve installed a platform that will allow you to install most kinds of websites and web software on your server.

As an immediate next step, you should ensure that connections to your web server are secured, by serving them via HTTPS. The easiest option here is to use Let’s Encrypt to secure your site with a free TLS/SSL certificate.

Some other popular options are:

  • Install WordPress the most popular content management system on the internet.
  • Set Up PHPMyAdmin to help manage your MySQL databases from web browser.
  • Learn how to use SFTP to transfer files to and from your server.

2: Установка MySQL

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

Чтобы установить MySQL, введите:

Подтвердите установку.

После установки системе MySQL требуется настройка. Чтобы защитить ваш экземпляр, можно запустить простой встроенный скрипт безопасности, который удалит потенциально рискованные настройки. Запустите этот скрипт:

Сценарий задаст ряд вопросов. Сначала он спросит, хотите ли вы включить VALIDATE PASSWORD PLUGIN.

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

Если хотите включить этот плагин, введите Y.

Если вы ответили yes, скрипт предложит вам выбрать уровень проверки. Самый высокий уровень – это 2. Если вы установите его, MySQL будет отклонять пароли, которые состоят из обычных  слов и не содержат цифр, букв в верхнем и нижнем регистре и специальных символов.

Независимо от того, включили вы VALIDATE PASSWORD PLUGIN или нет, ваш сервер затем попросит вас выбрать и подтвердить пароль для пользователя root MySQL. Не путайте его с системным root. Root-пользователь базы данных – это администратор с полными привилегиями. Метод аутентификации root-пользователя MySQL по умолчанию не требует пароля, даже если пароль установлен; несмотря на это, вы должны определить здесь надежный пароль – в качестве дополнительной меры безопасности. Мы поговорим об этом чуть позже.

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

На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MySQL.

После этого откройте командную строку MySQL в терминале:

Вы подключитесь к серверу MySQL в качестве root пользователя базы данных. Вы должны увидеть примерно такой результат:

Чтобы закрыть консоль MySQL, введите:

Обратите внимание: вам не нужно было указывать пароль. Это потому, что метод аутентификации администратора по умолчанию в MySQL — unix_socket, а не password

Сначала такой метод может показаться проблемой безопасности, но он делает сервер базы данных более защищенным, поскольку войти в систему как пользователь root MySQL могут только системные пользователи с привилегиями sudo, подключающиеся из консоли или приложения с теми же привилегиями. Практически это значит, что вы не сможете использовать аккаунт администратора для подключения с вашего PHP-приложения.  Выбранный нами ранее root-пароль MySQL нужен на тот случай, если метод аутентификации unix_socket будет изменен на password.

Для повышения безопасности лучше иметь отдельные учетные записи с более узкими привилегиями для каждой базы данных (особенно если вы планируете разместить на своем сервере несколько БД).

Примечание: На момент написания этого мануала нативная PHP-библиотека MySQL mysqlnd не поддерживала caching_sha2_authentication, метод аутентификации по умолчанию для MySQL 8. Потому при создании пользователей базы данных для приложений PHP на MySQL 8 вам необходимо убедиться, что они используют mysql_native_password. Мы поговорим об этом в разделе 6.

Теперь ваш сервер MySQL защищен. Далее мы установим PHP, последний компонент в стеке LAMP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector