- Установка phpMyAdmin
- Обратить внимание на Validate Password
- Работа с пользователями
- Обеспечение безопасности phpMyAdmin
- Удаление phpMyAdmin
- Возможные ошибки
- Требования
- 1: Установка phpMyAdmin и настройка Apache
- 2: Настройка доступа к БД MySQL через phpMyAdmin
- Итоги
- Как пользоваться Phpmyadmin
- 1. Авторизация
- 2. Первоначальная настройка
- 3. Интерфейс
- 4. Создание базы данных
- 5. Создание таблиц
- 6. Вставка записей
- 7. Выполнение SQL запроса
- 8. Создание пользователя
- 9. Привилегии пользователя
- 10. Экспорт и импорт
- Выводы
- 1. Установка нужных компонентов
- 2. Установка phpMyAdmin
- 3. Настройка PhpMyAdmin в Nginx с помощью символической ссылки
- 4. Настройка Nginx для PhpMyAdmin с помощью root
- 5. Настройка Nginx для PhpMyadmin с помощью alias
- 6. Создание пользователя для phpMyAdmin
- 7. Защита phpMyAdmin
- Как удалить phpMyAdmin с Ubuntu
- Выводы
- AuthName — задает сообщение, которое будет видеть пользователь; AuthUserFile — файл, откуда программа будет брать имена пользователей и пароли; sudo nano /etc/nginx/sites-enabled/default Require — указываем, что аутентификация обязательна. Далее создайте новый пароль для своего пользователя: sudo nginx -t Чтобы настройки из файла .htaccess заработали в этой директории, необходимо, чтобы для неё в файле /etc/apache2/apache2.conf значение AllowOverride было sudo nano /etc/nginx/sites-available/default All : Сохраните изменения и закройте файл. Далее перезапустите apache: Как удалить phpMyAdmin с Ubuntu После выполнения этой команды программа будет удалена с вашего компьютера. Выводы Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
- Выводы
Установка phpMyAdmin
Первый шаг — установка модуля расширения php-mbstring. Mbstring предоставляет функции для работы с многобайтными строками, которые облегчают обработку многобайтовых кодировок в php.
sudo apt install php-mbstring -y Вывод успешной установки:
vlan48@apachi:~$ sudo apt install php-mbstring -y
[sudo] password for vlan48:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed: libonig5 php7.4-mbstring
The following NEW packages will be installed: libonig5 php-mbstring php7.4-mbstring
0 upgraded, 3 newly installed, 0 to remove and 27 not upgraded.
Need to get 541 kB of archives.
After this operation, 1709 kB of additional disk space will be used.
Get:1 http://mirror.selectel.ru/ubuntu focal/universe amd64 libonig5 amd64 6.9.4-1 [142 kB]
Get:2 http://mirror.selectel.ru/ubuntu focal-updates/universe amd64 php7.4-mbstring amd64 7.4.3-4ubuntu2.6 [397 kB]
Get:3 http://mirror.selectel.ru/ubuntu focal/universe amd64 php-mbstring all 2:7.4+75 [2012 B]
Fetched 541 kB in 0s (12.1 MB/s)
Selecting previously unselected package libonig5:amd64.
(Reading database ... 45001 files and directories currently installed.)
Preparing to unpack .../libonig5_6.9.4-1_amd64.deb ...
Unpacking libonig5:amd64 (6.9.4-1) ...
Selecting previously unselected package php7.4-mbstring.
Preparing to unpack .../php7.4-mbstring_7.4.3-4ubuntu2.6_amd64.deb ...
Unpacking php7.4-mbstring (7.4.3-4ubuntu2.6) ...
Selecting previously unselected package php-mbstring.
Preparing to unpack .../php-mbstring_2%3a7.4+75_all.deb ...
Unpacking php-mbstring (2:7.4+75) ...
Setting up libonig5:amd64 (6.9.4-1) ...
Setting up php7.4-mbstring (7.4.3-4ubuntu2.6) ...
Creating config file /etc/php/7.4/mods-available/mbstring.ini with new version
Setting up php-mbstring (2:7.4+75) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.6) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.6) ... sudo apt install phpmyadmin -y Обратить внимание на Validate Password
Открыть консоль управления MySQL:
sudo mysql Если активна аутентификация по паролю суперпользователя root, команда будет выглядеть так:
mysql -u root -p Теперь отправляем следующую команду:
UNINSTALL COMPONENT "file://component_validate_password"; Это действие произведет отключение плагина Validate Password.
Покинем консоль MySQL, команда:
exit Продолжим установку. После отправки команды в терминал появится окно установщика, в котором потребуется ответить на ряд вопросов. Навигация в установщике осуществляется посредством использования клавиш Up down, выбор пунктов кнопка « Пробел
», переход ниже — Tab.
Ввод выбранного ответа — Enter
.
На первый вопрос про используемый web-сервер, необходимо ответить — apache2.
Подтвердим созданный ранее пароль:
Вывод успешной работы программы:
vlan48@apachi:~$ sudo apt -y install phpmyadmin
[sudo] password for vlan48:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages: www-browser php-recode php-gd2 php-pragmarx-google2fa php-bacon-qr-code php-samyoul-u2f-php-server
Recommended packages: php-curl php-gd php-bz2 php-zip php-tcpdf
The following NEW packages will be installed: phpmyadmin
0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded.
Need to get 4426 kB of archives.
After this operation, 27.2 MB of additional disk space will be used.
Get:1 http://mirror.selectel.ru/ubuntu focal/universe amd64 phpmyadmin all 4:4.9.5+dfsg1-2 [4426 kB]
Fetched 4426 kB in 0s (34.8 MB/s)
Preconfiguring packages ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
Selecting previously unselected package phpmyadmin.
(Reading database ... 46341 files and directories currently installed.)
Preparing to unpack .../phpmyadmin_4%3a4.9.5+dfsg1-2_all.deb ...
Unpacking phpmyadmin (4:4.9.5+dfsg1-2) ...
Setting up phpmyadmin (4:4.9.5+dfsg1-2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf
Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version
Creating config file /etc/phpmyadmin/config-db.php with new version
checking privileges on database phpmyadmin for phpmyadmin@localhost: user creation needed.
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql... done.
dbconfig-common: flushing administrative password
apache2_invoke: Enable configuration phpmyadmin Установка завершена. Прежде чем пойти далее, необходимо произвести проверку работоспособности на данном этапе, чтобы в случае возникновения проблем, их можно было решить с наименьшими трудозатратами.
ip_address/phpmyadmin Для учетной записи root по умолчанию применяется доступ с использованием плагина auth_socket. Изменим это на аутентификацию с использованием пароля. В данном случае необходимо изменить тип аутентификации на аутентификацию с использованием пароля.
Откроем консоль MySQL:
sudo mysql Произведем проверку таблицы пользователей, чтобы увидеть метод аутентификации для каждого пользователя:
SELECT user,plugin,host FROM mysql.user; +-------------------------+----------------------------------+------------+
| user | plugin | host |
+-------------------------+----------------------------------+------------+
| debian-sys-maint | caching_sha2_password | localhost |
| mysql.infoschema | caching_sha2_password | localhost |
| mysql.session | caching_sha2_password | localhost |
| mysql.sys | caching_sha2_password | localhost |
| phpmyadmin | caching_sha2_password | localhost |
| root | auth_socket | localhost |
+------------------------+----------------------------------+--------------+
7 rows in set (0.00 sec) Исходя из данных таблицы следует, что аутентификация пользователя root происходит с использованием плагина auth_socket.
Для изменения отправим следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; Password добавляем свой.
Вывод работы команды:
Query OK, 0 rows affected (0.03 sec) В случае возникновения ошибки Plugin caching_sha2_password in not loaded
следует обратиться к разделу «Возможные ошибки» в конце статьи.
SELECT user,plugin,host FROM mysql.user; +-----------------------+-----------------------------------+-----------+
| user | plugin | host |
+------------------------+----------------------------------+-----------+
| debian-sys-maint | caching_sha2_password | localhost |
| mysql.infoschema | caching_sha2_password | localhost |
| mysql.session | caching_sha2_password | localhost |
| mysql.sys | caching_sha2_password | localhost |
| phpmyadmin | caching_sha2_password | localhost |
| root | caching_sha2_password | localhost |
+------------------------+---------------------------------+-------------+
7 rows in set (0.00 sec) Теперь у пользователя root тип аутентификации — caching_sha2_password.
Работа с пользователями
sudo mysql Так мы запустим работу с базой данных от имени администратора. Потребуется ввод пароля.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> Теперь необходимо добавить пользователя, а также его пароль. Выполнить это можно командой:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; В рабочем варианте отправленная команда выглядит так:
CREATE USER 'selectel'@'localhost' IDENTIFIED BY 's*****qq'; Query OK, 0 rows affected (0.02 sec) Добавим необходимые привилегии для созданного пользователя. В данном случае это будут все привилегии для всех баз данных на сервере:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; Если пользователю необходимо разрешить создавать пользователей и назначать им привилегии, необходимо добавить опции:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION; В данном примере в этом нет необходимости, поэтому будут только назначены полные привилегии для всех баз данных:
GRANT ALL PRIVILEGES ON *.* TO 'selectel'@'localhost'; Query OK, 0 rows affected (0.00 sec) Остается только применить изменения в настройках привилегий для этого служит команда:
FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) В некоторых случаях может потребоваться удаление ранее созданного пользователя.
Это выполняется с использованием команды:
DROP USER 'user'@'localhost'; Проверяем что пользователь существует:
SELECT user FROM mysql.user; Отправленная команда осуществляет вывод списка текущих пользователей.
+--------------------------+
| user |
+--------------------------+
| debian-sys-maint |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| phpmyadmin |
| root |
| selectel |
+---------------------------+
7 rows in set (0.01 sec) Убедившись что пользователь ‘selectel’ активен, можно произвести удаление:
DROP USER 'selectel'@'localhost'; Query OK, 0 rows affected (0.01 sec) Производим повторную проверку, убеждаясь в его отсутствии в списке.
+--------------------------+
| user |
+--------------------------+
| debian-sys-maint |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| phpmyadmin |
| root |
+---------------------------+
7 rows in set (0.00 sec) На этом настройка пользователей завершена. Для выхода из mysql необходимо отправить команду exit
.
Обеспечение безопасности phpMyAdmin
Если к серверу есть хоть какой-то доступ из интернета или ненадежной сети, необходимо обеспечить безопасность, добавив авторизацию.
Требуется создать файл .htaccess,
который является конфигурационным файлом web-сервера Apache. Он дает возможность управлять web-сервером и настройками web-приложения с помощью директив, без изменения основного файла конфигурации web-сервера. В данной инструкции будет использован текстовый редактор nano
.
AuthType Basic
Authname "Restricted Content"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user sudo nano /usr/share/phpmyadmin/.htaccess AuthType Basic
— авторизация по паролю;
Authname «Restricted Content»
— сообщение для окна авторизации;
Теперь необходимо установить пароль учетной записи.
sudo htpasswd -c /etc/phpmyadmin/.htpasswd user sudo htpasswd -c /etc/phpmyadmin/.htpasswd selectel и дважды вводим пароль.
Adding password for user selectel <Directory /usr/share>
AllowOverride All
Require all granted
</Directory> По умолчанию файл выглядит так:
<Directory /> Options FollowSymLinks AllowOverride None Require all denied
</Directory>
<Directory /usr/share> AllowOverride None Require all granted
</Directory>
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory> Вносим изменения в необходимую директиву:
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory> # This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream's suggested way to configure the web server. This is because Debian's
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.
# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
# /etc/apache2/
# |-- apache2.conf
# | `-- ports.conf
# |-- mods-enabled
# | |-- *.load
# | `-- *.conf
# |-- conf-enabled
# | `-- *.conf
# `-- sites-enabled
# `-- *.conf
#
#
# * apache2.conf is the main configuration file (this file). It puts the pieces
# together by including all remaining configuration files when starting up the
# web server.
#
# * ports.conf is always included from the main configuration file. It is
# supposed to determine listening ports for incoming connections which can be
# customized anytime.
#
# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
# directories contain particular configuration snippets which manage modules,
# global configuration fragments, or virtual host configurations,
# respectively.
#
# They are activated by symlinking available configuration files from their
# respective *-available/ counterparts. These should be managed by using our
# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
# their respective man pages for detailed information.
#
# * The binary is called apache2. Due to the use of environment variables, in
# the default configuration, apache2 needs to be started/stopped with
# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
# work with the default configuration.
# Global configuration
#
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the Mutex documentation (available
# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"
#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#Mutex file:${APACHE_LOCK_DIR} default
#
# The directory where shm and other runtime files will be stored.
#
DefaultRuntimeDir ${APACHE_RUN_DIR}
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog ${APACHE_LOG_DIR}/error.log
#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl:warn"
#
LogLevel warn
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include list of ports to listen on
Include ports.conf
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory /> Options FollowSymLinks AllowOverride None Require all denied
</Directory>
<Directory /usr/share> AllowOverride All Require all granted
</Directory>
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
#
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht"> Require all denied
</FilesMatch>
#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file), because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf Сохраняем, перечитаем конфигурацию Apache2, отправкой команды:
sudo systemctl reload apache2 Если сервер пока не в активной работе можно перезапустить демона командой:
sudo systemctl restart apache2 После ввода верных учетных данных авторизация проходит успешно.
Удаление phpMyAdmin
Удаление происходит с использованием этих команд:
sudo apt remove phpmyadmin -y Отвечаем на все вопросы положительно.
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required: dbconfig-common dbconfig-mysql libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore libxslt1.1 php php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts php-symfony-var-exporter php-twig php-twig-extensions php-xml php7.4 php7.4-xml
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED: phpmyadmin
0 upgraded, 0 newly installed, 1 to remove and 41 not upgraded.
After this operation, 27.2 MB disk space will be freed.
(Reading database ... 54693 files and directories currently installed.)
Removing phpmyadmin (4:4.9.5+dfsg1-2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: dumping mysql database phpmyadmin to /var/tmp/phpmyadmin.phpmyadmin.2021-11-16-07.04.mysql.rTp4t6.
dbconfig-common: dropping mysql database phpmyadmin.
dropping database phpmyadmin: success.
verifying database phpmyadmin was dropped: success.
dbconfig-common: revoking privileges for user phpmyadmin on phpmyadmin.
revoking access to database phpmyadmin from phpmyadmin@localhost: success.
Conf phpmyadmin disabled.
apache2_invoke postrm:Disable configuration phpmyadmin Для очистки неиспользуемых зависимостей применяем:
sudo apt-get autoremove Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED: dbconfig-common dbconfig-mysql libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore libxslt1.1 php php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts php-symfony-var-exporter php-twig php-twig-extensions php-xml php7.4 php7.4-xml
0 upgraded, 0 newly installed, 26 to remove and 41 not upgraded.
After this operation, 20.5 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 52976 files and directories currently installed.)
Removing dbconfig-mysql (2.0.13) ...
Removing dbconfig-common (2.0.13) ...
Removing libjs-sphinxdoc (1.8.5-7ubuntu3) ...
Removing libjs-jquery (3.3.1~dfsg-3) ...
Removing libjs-openlayers (2.13.1+ds2-7) ...
Removing libjs-underscore (1.9.1~dfsg-1ubuntu0.20.04.1) ...
Removing php-xml (2:7.4+75) ...
Removing php7.4-xml (7.4.3-4ubuntu2.7) ...
Removing libxslt1.1:amd64 (1.1.34-4) ...
Removing php (2:7.4+75) ...
Removing php-google-recaptcha (1.2.3-1) ...
Removing php-phpmyadmin-motranslator (5.0.0-1) ...
Removing php-phpmyadmin-shapefile (2.1-3) ...
Removing php-phpmyadmin-sql-parser (4.6.1-2) ...
Removing php-phpseclib (2.0.23-2) ...
Removing php-symfony-expression-language (4.3.8+dfsg-1ubuntu1) ...
Removing php-symfony-cache (4.3.8+dfsg-1ubuntu1) ...
Removing php-symfony-cache-contracts (1.1.8-1) ...
Removing php-psr-cache (1.0.1-2) ...
Removing php-symfony-service-contracts (1.1.8-1) ...
Removing php-psr-container (1.0.0-2) ...
Removing php-psr-log (1.1.2-1) ...
Removing php-symfony-var-exporter (4.3.8+dfsg-1ubuntu1) ...
Removing php-twig-extensions (1.5.4-1) ...
Removing php-twig (2.12.5-1) ...
Removing php7.4 (7.4.3-4ubuntu2.7) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.7) ... Перезапускаем демон apache2:
sudo service apache2 restart Возможные ошибки
В процессе изменения типа аутентификации учетной записи root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; Возможно возникновение ошибки:
Plugin caching_sha2_password in not loaded Это вызвано тем, что в свежих версиях mysql тип аутентификации по умолчанию:
caching_sha2_password Это не позволит произвести удаленное подключение к mysql и вызовет ошибку плагина:
caching_sha2_password Возможным вариантом решения является установка типа аутентификации:
mysql_native_password Команда выглядит так:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; Теперь возможен доступ пользователя к mysql с localhost.
Для подключения с нескольких хостов необходимо изменить команду:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; Для применения изменений необходимо использовать:
FLUSH PRIVILEGES;
18 июля, 2022 5:28 пп
Cloud Server
, mySQL
Требования
- Сервер с пользователем sudo и настроенным брандмауэром ufw (мы используем сервер Ubuntu 20.04, настроенный по этому мануалу
). - Аккаунт облачного провайдера. Если у вас его нет, зарегистрируйте новый аккаунт.
- Кластер управляемой базы данных MySQL, развернутый в облаке.
- Опционально – зарегистрированный домен для подключения через SSL. Вы можете приобрести домен на Namecheap
, получить его бесплатно на Freenom
или воспользоваться услугами любого другого регистратора. Убедитесь, что записи DNS для вашего домена ведут к IP-адресу вашего сервера. Также можно установить SSL/TLS сертификаты, инструкции вы найдете в мануале Создание сертификата Let’s Encrypt для Apache в Ubuntu 20.04.
1: Установка phpMyAdmin и настройка Apache
Сначала войдите на свой сервер Ubuntu и обновите его, установив последние пакеты:
sudo apt update
В процессе установки вам будет предложено выбрать веб-сервер: Apache
или Lighttpd
. Выберите apache2.

Далее вам будет предложено использовать dbconfig-common для настройки базы данных на вашем сервере.

sudo nano /etc/apache2/apache2.conf
Добавьте в конец файла следующую строку:
. # phpMyAdmin Configuration Include /etc/phpmyadmin/apache.conf
2: Настройка доступа к БД MySQL через phpMyAdmin
Откройте панель управления вашего облачного провайдера и откройте вкладку управляемой БД MySQL. Найдите раздел, содержащий сведения о подключении (у каждого провайдера он называется по-своему, ищите что-то типа Connection Details). Также вы можете загрузить файл ca-certificate.crt.
В конец файла добавьте следующие строки, в которых содержится информация о вашей БД:
. $i++; $cfg['Servers'][$i]['host'] = 'your_database_cluster_hostname.b.db.'yourcloudserver.com'; $cfg['Servers'][$i]['port'] = '25060'; $cfg['Servers'][$i]['ssl'] = true; $cfg['Servers'][$i]['ssl_ca'] = '/etc/phpmyadmin/ca-certificate.crt';
Сохраните и закройте конфигурационный файл.
Затем перезапустите apache2 с помощью этой команды:
sudo service apache2 restart
После входа в базу данных вы увидите следующий экран:

Итоги
Tags: Apache
, MySQL
, phpMyAdmin
Как пользоваться Phpmyadmin
Это если вы ничего не меняли. Просто откройте этот адрес в браузере.
1. Авторизация

2. Первоначальная настройка


3. Интерфейс
Теперь пора более детально остановиться на интерфейсе программы. Перед вами открылось главное окно, оно выглядит вот так:

Условно его можно разделить на несколько частей:
- Боковая панель
— находится слева, тут отображается вертикальный список доступных для вас в данный момент баз данных, а также их таблиц. Вы можете развернуть каждую из них чтобы посмотреть таблицы. Также тут есть быстрые кнопки — обновить, домой и так далее; - Главное меню
— это полоска, которая находится под именем сервера. Именно с помощью нее мы будем перемещаться по различным возможностям программы, таким как базы данных, пользователи, экспорт и импорт и так далее; - Рабочая область
— тут отображается рабочая информация, сейчас, в главном окне тут находится информация о сервере, в других же случаях может находится содержимое базы данных или поле ввода текста.
Как видите, все довольно просто, несмотря на то, что на первый взгляд, интерфейс может показаться сложным.
4. Создание базы данных
Теперь нас интересует первая вкладка меню. Базы данных. Здесь вы увидите список доступных вам баз данных, а также поле для создания новой базы над ними. Введите в это поле имя для новой базы, а затем выберите кодировку utf8-general-ci:

После этого нажмите кнопку «Создать». Будет создана новая база данных, и вы сразу перейдете в нее. Теперь вы управляете только ею и главное меню немного изменилось.
5. Создание таблиц

На следующем шаге нам предстоит выбрать типы данных для столбцов и их имена:

Я создам четыре поля:
- id
— формат INT, длина 255, AUTOINDEX, автоматически увеличивается для каждой новой записи, PRIMARY — используется как первичный ключ для ускорения поиска по этому полю; - time
— формат TIMESTAMP — временная метка в формате Unix, CURRENT_TIMESTAMP — автоматически устанавливается текущее время когда создается запись в этом поле; - name
и lastname
— обычные строки VARCHAR длиной 1024 символа;
Внизу окна можно еще выбрать тип движка таблиц. Самый популярный — InnoDB, он самый производительный, но требователен к ресурсам. Можно еще выбрать AriaDB, но тогда производительность упадет. Когда завершите, нажмите кнопку «Сохранить» в самом низу:

Далее вы попадете на страницу этой таблицы и меню снова изменится. Тут вы можете настроить связи между таблицами, изменить ее структуру, добавить новые поля, выполнить поиск и вставить новые записи.
6. Вставка записей

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

Когда завершите, пролистайте в самый низ и нажмите «Вперед»
. Здесь же можно установить количество полей, которые вы хотите добавить.
Далее перед вами откроется либо редактор SQL с только что выполненным запросом, либо обзор полей таблицы:


7. Выполнение SQL запроса

Сразу же тут вы найдете различные шаблоны для запросов.

Или можете ввести нужный запрос сами, вручную. Для выполнения запроса нажмите «Вперед». Перед вами откроется результат запроса, если были получены какие-либо поля, то они будут выведены, если же нет, то просто будет выведено сообщение о том что все прошло успешно.
8. Создание пользователя


Здесь отображен список всех пользователей, если вы авторизовались не от имени root, то, возможно, вам придется выйти и авторизоваться заново. Под списком есть ссылка «Добавить учетную запись пользователя»
:



Чуть ниже вы можете создать базу данных с таким же именем, как у пользователя, или же настроить для него глобальные привилегии. Когда завершите, нажмите «Вперед»
.
9. Привилегии пользователя
Еще нам нужно дать пользователю возможность работать только с одной базой данных. Поэтому после создания пользователя откройте его в списке и перейдите на вкладку «База данных»
:
Здесь вам нужно выбрать базу данных, к которой у пользователя будет доступ, например, site-control:

Дальше нажмите «Вперед»
. На следующем экране вам нужно отметить права, которые будут у пользователя на эту базу, можно просто нажать «Отметить все»
:

На вкладке «Глобальные»
вы все еще можете изменить глобальные привилегии пользователя.

10. Экспорт и импорт

В быстром режиме можно выполнить резервное копирование всех баз в формате SQL. Просто нажмите «Вперед»
:

Для импорта перейдите на вкладку «Импорт»
и выберите файл *.sql из которого вы хотите импортировать команды.
Выводы
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
1. Установка нужных компонентов
sudo apt -y install php7.4 php7.4-cli php7.4-fpm php7.4-json php7.4-pdo php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php-pear php7.4-bcmath

На момент написания статьи (1 августа 2021) актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 (по состоянию на 29 июля 2021 года).
2. Установка phpMyAdmin
Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Так как веб-сервер Nginx отсутствует в списке, в таком случае отмечать ничего не надо. Нажмите на клавишу Tab
далее на Enter
чтобы продолжить установку:



Далее программа попросит вас повторить заданный ранее пароль:

3. Настройка PhpMyAdmin в Nginx с помощью символической ссылки
sudo nano /etc/php/7.4/fpm/php.ini
Найдите пункт cgi.fix_pathinfo = 1
и измените его значение на 0 чтобы получилось cgi.fix_pathinfo = 0
:

sudo nano /etc/nginx/sites-available/default

После внесения изменений перезапустите Nginx, чтобы применить внесенные изменения:
sudo systemctl restart nginx

4. Настройка Nginx для PhpMyAdmin с помощью root
Это альтернативный способ настройки Nginx. Для его работы вам достаточно добавить код ниже в конфигурацию любого виртуального хоста. Например, того же /etc/nginx/sites-enabled/default
:
sudo nano /etc/nginx/sites-enabled/default
location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; }
} sudo nginx -t
sudo systemctl restart nginx
5. Настройка Nginx для PhpMyadmin с помощью alias
sudo nano /etc/nginx/sites-available/default
location /phpmyadminff { alias /usr/share/phpmyadmin/; location ~ /(libraries|setup) { return 404; } location ~ ^/phpmyadminff/(.*\.php)$ { alias /usr/share/phpmyadmin/$1; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; } location ~* ^/phpmyadminff/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { alias /usr/share/phpmyadmin/$1; }
} Здесь аналогично предыдущему пункту вам необходимо сохранить изменения, проверить конфигурацию веб-сервера и перезапустить Nginx.
6. Создание пользователя для phpMyAdmin
sudo mysql -u root -p
После ввода пароля root пользователя MySQL, введите следующие команды:
При помощи первых двух команд был создан новый пользователь с именем test, ему был присвоен пароль и предоставлены все возможные привилегии (такие как создание, удаление, редактирование баз данных, таблиц и т.д.). Третья команда обновляет заданные ранее привилегии.


7. Защита phpMyAdmin
Чтобы добавить аутентификацию, необходимо создать файл для хранения учетных записей, которые будут использоваться для аутентификации. В Nginx пароли шифруются при помощи встроенной функции crypt. Для шифрования паролей будет использоваться пакет OpenSSL, который уже должен быть установлен на вашем сервере. Для проверки на наличии данной программы введите в терминале команду openssl:

Если пакет у вас присутствует, то приглашение командной строки изменится на OpenSSL. Если пакет у вас отсутствует, установите его при помощи команды:
sudo apt -y install openssl
Для создания зашифрованного пароля введи в терминале команду:

На первом этапе вам будет предложено придумать и ввести пароль. После его ввода его необходимо ввести еще раз. Далее утилита отобразит зашифрованную версию пароля. Скопируйте значение, которое получилось на выходе, так как оно будет использоваться далее. Теперь создайте файл аутентификации. Для примера назовем этот файл pma_pass и поместим его в каталог конфигурации Nginx:
sudo nano /etc/nginx/pma_pass
В этом файле укажите имя пользователя, которое будет использоваться для аутентификации, далее поставьте символ двоеточие (:), и вставьте зашифрованную версию пароля, которую вы получили на выходе от команды openssl passwd
. В итоге файл должен быть приведен к следующему виду:

Здесь test1
это имя пользователя, которое будет использоваться для аутентификации, а avltQWsa5wSSw
– зашифрованный пароль который вы получили от команды openssl passwd.
Сохраните и закройте файл. Теперь необходимо прописать настройки аутентификации. В качестве настройки будет использовать конфигурационный файл по умолчанию, который находиться в /etc/nginx/sites-available
. Откройте данный файл для редактирования при помощи любого текстового редактора:
sudo nano /etc/nginx/sites-available/default

Всегда, как только вы внесли какие-либо изменения в конфигурационные файлы Nginx, запускайте команду для проверки файлов на наличие ошибок:
sudo nginx -t
Если в выводе команды отобразились следующие строчки:

Это означает что ошибок нет. В противном случае будет выведен текст с ошибкой, а также указан номер строки, в которой была обнаружена ошибка. Далее перезапустите веб-сервер nginx:
sudo systemctl restart nginx

Как удалить phpMyAdmin с Ubuntu
Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.
Выводы
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
sudo apt -y install php-mbstring

Установщик спросит вас, какой веб-сервер будет использоваться для работы программы. Отметьте с помощью кнопки Пробел
пункт apache2
, а затем с помощью Tab
и Enter
нажмите кнопку Ок
:



Далее программа попросит вас повторить заданный ранее пароль:
sudo apt -y install openssl
sudo systemctl restart nginx
Настройка phpMyAdmin в Ubuntu 
sudo mysql -u root -p

1. Создание пользователя для phpMyAdmin
После ввода пароля root пользователя MySQL, введите следующие команды:
При помощи первых двух команд был создан новый пользователь с именем test, ему был присвоен пароль и предоставлены все возможные привилегии (такие как создание, удаление, редактирование баз данных, таблиц и т.д.). Третья команда обновляет заданные ранее привилегии.

sudo nano /etc/nginx/sites-available/default
2. Защита phpMyAdmin

Данные строки означают: sudo systemctl restart nginx
AuthType Basic
— устанавливает тип аутентификации, мы указываем, что будем использовать пароль;
AuthName
— задает сообщение, которое будет видеть пользователь;
AuthUserFile
— файл, откуда программа будет брать имена пользователей и пароли;
sudo nano /etc/nginx/sites-enabled/default Require
— указываем, что аутентификация обязательна.
Далее создайте новый пароль для своего пользователя:
sudo nginx -t
Чтобы настройки из файла .htaccess заработали в этой директории, необходимо, чтобы для неё в файле /etc/apache2/apache2.conf
значениеAllowOverride
было
sudo nano /etc/nginx/sites-available/defaultAll:
Сохраните изменения и закройте файл. Далее перезапустите apache:
Как удалить phpMyAdmin с Ubuntu
После выполнения этой команды программа будет удалена с вашего компьютера.
Выводы
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

