Установка набора программ LAMP в Ubuntu


Установка phpMyAdmin в Ubuntu

Установка phpMyAdmin в Ubuntu

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

Устанавливаем phpMyAdmin в Ubuntu

Сразу предупредим, что все последующие действия будут выполняться через «Терминал», поэтому будьте готовы к тому, что придется вводить множество самых разнообразных команд. Еще мы покажем, как осуществляется первичная настройка phpMyAdmin по завершении инсталляции. Возьмем за пример самый популярный веб-сервер Apache и СУБД MySQL. Если сейчас вам необходим каждый из этих компонентов, лучше воспользоваться приведенной ниже ссылкой, где рассказывается об установке LAMP, а мы же переходим непосредственно ко взаимодействию с необходимым сегодня компонентом.

Шаг 1: Инсталляция расширения PHP

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

  1. Откройте меню приложений и запустите «Терминал». Переход к терминалу для установки дополнительного расширения phpMyAdmin в Ubuntu
  2. Введите здесь команду sudo apt install php-mbstring и нажмите на клавишу Enter. Команда для установки дополнительного расширения phpMyAdmin в Ubuntu
  • Выше мы задействовали sudo, а это значит, что команда будет запущена от имени суперпользователя. При первом использовании sudo в терминальной сессии ОС попросит ввести пароль для предоставления доступа. Сделайте это и нажмите на Enter. Однако следует учитывать, что символы не отображаются при написании. Ввод пароля для установки дополнительного расширения phpMyAdmin в Ubuntu
  • При появлении уведомления о расширении занятого дискового пространства выберите вариант Д. Подтверждение инсталляции дополнительного расширения phpMyAdmin в Ubuntu
  • Практически всегда подобная простая установка проходит без каких-либо проблем. Однако если у вас возникли системные неполадки, связанные с менеджером пакетов, на экране появится информация о том, что инсталляция не удалась. Эту ситуацию следует оперативно решить, воспользовавшись поиском исправлений конкретной проблемы через официальную документацию Ubuntu или пользовательские форумы.

    Шаг 2: Установка phpMyAdmin

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

    1. Для установки потребуется ввести команду sudo apt install phpmyadmin и активировать ее. Установка phpMyAdmin в Ubuntu после добавления специального расширения
    2. Появится уведомление о необходимости скачивания архивов. В сообщении «Хотите продолжить?» выберите вариант Д. Ввод пароля суперпользователя для установки phpMyAdmin в Ubuntu
    3. Дождитесь появления консольного окна «Настройка пакета». Здесь в первую очередь указывается веб-сервер для автоматической конфигурации. Выберите свой, затем нажмите на Tab, чтобы быстро переместиться к кнопке «ОК». Выбор веб-сервера для дальнейшей установки phpMyAdmin в Ubuntu
    4. Ожидайте несколько минут, чтобы пакеты были полностью распакованы. Во время этой операции не закрывайте консоль и не выполняйте других действий на ПК. Ожидание завершения распаковки файлов phpMyAdmin в Ubuntu
    5. Снова появится «Настройка пакета». Теперь здесь осуществляется редактирование базы данных. Ознакомьтесь с представленной в окне информацией и выберите подходящий вариант. Переход к первичной настройки phpMyAdmin в Ubuntu после установки
    6. Создайте новый пароль для базы данных. Ввод пароля для доступа к phpMyAdmin в Ubuntu во время установки
    7. Подтвердите его, повторно введя в появившуюся форму. Подтверждение пароля при его создании в phpMyAdmin в Ubuntu
    8. Укажите удобный для себя метод подключения к базе данных. Выбор метода подключения к базе данных phpMyAdmin в Ubuntu при установке
    9. Номер порта службы будет задан автоматически. Если у вас имеется надобность сменить его, просто сотрите числа и укажите необходимый порт. Ввод порта для подключения к серверу phpMyAdmin в Ubuntu
    10. Задайте имя стандартной базы данных. Ввод названия новой базы данных при инсталляции phpMyAdmin в Ubuntu
    11. Ознакомьтесь с информацией по созданию имени пользователя. Информация о правильном создании мени пользователя в phpMyAdmin в Ubuntu
    12. Теперь вам предстоит самостоятельно задать его, отталкиваясь от прочитанной инструкции и своих потребностей. Создание нового пользователя для доступа к СУБД phpMyAdmin в Ubuntu
    13. Впишите еще один пароль, который будет служить для доступа MySQL к phpMyAdmin. Пароль для доступа к СУБД при установке phpMyAdmin в Ubuntu

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

    Шаг 3: Создание нового пользователя

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

    1. Откройте новую сессию в «Терминале» и напечатайте там sudo mysql для запуска базы данных. Запуск базы данных для дополнительной настройки phpMyAdmin в Ubuntu
    2. Обязательно потребуется ввести пароль суперпользователя. Ввод пароля для успешного запуска базы данных phpMyAdmin в Ubuntu
    3. В качестве первой команды введите CREATE USER ‘admin’@’localhost’ IDENTIFIED BY ‘PASSWORD’; , где admin’@’localhost — имя учетной записи, а PASSWORD — устанавливаемый пароль. Команда для создания нового пользователя в базе данных phpMyAdmin в Ubuntu
    4. Установите основные привилегии через GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION; , обязательно поменяв имя пользователя на указанное ранее. Команда для установки привилегий нового пользователя phpMyAdmin в Ubuntu
    5. В последнюю очередь введите и активируйте FLUSH PRIVILEGES; . Завершающая команда при создании пользователя phpMyAdmin в Ubuntu
    6. Вы будете уведомлены об успешном окончании операции. Успешное создание нового пользователя phpMyAdmin в Ubuntu

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

    Шаг 4: Обеспечение безопасности

    Создание основных правил безопасности для phpMyAdmin — не всегда необходимое действие, однако если сервер напрямую связан с открытой сетью, то стоит задать хотя бы основные политики, которые помогут при поверхностных атаках. Давайте быстро разберемся с тем, как именно осуществляется настройка защиты сервера.

    1. Все дальнейшие действия будут производиться путем изменения конфигурационных файлов. Для этого нужно задействовать текстовый редактор. Стандартные решения могут быть непонятны начинающим пользователям, поэтому давайте начнем с добавления в систему более удобного решения. Наберите sudo apt install nano и нажмите на Enter. Установка текстового редактора для дальнейшей настройки phpMyAdmin в Ubuntu
    2. После успешной инсталляции запустите первый конфигурационный файл через sudo nano /usr/share/phpmyadmin/.htaccess . Запуск конфигурационного файла безопасности phpMyAdmin в Ubuntu
    3. Здесь в любой пустой строке вставьте следующие четыре правила. AuthType Basic
      AuthName «Restricted Files»
      AuthUserFile /etc/phpmyadmin/.htpasswd
      Require valid-user Установка стандартных правил безопасности для phpMyAdmin в Ubuntu
    4. Используйте комбинацию Ctrl + O для сохранения настроек. Сохранение изменений в текстовом редакторе при настройке phpMyAdmin в Ubuntu
    5. При запросе не изменяйте имя объекта, а просто нажмите на Enter. Выбор имени для сохранения конфигурационного файла phpMyAdmin в Ubuntu
    6. Когда все настройки будут сохранены, нажмите на Ctrl + X для закрытия текущего файла. Выход из редактора после настройки безопасности phpMyAdmin в Ubuntu
    7. Следом установите новый пароль для главной учетной записи, если этого не было сделано ранее. Активируйте команду sudo htpasswd -c /etc/phpmyadmin/.htpasswd user . Запуск средства по установке пароля для пользователя phpMyAdmin в Ubuntu
    8. В появившейся строке введите приемлемый для вас ключ доступа и после активации повторите его. Ввод нового пароля для указанного пользователя phpMyAdmin в Ubuntu
    9. Осталось только настроить веб-сервер под все внесенные ранее изменения. Для этого откройте соответствующий файл через sudo nano /etc/apache/apache2.conf . Запуск текстового редактора для настройки веб-сервера phpMyAdmin в Ubuntu
    10. Вставьте указанные ниже строки и сохраните изменения.
      AllowOverride All
      Require all granted
      Настройка веб-сервера phpMyAdmin в Ubuntu для нового пользователя

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

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

    Установка комплекта Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 20.04

    Установка комплекта Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 20.04

    Комплект LAMP — это набор программного обеспечения с открытым исходным кодом, которое обычно устанавливается в комплексе для размещения на сервере динамических сайтов и веб-приложений, написанных на PHP. Этот термин представляет собой аббревиатуру. Операционная система Linux используется с веб-сервером Apache. Данные сайта хранятся в базе данных MySQL, а за обработку динамического контента отвечает PHP.

    В этом обучающем модуле мы выполним установку комплекта LAMP на сервере Ubuntu 20.04.

    Предварительные требования

    Для данного обучающего модуля вам потребуется сервер Ubuntu 20.04 с учетной записью пользователя без привилегий root и с привилегиями sudo , а также базовым брандмауэром. Для настройки такого сервера воспользуйтесь нашим документом «Руководство по начальной настройке сервера Ubuntu 20.04».

    Шаг 1 — Установка Apache и обновление брандмауэра

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

    Установите Apache с помощью диспетчера пакетов apt в Ubuntu:

    Если это первое использование sudo в этом сеансе, вам нужно будет ввести пароль пользователя для подтверждения прав управления системными пакетами с помощью apt . Чтобы подтвердить установку Apache, нажмите Y , а затем ENTER .

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

    Новые статьи:  Настройка прав доступа в Linux

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

    Output
    Available applications: Apache Apache Full Apache Secure OpenSSH

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

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

    Сейчас лучше всего разрешить только соединения на порту 80 , поскольку мы только что установили Apache, и у нас еще нет сертификата TLS/SSL, настроенного для разрешения трафика HTTPS на нашем сервере.

    Чтобы разрешить только трафик на порту 80 , используйте профиль Apache :

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

    Output
    Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

    Теперь брандмауэр пропускает трафик порта 80 .

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

    http://your_server_ip 

    Вы увидите веб-страницу по умолчанию Ubuntu 20.04 Apache, предназначенную для информационных целей и целей тестирования. Она должна выглядеть следующим образом:

    Страница Ubuntu 20.04 Apache по умолчанию

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

    Как определить публичный IP-адрес сервера

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

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

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

    Также можно использовать утилиту curl для связи с внешним устройством. Вы увидите, как это устройство видит ваш сервер. Для этого нужно запросить ваш IP-адрес у конкретного сервера:

    Вне зависимости от метода получения IP-адреса введите его в адресную строку браузера для просмотра страницы Apache по умолчанию.

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

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

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

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

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

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

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

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

    VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: 

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

    There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 

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

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

    Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y 

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

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

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

    Output
    Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 22 Server version: 8.0.19-0ubuntu5 (Ubuntu) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

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

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

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

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

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

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

    Мы установили Apache для обслуживания вашего контента и MySQL для хранения и управления вашими данными. PHP — это элемент нашей настройки, который будет обрабатывать код для отображения динамического контента конечному пользователю. Помимо пакета php вам потребуется php-mysql , модуль PHP, который позволяет PHP взаимодействовать с базами данных MySQL. Также вам потребуется libapache2-mod-php для активации Apache для обработки файлов PHP. Ключевые пакеты PHP автоматически будут установлены в качестве зависимостей.

    Новые статьи:  Установка и настройка файлового сервера в Linux

    Чтобы установить эти пакеты, выполните команду:

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

    Output
    PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

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

    Шаг 4 — Создание виртуального хоста для сайта

    При использовании веб-сервера Apache вы можете создать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы настроим домен your_domain, но вы должны заменить это имя собственным доменным именем.

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

    В Apache в Ubuntu 20.04 по умолчанию включен один серверный блок, настроенный на обслуживание документов из директории /var/www/html . Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим внутри /var/www структуру каталогов для нашего сайта your_domain, оставив /var/www/html​​​ в качестве каталога по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.

    Создайте следующий каталог для your_domain:

    Затем необходимо назначить права владения для директории с помощью переменной среды $USER , которая будет использоваться для текущего системного пользователя:

    После этого откройте новый файл конфигурации в директории Apache sites-available с помощью любого редактора командной строки. Мы будем использовать nano :

    В результате будет создан новый пустой файл. Вставьте следующую пустую конфигурацию:

    /etc/apache2/sites-available/your_domain.conf

     ServerName your_domain ServerAlias www.your_domain ServerAdmin webmaster@localhost DocumentRoot /var/www/your_domain ErrorLog $/error.log CustomLog $/access.log combined 

    Эта конфигурация VirtualHost указывает Apache обслуживать your_domain , используя /var/www/ your_domain в качестве корневого каталога. Если вы хотите протестировать Apache без доменного имени, вы можете удалить или закомментировать опции ServerName и ServerAlias , добавляя символ # в начале строк опций.

    Теперь вы можете использовать a2ensite для активации нового виртуального хоста:

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

    Чтобы убедиться в отсутствии ошибок синтаксиса в вашем файле конфигурации, выполните команду:

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

    Теперь ваш новый сайт активен, но корневой веб-каталог /var/www/ your_domain все еще пуст. Создайте файл index.html в этом расположении, чтобы убедиться, что виртуальный хост работает, как ожидалось:

    Внесите в файл следующее:

    /var/www/your_domain/index.html

    It works!

    This is the landing page of your_domain.

    Откройте браузер и введите в адресную строку доменное имя вашего сервера или IP-адрес:

    http://server_domain_or_IP 

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

    Тестирование виртуального хоста Apache

    Если вы видите эту страницу, это означает, что виртуальный хост Apache работает, как и ожидалось.

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

    Примечание о DirectoryIndex в Apache

    Если в Apache используются настройки DirectoryIndex по умолчанию, файл index.html всегда будет иметь приоритет по сравнению файлом index.php . Это полезно при настройке страниц техобслуживания приложений PHP посредством создания временного файла index.html с информационным сообщением для посетителей. Поскольку эта страница будет иметь приоритет перед страницей index.php , она станет начальной страницей приложения. После завершения обслуживания файл index.html можно переименовать или удалить из корневого каталога документов, в результате чего восстановится обычная начальная страница приложения.

    Если вы хотите изменить это поведение, отредактируйте файл /etc/apache2/mods-enabled/dir.conf и измените порядковое расположение файла index.php в директиве DirectoryIndex :

    /etc/apache2/mods-enabled/dir.conf

     DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm 

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

    На следующем шаге мы создадим скрипт PHP для тестирования правильности установки и настройки PHP на вашем сервере.

    Шаг 5 — Тестирование обработки PHP на веб-сервере

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

    Создайте новый файл с именем info.php в корневой папке сайта:

    В результате откроется пустой файл. Вставьте в файл следующий код PHP:

    /var/www/your_domain/info.php

     phpinfo(); 

    После завершения редактирования сохраните и закройте файл.

    Чтобы протестировать этот скрипт, откройте браузер и введите доменное имя или IP-адрес вашего сервера, а затем название скрипта, в данном случае info.php :

    http://server_domain_or_IP/info.php 

    Вы увидите приблизительно следующую страницу:

    Информация PHP в Ubuntu 20.04

    На этой странице содержится информация о вашем сервере с точки зрения PHP. Эта информация полезна для отладки и обеспечения правильного применения настроек.

    Если вы видите эту страницу в своем браузере, ваша система PHP работает надлежащим образом.

    После проверки соответствующей информации о вашем сервере PHP с помощью данной страницы рекомендуется удалить созданный вами файл, поскольку он содержит конфиденциальную информацию о вашей среде PHP и о вашем сервере Ubuntu. Для этого можно использовать rm :

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

    Шаг 6 — Тестирование подключения к базе данных для PHP (необязательно)

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

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

    Мы создадим базу данных с именем example_database и пользователя с именем example_user, но вы можете использовать и другие имена.

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

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

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

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

    Теперь нам нужно предоставить этому пользователю разрешение для базы данных example_database :

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

    Теперь закройте оболочку MySQL:

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

    Обратите внимание на флаг -p в этой команде, который будет запрашивать пароль, который вы задаете при создании пользователя example_user. После входа в консоль MySQL убедитесь, что у вас есть доступ к базе данных example_database:

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

    Output
    +--------------------+ | Database | +--------------------+ | example_database | | information_schema | +--------------------+ 2 rows in set (0.000 sec)

    Далее мы создадим тестовую таблицу с именем todo_list. Из консоли MySQL запустите следующее выражение:

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

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

    Вывод должен выглядеть так:

    Output
    +---------+--------------------------+ | item_id | content | +---------+--------------------------+ | 1 | My first important item | | 2 | My second important item | | 3 | My third important item | | 4 | and this one more thing | +---------+--------------------------+ 4 rows in set (0.000 sec)

    Убедившись в том, что у вас есть надлежащие данные в тестовой таблице, вы можете закрыть консоль MySQL:

    Теперь вы можете создать скрипт PHP, который будет подключаться к MySQL и запрашивать ваше содержимое. Создайте новый файл PHP в пользовательской корневой веб-директории в предпочитаемом вами редакторе. Мы будем использовать nano :

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

    /var/www/your_domain/todo_list.php

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

    Теперь вы можете получить доступ к этой странице в браузере, посетив доменное имя или публичный IP-адрес, настроенный для вашего сайта. После этого введите /todo_list.php :

    http://your_domain/todo_list.php 

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

    Пример списка дел PHP

    Это означает, что ваша среда PHP готова к подключению и взаимодействию с вашим сервером MySQL.

    Заключение

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

    Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

    Установка LAMP в Ubuntu 20.04

    LAMP — это популярный набор программного обеспечения для работы с веб-сервером. LAMP назван по первым буквам входящих в его состав компонентов: Linux — операционная система, Apache — веб-сервер, MySQL — СУБД, PHP — язык программирования, используемый для создания веб-приложений.

    В этой статье мы рассмотрим, как установить LAMP Ubuntu 20.04 несколькими способами: с помощью утилиты tasksel и вручную с помощью пакетного менеджера.

    Установка LAMP в Ubuntu 20.04

    1. Установка пакетов LAMP с помощью утилиты tasksel

    Утилита tasksel позволяет устанавливать наборы пакетов различных программ буквально в одну команду. Она разработана для Debian, но может использоваться и в Ubuntu. Для её установки выполните в терминале команду:

    sudo apt -y install tasksel

    Bc4XNM1r6YnAAAAAAElFTkSuQmCC

    Далее, чтобы установить Lamp на Ubuntu, достаточно выполнить команду:

    sudo tasksel install lamp-server

    Установка займёт определенное время, так как утилите необходимо скачать все необходимые пакеты. После завершения установки вы получите полностью работающий стек LAMP.

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

    Для начала необходимо установить веб-сервер Apache2:

    sudo apt -y install apache2

    TJzSjVA05hAAAAABJRU5ErkJggg==

    На момент написания статьи актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 по состоянию на 29 июля 2021 года.

    Также необходимо установить дополнительные расширения для языка PHP, которые понадобятся для создания будущих проектов и их дальнейшей публикации на хостинг:

    sudo apt -y install php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc

    wNkX9eKJWu1TwAAAABJRU5ErkJggg==

    3. Настройка брандмауэра

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

    sudo ufw allow in 80/tcp

    Для начала необходимо убедиться, что веб-сервер Apache и СУБД MySQL успешно запустились и при необходимости запустить их. Смотрим статус apache, выполнив команду в терминале:

    sudo systemctl status apache2

    wGVKwWOGUXuCgAAAABJRU5ErkJggg==

    В разделе Active должно быть active (running). Те же самые действия необходимо сделать для проверки MySQL:

    sudo systemctl status mysql

    9hAwCGMn06AAAAAASUVORK5CYII=

    Если в статусах вместо active будет inactive (dead), то сервисы необходимо запустить вручную:

    sudo systemctl start apache2
    sudo systemctl status mysql

    wA48O2IDbnSpwAAAABJRU5ErkJggg= https://losst.pro/wp-content/uploads/2021/07/test-11.png7u507dH+fbAAAAABJRU5ErkJggg==

    Для проверки наберите в адресной строке браузера IP-адрес сервера, куда вы устанавливали LAMP, в качестве примера выбран localhost:

    Hy9gWjbTL0VeAAAAAElFTkSuQmCC

    Если при открытии вы увидели страницу, которая изображена на скриншоте выше, это означает что веб-север apache успешно запущен и работает. Теперь необходимо проверить правильно ли работает PHP. Создайте файл в директории /var/www/html при помощи следующей команды:

    sudo vi /var/www/html/phpinfo.php

    Вместо vi можно использовать любой другой текстовый редактор на ваш выбор (nano, emacs, gedit и др.).
    В файл phpinfo.php впишите следующую команду:

    7N681x1+IK33JAAAAAElFTkSuQmCC

    Далее откройте адрес localhost/phpinfo.php в браузере. Если всё работает, вы должны увидеть страничку, которая изображена ниже на скриншоте:

    Q93yAaPsfVh6fWO5AAAAAElFTkSuQmCC

    Также можно проверить, работает ли интеграция с СУБД MySQL. Если расширение PHP для MySQL установлено, то на странице с phpinfo будет размещен блок с информацией:

    8HxnoJwek3BpcAAAAAElFTkSuQmCC

    На данном этапе процесс проверки пройден успешно. Далее мы перейдем к настройке стека LAMP на Ubuntu 20.04.

    5. Настройка Apache

    Для обработки запросов будет использоваться модуль mpm_prefork. Данный модуль запускает по отдельному процессу на каждый запрос. Иначе говоря, каждый процесс одновременно обрабатывает только 1 поток на одно соединение. Для начала необходимо выключить mpm_event и mpm_worker и только потом включить модуль mpm_prefork:

    sudo a2dismod mpm_event

    sudo a2dismod mpm_worker

    sudo a2enmod mpm_prefork

    Включаем модуль mod_rewrite. Это модуль, предназначенный для преобразования URL адресов. Модуль использует в своей работе правила, которые могут быть описаны как в конфигурации сервера (httpd.conf), так и в файлах .htaccess непосредственно в файловой структуре Вашего сайта.

    sudo a2enmod rewrite

    Если вы хотите использовать файлы httaccess для настроек, то необходимо в файле /etc/apache2/apache2.conf изменить значение AllowOverride с None на All для нужных местоположений, например, для /var/www.
    Откройте файл apache2.conf при помощи любого текстового редактора:

    sudo vi /etc/apache2/apache2.conf

    Найдите следующий блок:


    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

    И замените AllowOverride None на AllowOverride All, затем сохраните изменения и закройте файл. Перезапустите apache:

    sudo systemctl restart apache2

    6. Настройка PHP

    По умолчанию короткие теги, обрамляющие скрипты PHP, отключены. Это может привести к тому, что некоторые скрипты, использующие эти теги, могут не выполнятся. Для включения этой возможности откройте файл php.ini при помощи любого текстового редактора:

    sudo vi /etc/php/7.4/apache2/php.ini

    Найдите short_open_tag = Off и замените на:

    AxXQgfbfNA5VAAAAAElFTkSuQmCC

    После внесения всех изменений необходимо перезапустить Apache:

    sudo systemctl restart apache2

    7. Настройка MySQL

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

    qmAYnT7cTAooBD4f8DFq2yQrp9QFYAAAAASUVORK5CYII https://losst.pro/wp-content/uploads/2021/07/test-19.png+fwRpAkQsDR3tAAAAAElFTkSuQmCC

    Во всех следующих вопросах нужно отвечать утвердительно путем ввода y/Y или Yes:

    • Запретить удалённый вход для пользователя root;
    • Запретить гостевой вход;
    • Удалить временные таблицы;
    • Обновить привилегии пользователей.

    Введите пароль пользователя root, который вы задали на этапе запуска mysql_secure_installation.
    Не перепутайте пароль от пользователя root который присутствует в операционной системе Ubuntu и пользователя root в MySQL. Это разные пользователи, соответственно вы должны вводить пароль именно к учетной записи root, которая присутствует в MySQL.

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

    sudo apt -y purge apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-mysql php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc

    Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.

    Выводы

    В этой статье мы разобрали, как выполняется установка LAMP Ubuntu 20.04. Как видите, это не очень сложно и с такой задачей может справиться даже новичок. Если у вас остались вопросы, оставляйте их в комментариях!

    Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.


    Оставьте комментарий