Установка phpmyadmin centos 7 nginx. Установка phpMyAdmin. Подготовка web сервера apache

Полезность теневых копий и, в частности, функции Предыдущие версии (Previous Versions), во многом зависит от того, как часто в системе проводится архивация данных. Теневые копии создаются по расписанию: каждый день в полночь (но только если компьютер включен и не используется) и через 30 минут после запуска Windows.

Однако должны соблюдаться определенные условия. Во-первых, процесс запускается только через 10 минут простоя компьютера; пока вы работаете, архивация не выполняется. Во-вторых, для экономии заряда батареи иа ноутбуках архивация производится только при подключении к источнику переменного тока (то есть файлы не будут архивироваться, пока вы сидите в кафе). Наконец, в случае сбоя система не повторяет попытку архивации до следующего запланированного момента. Если вы всерьез решили использовать функцию Предыдущие версии (Previous Versions), то, вероятно, захотите настроить более надежное расписание.

Начните с запуска Планировщика заданий (taskschd.msc). Раскройте в левой панели ветвь Библиотека планировщика заданий\Мicrosoft\Windоws\SystemRestore (Task Scheduler Library\Microsoft\Windows\SystemRestore). Щелкните правой кнопкой мыши на пункте SR в средней панели, выберите в контекстном меню команду Свойства (Properties) и перейдите на вкладку Журнал (History), чтобы проверить, как часто Windows создает теневые копии данных.

Для того чтобы изменить расписание, перейдите на вкладку Триггеры (Triggers). Если вы еще ничего не меняли, то в списке присутствуют две записи: Ежедневно (Daily) и При запуске (At startup). Выделите триггер и нажмите Изменить (Edit).

В одном томе (каждому тому соответствует своя буква диска) можно создать не более 64 теневых копий, поэтому если вам вдруг покажется разумным создавать резервные копии каждый час, не торопитесь менять настройки. При таком расписании копни старше двух дней и шестнадцати часов будут моментально удаляться, причем независимо от установленных в Панели инструментов ограничений дискового пространства, о которых говорилось чуть выше.

Закончив настройку расписания в окне Изменение триггера (Edit Trigger), удостоверьтесь, что флажок Включено (Enabled) установлен, и нажмите ОК.

Теперь перейдите на вкладку Условия (Conditions). Если ваш компьютер редко простаивает без дела, сбросьте флажок Запускать задачу при простое компьютера (Start the task only if the computer is idle for). В противном случае создание теневых копий может откладываться до бесконечности. Однако если производительность компьютера для вас важнее, то лучше оставить этот параметр включенным. Аналогично, если вы часто отключаете ноутбук от сети, то сбросьте флажок Запускать только при питании от электросети (Start the task only if the computer is on AC power). С другой стороны, когда этот параметр включен, заряд батареи экономится.

Наконец, перейдите на вкладку Параметры (Settings) и удостоверьтесь, что флажок Немедленно запускать задачу, если пропущен плановый запуск (Run task as soon as possible after a scheduled start is missed) установлен. Для сохранения изменений нажмите ОК.

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

МОМЕНТАЛЬНАЯ АРХИВАЦИЯ

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

Решение 1: простое копирование

Если вы несколько часов потратили на редактирование документа и не хотите потерять изменения, то сделайте дубликат файла: откройте папку документа, щелкните на документе правой кнопкой мыши и перетащите его в другую часть того же окна. В открывшемся контекстном меню выберите команду Копировать (Сору Неге). Новейшая резервная копия документа теперь есть в той же папке! Разумеется, копию можно поместить на USB-диск, иа сервер архивации или на другой компьютер в локальной сети.

Решение 2: простой Zip-файл

Для того чтобы быстро создать резервную копию целой папки, щелкните на ней правой кнопкой мыши и в контекстном меню выберите команду Отправить (Send То), а затем Сжатая ZIP-папка (Compressed (zipped) Folder). Через несколько секунд вы получите новый файл с расширением.zip, содержащий сжатые версии всех данных из вашей папки. Восстановить файлы очень просто: дважды щелкните zip-файл и перетащите нужные файлы обратно в исходную папку. Подробнее об этом вездесущем формате читайте в разделе «Архивирование».

Решение 3: предыдущие версии

Щелкните на документе правой кнопкой мыши, выберите команду Свойства (Properties) и перейдите в открывшемся окне на вкладку Предыдущие версии (Previous Versions), чтобы проверить автоматически созданные резервные копии данного файла. Нажмите Копировать (Сору), чтобы при восстановлении резервной копни не пропала самая новая версия файла, В Windows автоматическая архивация выполняется по расписанию, если она вообще включена, поэтому нет никакой гарантии, что восстановленная копия будет свежей. Но то, что архивация автоматическая, уже многое значит. Подробнее о предыдущих версиях рассказывается в разделе «Назад в прошлое - используем точки восстановления и теневые копии».

Решение 4: надстройки

Если вы не питаете неприязни к надстройкам, то вам должна понравиться SyncToy от Microsoft. Версию 2.1 или более новую можно загрузить с сайта http://www.microsoft . com/downloads/. Вкратце, SyncToy предназначена для синхронизации двух или более папок; она следит за тем, чтобы содержимое в них оставалось идентичным. Однако эту надстройку можно также использовать для оперативного резервного копирования содержимого папки. (Совет: для дополнительной защиты создайте вторую папку на сетевом диске или диске USB.) Представляйте себе SyncToy как массив RAID 1 для отдельных папок; подробнее об этом - в разделе «Защита данных при помощи массива RAID». Похожая утилита Second Сору (бесплатную версию которой можно загрузить с сай га http://www.secondcopy.com/) обладает еще более широким набором возможностей.

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

В Windows 8 в свойствах дисков, папок и файлов стало на одну вкладку меньше. Обратите внимание, что пропали предыдущие версии.

Это наблюдается только в клиентской операционной системе, т.е. в Windows Server 2012 вкладка осталась. В Windows 10 вкладка вернулась, но… вам надо прочесть статью:)

Статья обновлена в контексте Windows 10.

Сегодня в программе

Предыдущие версии в Windows 10

Статья была написана во времена Windows 8, а в Windows 10 вкладка «Предыдущие версии» вернулась в свойства папки. Тем не менее материал актуален для Windows 10, потому что в нем демонстрируются способы восстановления файлов напрямую из теневых копий.

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

Более того, мой эксперимент в Windows 10 версии 1511 (и позже в 1709) показал, что на вкладке отображаются только версии из истории файлов, даже если защита системы включена!

На этой картинке:

  1. Свойства папки скриншотов в ОС. Последняя версия от 27 февраля. Вероятно, это дата последнего копирования в историю файлов, которая у меня сейчас не работает (диск отключен физически)
  2. Последняя теневая копия от 11 мая (появилась при создании точки восстановления перед установкой обновлений WU), создаю символическую ссылку на п.3
  3. Содержимое теневой копии. Видно, что в ней есть файлы, созданные незадолго до появления теневой копии от 11 мая. Однако они отсутствуют в п.1

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

Как работают предыдущие версии, и почему убрали вкладку в Windows 8

Такая картина в свойствах файлов и папок является лишь следствием того, что в параметрах защиты системы Windows 8 теперь нет опции восстановления файлов.

Сразу скажу, что отсутствие точки входа в графическом интерфейсе не означает отсутствия технологии в системе. Предыдущие версии файлов все равно доступны! Поэтому все сказанное ниже полностью применимо к Windows 8, а описание технологии относится и к Windows 7.

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

Во многих системах на этой вкладке всегда было пусто

Это заставляло тысячи людей озадачивать форумы сообщества и поддержку Microsoft наболевшим вопросом. Но вы-то уже догадались, в чем была их проблема, не так ли? У этих людей была полностью отключена защита системы!

Людям был непонятен принцип хранения и отображения предыдущих версий

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

Согласитесь, при взгляде на вкладку не совсем очевидно, что сохранение версий личных документов и медиа-файлов привязано к созданию точек восстановления (хотя это описано в справке Windows, пусть и не без огрехов).

О точках принято думать как о средстве отката системных параметров, тем более что личные файлы при этом не восстанавливаются (за исключением этих типов файлов).

Между тем, точки восстановления и предыдущие версии файлов (не относящиеся к истории файлов) хранятся в одном месте – теневых копиях тома.

Механизм восстановления системы попросту делает снимок тома в нужное время и сохраняет его в теневой копии. Именно пространство, выделенное для теневых копий, вы контролируете в параметрах защиты системы.

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

В Windows 8 появилась история файлов

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

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

Вкладку же доступа к «непонятным» предыдущим версиям в Windows 8 просто убрали, вместе с сопутствующей опцией в параметрах защиты системы. Что же касается ИТ-специалистов, то они должны быть хорошо знакомы с понятием теневых копий – ведь в серверных ОС для управления ими есть одноименная вкладка в свойствах тома. Потому в Windows Server 2012 вкладка «Предыдущие версии» находится на своем привычном месте.

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

Как открыть предыдущие версии файлов и папок из теневых копий

Ниже два способа, которые сработают в случае, если у вас включена защита системы. Первый подходит для всех поддерживаемых Windows и будет полезен, если у вас не включена история файлов. Второй способ имеет смысл лишь в Windows 8/8.1 с учетом замечания о Windows 10 в начале статьи.

Способ 1 — символическая ссылка в теневые копии (Windows 7 и новее)

Постоянные читатели блога уже видели этот трюк в статье про функцию обновления ПК без удаления файлов (Refresh Your PC). Она тоже использует теневые копии для промежуточного сохранения диска, когда вы создаете свой образ для отката.

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

Vssadmin list shadows

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

Выберите нужную дату и скопируйте идентификатор тома теневой копии. Теперь используйте его во второй команде (не забудьте добавить обратный слэш в конце):

Mklink /d %SystemDrive%\shadow \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\

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

Способ 2 — вход в общий диск по сети (Windows 8 и 8.1)

Добавлено 15.01.2013 . В комментариях читатель Алексей поделился более простым способом доступа к теневым копиям по сравнению с описанным в статье изначально. Сначала способ работал, но позже Microsoft закрыла лазейку каким-то из обновлений. Однако читатель Ника в итоге подсказал обходной путь.

Сначала нужно сделать диск общим, а потом зайти в него «по сети». В окне «Этот компьютер» откройте «Сеть» и зайдите на свой ПК, либо под учетной записью администратора вставьте сетевой путь в адресную строку проводника или в окно «Выполнить»:

\\%computername%\C$

где C — буква желаемого диска. В сетевых папках вкладка «Предыдущие версии» присутствует:

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

Впрочем, я уж не настолько часто пользовался этой возможностью, чтобы ввод двух команд в консоль доставлял мне жуткие неудобства. Ведь главное – это наличие предыдущих версий файлов, а добраться до них я смогу! Теперь сможете и вы;)

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

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

Phpmyadmin - популярный инструмент для управления через браузер базами данных mysql. Я почти всегда устанавливаю его на сервер, если там есть базы mysql. Мне он кажется наиболее простым и удобным средством управления. В статье опишу подробно процесс установки на web сервер apache и nginx.

Несколько слов о том, что же из себя представляет инструмент под названием phpmyadmin. Это набор php скриптов, которые устанавливаются на веб сервер. С их помощью можно подключиться к локальному или удаленному mysql серверу и управять им через веб браузер. Я чаще всего с помощью phpmyadmin делаю следующие операции:

  • Создание новых баз и пользователей, назначение прав.
  • Экспорт или импорт баз не очень большого объема, до 50-ти мегабайт. Если база большего объема, использую утилиты командной строки (mysqldump и mysql) для управления сервером БД.
  • Просмотр содержимого баз данных или информации о них.
По сути, делаю практически все стандартные действия с базами данных. Без phpmyadmin можно обходиться, для самых простых конфигураций серверов (например голый zabbix сервер) мне хватает консольных утилит. Но если есть, к примеру, веб сервер с сайтами, я обязательно поставлю phpmyadmin. Мне так быстрее и удобнее.

Приступим к простой установке phpmyadmin на CentOS 7.

Если на голом сервере выполнить:

# yum install phpmyadmin

Вы увидите полный список зависимостей, но в нем не будет самого веб сервера и интерпретатора php, только его модули. Веб сервер вам нужно предварительно установить и настроить самим. Сделем это на примере веб сервера httpd (апач). Устанавливаем его:

# yum install -y httpd

Теперь установим php, без него панель администрирования не заработает:

# yum install -y php

Запускаем веб сервер, добавляем его в автозагрузку и проверяем работу:

# systemctl enable httpd # systemctl start httpd

Заходите по адресу

. Вы должны увидеть тестовую страницу апача. Теперь проверим, работает ли php. Создаем тестовую страничку в папке /var/www/html:

# mcedit /var/www/html/index.php


Назначаем владельца apache на созданный файл:

# chown apache. /var/www/html/index.php

Теперь снова заходим по адресу

Вы должны быть зарегистрированы, чтобы видеть ссылки.

, вы должны увидеть вывод phpinfo:




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

Устанавливаем phpmyadmin со всеми зависимостями:

# yum install -y phpmyadmin

После установки в каталоге с конфигурациями httpd /etc/httpd/conf.d появляется файл phpMyAdmin.conf. Сохраним сразу на всякий случай оригинальный файл, перед тем как начать его редактировать:

# cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.orig

По-умолчанию, в конфиге закрыт доступ к панели управления для всех адресов, кроме 127.0.0.1. Чтобы открыть доступ для всех, приведите файл к следующему виду:

# mcedit /etc/httpd/conf.d/phpMyAdmin.conf



Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin AddDefaultCharset UTF-8 Require all granted Require all granted Order Deny,Allow Deny from All Allow from None Order Deny,Allow Deny from All Allow from None

Я удалил все лишнее из файла, в том числе настройки, которые относились к версии apache 2.2. Перезапускаем httpd:

# systemctl restart httpd

Заходим по адресу

Вы должны быть зарегистрированы, чтобы видеть ссылки.

. Вы должны увидеть страницу логина:

В этот момент я понял, что мне некуда логиниться. На тестовом сервере, где я готовлю статью, нет mysql. Если у вас та же ситуация, что у меня, установите mariadb. Сейчас быстро ставим базу данных и запускаем ее:

# yum install -y mariadb mariadb-server # systemctl enable mariadb.service # systemctl start mariadb # /usr/bin/mysql_secure_installation

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


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

Настроим работу phpmyadmin на веб сервере nginx + php-fpm. Устанавливаем nginx:

# yum install -y nginx

Устанавливаем php-fpm:

# yum install -y php-fpm

Запускаем службы и добавляем в автозагрузку:

# systemctl start nginx.service # systemctl enable nginx.service # systemctl start php-fpm.service # systemctl enable php-fpm.service

Заходим по адресу

Вы должны быть зарегистрированы, чтобы видеть ссылки.

и проверяем. Вы должны увидеть тестовую страницу nginx:


# yum install -y phpmyadmin

Редактируем конфигурационный файл nginx для добавления установленной веб панели управления:

# mcedit /etc/nginx/nginx.conf

Приводим секцию server {} к следующему виду:

Server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; index index.php index.html index.htm; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_ignore_client_abort off; } include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

# ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpmyadmin

Перезапускаем nginx:

# systemctl restart nginx

Дальше по идее все должно работать, но у меня не работало, пришлось перезагрузить весь сервер, так как не работал модуль php mbstring, хотя он установлен и подключен. Перезапуск php-fpm тоже не помогал, а перезагрузка помогла. Проверил 2 раза, оба раза воспроизвел ошибку. Разбираться не стал в чем причина такого поведения, просто перезагрузите сервер и продолжайте.

Идем по адресу

Вы должны быть зарегистрированы, чтобы видеть ссылки.

. Должны увидеть стандартную страницу входа. У меня на ней было предупреждение:

Warning in ./libraries/session.inc.php#105 session_start(): open(/var/lib/php/session/sess_j0r4moac0oo7oh250e6t14rn1kfkl6ta, O_RDWR) failed: No such file or directory (2)


Это сязано с тем, что в папке /var/lib/php нет директории session. Исправляем это:

# cd /var/lib/php/ # mkdir session # chown apache:apache session/

Обращаю внимание на то, что я назначил владельцем папки с сессиями пользователя apache, хотя у нас веб сервер nginx. Это связано с тем, что php-fpm по-умолчанию работает под пользователем apache. Логичнее изменить это и запускать его от nginx. Для этого надо отредактировать файл /etc/php-fpm.d/

Вы должны быть зарегистрированы, чтобы видеть ссылки.

Изменив там параметры user и group. Я не стал этого делать сейчас для простоты. Оставляю данный параметр на ваше усмотрение.

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

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

Рассмотрим сначала пример с веб сервером apache. Будем использовать стандартное средство для ограничения доступа к каталогу с помощью.htaccees. Создадим такой файл в папке со скриптами phpmyadmin:

# mcedit /usr/share/phpMyAdmin/.htaccess

AuthName "Enter Password" AuthType Basic Require valid-user AuthUserFile "/usr/share/phpMyAdmin/.htpasswd"

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user password


Чтобы авторизация заработала, необходимо в файле /etc/httpd/conf.d/phpMyAdmin.conf в разделе Directory добавить параметр AllowOverride, чтобы получилось вот так:

# yum install -y httpd-tools

Снова создаем файл с паролем:

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user1 password Adding password for user user1

Отредактируем конфигурационный файл nginx, добавив в секцию server {} новый location:

Location /phpmyadmin/ { auth_basic "Enter password"; auth_basic_user_file /usr/share/phpMyAdmin/.htpasswd; }

Сохраняете конфиг, перезапускаете nginx и проверяете доступ к странице. Должно выскочить такое же, как и с apache, окно авторизации.

Рассмотрим еще несколько полезных настроек phpmyadmin. После входа в панель, в разделе Настройки вы увидите сообщение:

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

Подключим необходимый модуль для сохранения настроек. Модуль это громко сказано, нам всего лишь необходимо создать отдельную базу данных для хранения настроек и активации некоторых расширенных возможностей. Файл для создания базы данных хранится в директории phpmyadmin по адресу /usr/share/phpMyAdmin/sql/create_tables.sql . Копируем содержимое этого файла и выполняем его тут же, в phpmyadmin в разделе SQL:


Теперь можно идти в настройки и изменять их. Я обычно отключаю проверку новой версии. Они выходят достаточно часто, обновлять мне все равно их лень, поэтому информация о новых версиях мне не нужна. Так же отключаю логотип, можно загрузить свой. Сами полистайте настройки, посмотрите, что вам интересно. Все пункты неплохо задокументированы, можно почитать за что отвечают. Иногда бывает полезно вывести отдельный столбец в списке таблиц с информацией по дате создания и обновления. Это настраивается в разеделе Настройки -> Основная панель -> Структура базы данных .

Если вы хотите подключиться к удаленному mysql серверу с помощью phpmyadmin, воспользуйтесь скриптом настройки подключения по адресу

Вы должны быть зарегистрированы, чтобы видеть ссылки.

.

LEMP — набор софта, который реализует серверную платформу для хостинга сайтов с динамическим контентом. Термин является акронимом, за которым скрывается операционная система L inux, веб сервер E Nginx (иногда он заменяется сервером A pache — LAMP ), база данных M ySQL и скриптовый язык P HP.
Сначала для получения последней версии пакета добавим официальный репозиторий:

# vim /etc/yum.repos.d/nginx.repo name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1

Подключив его просто устанавливаем nginx

# yum install nginx

пробуем запустить:

# service nginx start Redirecting to /bin/systemctl start nginx.service

# chkconfig nginx on Note: Forwarding request to "systemctl enable nginx.service". ln -s "/usr/lib/systemd/system/nginx.service" "/etc/systemd/system/multi-user.target.wants/nginx.service"

По умолчанию в CentOS 7 открыт только 22 порт для коннекта по ssh. Необходимо разрешить и 80 для веб-сервера
Добавим правило:

# iptables -A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT

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

# iptables-save > /etc/sysconfig/iptables

MySQL
Что бы иметь последние версии форка MariaDB добавим официальный репозиторий. Корректное содержание для файла можно сгенерировать на этом ресурсе, выбрав свой дистрибутив и версию
Для CentOS 7 текст такой

# MariaDB 10.3 CentOS repository list - created 2018-10-08 09:21 UTC # http://downloads.mariadb.org/mariadb/repositories/ name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

# yum install MariaDB-server MariaDB-client -y

Мы уже умеем правильно запускать сервисы:

# systemctl start mariadb # mysql_secure_installation Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? y ... Success! Normally, root should only be allowed to connect from "localhost". This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? y ... Success! By default, MariaDB comes with a database named "test" that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? y ... Success! Cleaning up... All done! If you"ve completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!

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

# systemctl enable mariadb.service

Установка интерпретатора PHP. Я сразу установлю и phpMyAdmin

# yum -y install epel-release # yum install php-fpm php php-mysql phpMyAdmin

По умолчанию PHP-FPM работает на сетевом порту 9000. Я же для повышения как безопасности так и производительности запускаю его на доменном сокете.
Для этого в файле /etc/php-fpm.d/www.conf необходимо поменять строку listen = 127.0.0.1:9000 на listen = /var/run/php-fpm/php-fpm.sock
или быстрее просто

# sed -i "s/^listen = 127.*/listen = \/var\/run\/php-fpm\/php-fpm.sock/" /etc/php-fpm.d/www.conf

Кроме того по умолчанию есть параметр, который необходимо раскоментировать(удалив перед ним «; «) и заменить значение с 1 на 0 из соображений секьюрности в /etc/php.ini

# sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php.ini

Запускаем и проверяем:

# systemctl start php-fpm.service # ps aux | grep php-fpm root 47055 0.0 0.2 220696 8428 ? Ss 12:09 0:00 php-fpm: master process (/etc/php-fpm.conf) apache 47056 0.0 0.1 220696 4056 ? S 12:09 0:00 php-fpm: pool www apache 47057 0.0 0.1 220696 4056 ? S 12:09 0:00 php-fpm: pool www apache 47058 0.0 0.1 220696 4056 ? S 12:09 0:00 php-fpm: pool www apache 47059 0.0 0.1 220696 4056 ? S 12:09 0:00 php-fpm: pool www apache 47060 0.0 0.1 220696 4052 ? S 12:09 0:00 php-fpm: pool www

Работает, добавляем в автозагрузку:

# systemctl enable php-fpm.service

И собственно необходимо подружить вебсервер и менеджер процессов FastCGI. Мой конфиг имеет такой вид:
/etc/nginx/conf.d/default.conf

Server { listen 80 default; server_name localhost; root /usr/share/nginx/html; index index.php index.html index.htm; #access_log /var/log/nginx/log/host.access.log main; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location /pma/ { auth_basic "O-ops! Password required"; auth_basic_user_file /usr/share/phpMyAdmin/htpasswd; alias /usr/share/phpMyAdmin/; location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_ignore_client_abort off; } } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

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

# htpasswd -cb /usr/share/phpMyAdmin/htpasswd user P@ssw0rd

Можно перезапустить сервер

# systemctl restart nginx.service

но я обычно проверяю конфиг и просто перечитываю правила:

# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # nginx -s reload

Phpmyadmin — популярный инструмент для управления через браузер базами данных mysql. Я почти всегда устанавливаю его на сервер, если там есть базы mysql. Мне он кажется наиболее простым и удобным средством управления. В статье опишу подробно процесс установки на web сервер apache и nginx.

Введение

Ранее я уже касался темы установки phpmyadmin в статье про . Сейчас хочу рассмотреть более подробно этот вопрос не только на nginx, но и традиционном apache (httpd).

Несколько слов о том, что же из себя представляет инструмент под названием phpmyadmin. Это набор php скриптов, которые устанавливаются на веб сервер. С их помощью можно подключиться к локальному или удаленному mysql серверу и управять им через веб браузер. Я чаще всего с помощью phpmyadmin делаю следующие операции:

  1. Создание новых баз и пользователей, назначение прав.
  2. Экспорт или импорт баз не очень большого объема, до 50-ти мегабайт. Если база большего объема, использую утилиты командной строки (mysqldump и mysql) для управления сервером БД.
  3. Просмотр содержимого баз данных или информации о них.

По сути, делаю практически все стандартные действия с базами данных. Без phpmyadmin можно обходиться, для самых простых конфигураций серверов (например голый zabbix сервер) мне хватает консольных утилит. Но если есть, к примеру, веб сервер с сайтами, я обязательно поставлю phpmyadmin. Мне так быстрее и удобнее.

Приступим к простой установке phpmyadmin на CentOS 7.

Подготовка web сервера apache

Если на голом сервере выполнить:

# yum install phpmyadmin

Вы увидите полный список зависимостей, но в нем не будет самого веб сервера и интерпретатора php, только его модули. Веб сервер вам нужно предварительно установить и настроить самим. Сделем это на примере веб сервера httpd (апач). Устанавливаем его:

# yum install -y httpd

Теперь установим php, без него панель администрирования не заработает:

# yum install -y php

Запускаем веб сервер, добавляем его в автозагрузку и проверяем работу:

# systemctl enable httpd # systemctl start httpd

Заходите по адресу http://ip-адрес-сервер . Вы должны увидеть тестовую страницу апача. Теперь проверим, работает ли php. Создаем тестовую страничку в папке /var/www/html :

# mcedit /var/www/html/index.php

Назначаем владельца apache на созданный файл:

# chown apache. /var/www/html/index.php

Теперь снова заходим по адресу http://ip-адрес-сервера , вы должны увидеть вывод phpinfo:

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

Установка phpmyadmin

Устанавливаем phpmyadmin со всеми зависимостями:

После установки в каталоге с конфигурациями httpd /etc/httpd/conf.d появляется файл phpMyAdmin.conf . Сохраним сразу на всякий случай оригинальный файл, перед тем как начать его редактировать:

# cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.orig

По-умолчанию, в конфиге закрыт доступ к панели управления для всех адресов, кроме 127.0.0.1. Чтобы открыть доступ для всех, приведите файл к следующему виду:

# mcedit /etc/httpd/conf.d/phpMyAdmin.conf Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin Require all granted Order Deny,Allow Deny from All Allow from None Order Deny,Allow Deny from All Allow from None

Я удалил все лишнее из файла, в том числе настройки, которые относились к версии apache 2.2. Перезапускаем httpd:

# systemctl restart httpd

Заходим по адресу . Вы должны увидеть страницу логина:

В этот момент я понял, что мне некуда логиниться. На тестовом сервере, где я готовлю статью, нет mysql. Если у вас та же ситуация, что у меня, установите mariadb. Подробно об я рассказал в статье, посвещенной настройке web-сервера, все подробности можете там посмотреть. Сейчас быстро ставим базу данных и запускаем ее:

# yum install -y mariadb mariadb-server # systemctl enable mariadb.service # systemctl start mariadb # /usr/bin/mysql_secure_installation

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

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

Установка на nginx

Настроим работу phpmyadmin на веб сервере nginx + php-fpm. Подробно вопрос настройки такого сервера я рассматривал ранее в статье . Там речь шла именно о веб сервере и уклон был в эту сторону. Но phpmyadmin может понадобиться не только на веб серверах. Так что рассмотрим общий случай быстрой и простой настройки phpmyadmin на nginx.

Устанавливаем nginx:

# yum install -y nginx

Устанавливаем php-fpm:

# yum install -y php-fpm

Запускаем службы и добавляем в автозагрузку:

# systemctl start nginx.service # systemctl enable nginx.service # systemctl start php-fpm.service # systemctl enable php-fpm.service

Заходим по адресу http://ip-адрес-сервера и проверяем. Вы должны увидеть тестовую страницу nginx:

# yum install -y phpmyadmin

Редактируем конфигурационный файл nginx для добавления установленной веб панели управления:

# mcedit /etc/nginx/nginx.conf

Приводим секцию server {} к следующему виду:

Server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; index index.php index.html index.htm; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_ignore_client_abort off; } include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

# ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpmyadmin

Перезапускаем nginx:

# systemctl restart nginx

Дальше по идее все должно работать, но у меня не работало, пришлось перезагрузить весь сервер, так как не работал модуль php mbstring, хотя он установлен и подключен. Перезапуск php-fpm тоже не помогал, а перезагрузка помогла. Проверил 2 раза, оба раза воспроизвел ошибку. Разбираться не стал в чем причина такого поведения, просто перезагрузите сервер и продолжайте.

Идем по адресу http://ip-адрес-сервера/phpmyadmin . Должны увидеть стандартную страницу входа. У меня на ней было предупреждение:

Warning in ./libraries/session.inc.php#105 session_start(): open(/var/lib/php/session/sess_j0r4moac0oo7oh250e6t14rn1kfkl6ta, O_RDWR) failed: No such file or directory (2)

Это сязано с тем, что в папке /var/lib/php нет директории session. Исправляем это:

# cd /var/lib/php/ # mkdir session # chown apache:apache session/

Обращаю внимание на то, что я назначил владельцем папки с сессиями пользователя apache, хотя у нас веб сервер nginx. Это связано с тем, что php-fpm по-умолчанию работает под пользователем apache. Логичнее изменить это и запускать его от nginx. Для этого надо отредактировать файл /etc/php-fpm.d/www.conf, изменив там параметры user и group. Я не стал этого делать сейчас для простоты. Оставляю данный параметр на ваше усмотрение.

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

Настройка phpmyadmin

Пхпадмин готов к работе сразу после установки, дополнительные настройки не обазательны. Приведу полезный пример при использовании — ограничение доступа к phpmyadmin средствами веб-сервера. Для использования панели необходимо будет не только знать имя учетной записи mysql, но и пользователя и пароль для доступа непосредственно к панели.

Рассмотрим сначала пример с веб сервером apache . Будем использовать стандартное средство для ограничения доступа к каталогу с помощью.htaccees. Создадим такой файл в папке со скриптами phpmyadmin:

# mcedit /usr/share/phpMyAdmin/.htaccess AuthName "Enter Password" AuthType Basic Require valid-user AuthUserFile "/usr/share/phpMyAdmin/.htpasswd"

AddDefaultCharset UTF-8 Require all granted AllowOverride All

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

Проделаем то же самое на nginx . Так же создаем файл с паролем.htaccess:

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user password

Если у вас на сервере не установлен httpd, то скорее всего вы увидите ошибку:

Bash: htpasswd: command not found

Необходимой утилиты нет в системе. Установим htpasswd на centos:

# yum install -y httpd-tools

Снова создаем файл с паролем:

# htpasswd -bc /usr/share/phpMyAdmin/.htpasswd user1 password Adding password for user user1

Отредактируем конфигурационный файл nginx, добавив в секцию server {} новый location:

Location /phpmyadmin/ { auth_basic "Enter password"; auth_basic_user_file /usr/share/phpMyAdmin/.htpasswd; }

Сохраняете конфиг, перезапускаете nginx и проверяете доступ к странице. Должно выскочить такое же, как и с apache, окно авторизации.

Рассмотрим еще несколько полезных настроек phpmyadmin. После входа в панель, в разделе Настройки вы увидите сообщение:

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

Подключим необходимый модуль для сохранения настроек. Модуль это громко сказано, нам всего лишь необходимо создать отдельную базу данных для хранения настроек и активации некоторых расширенных возможностей. Файл для создания базы данных хранится в директории phpmyadmin по адресу /usr/share/phpMyAdmin/sql/create_tables.sql . Копируем содержимое этого файла и выполняем его тут же, в phpmyadmin в разделе SQL:

Теперь можно идти в настройки и изменять их. Я обычно отключаю проверку новой версии. Они выходят достаточно часто, обновлять мне все равно их лень, поэтому информация о новых версиях мне не нужна. Так же отключаю логотип, можно загрузить свой. Сами полистайте настройки, посмотрите, что вам интересно. Все пункты неплохо задокументированы, можно почитать за что отвечают. Иногда бывает полезно вывести отдельный столбец в списке таблиц с информацией по дате создания и обновления. Это настраивается в разеделе Настройки -> Основная панель -> Структура базы данных.

Если вы хотите подключиться к удаленному mysql серверу с помощью phpmyadmin, воспользуйтесь скриптом настройки подключения по адресу http://ip-адрес-сервера/phpmyadmin/setup/ .

Заключение

Я рассмотрел основные моменты по установке и настройке phpmyadmin на веб сервер apache и nginx. Хочу подчеркнуть, что это мой личный опыт. Возможно, я где-то ошибась или поступаю не совсем верно. Если вы заметите это, прошу написать в комментариях. Я приму к сведению и исправлю статью. Я пишу статьи в том числе и для того, чтобы самому научиться чему-то новому. Комментарии к статьям мне в этом помогают.

Помогла статья? Есть возможность автора

Видео

Предалагаю посмотреть видео всего процесса установки и настройки phpmyadmin на примере веб сервера apache.

Онлайн курс "Администратор Linux"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по.