Установка phpmyadmin centos 7

Установка PHP 5.6 с оптимизацией opcache

Устанавливаем PHP 5.6 c opcache и модулем для работы с mysqlnd

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php56w php56w-opcache php56w-mysqlnd

Для проверки работы Apache и php временно открываем порт 8080 для внешних подключений (после перезагрузки он будет снова закрыт). В Centos 7 вместо привычной всем IPtables установлена более современная служба файрвола Firewalld.

firewall-cmd --add-port=8080/tcp

В папке /var/www/html создаем файл phpinfo.php со следующим содержимым.

<?php
phpinfo();
?>

Заходим на сервер из любого браузера по нашему IP адресу с указанием порта 8080 — http://IP-сервера:8080/phpinfo.php . Мы должны увидеть информацию о php, apache и установленных модулях.

Настройка 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
user имя пользователя
password пароль

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

<Directory /usr/share/phpMyAdmin/>
  AddDefaultCharset UTF-8
  Require all granted
  AllowOverride All
</Directory>

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

Проделаем то же самое на 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/.

Introduction

phpMyAdmin is a free and open-source software written in PHP programming language to provide you the ability to take control of your MySQL database over the internet. phpMyAdmin supports a wide range of operations on MySQL and MariaDB using a very simple and elegant user interface while you still have the ability to directly execute any SQL statement. here are some of the main benefits of phpMyAdmin:

  • Import data from CSV and SQL
  • Administrating multiple servers
  • Creating PDF graphics of the database layout
  • Searching globally in a database or a subset of it
  • working with different operating systems

We are assuming that you have root permission, otherwise, you may start commands with “sudo”.

Один PhpMyAdmin для разных серверов

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

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

/* Server: wp  */
$i++;
$cfg = 'wp'; - отображение в меню выбора
$cfg = '10.10.0.3'; - ip сервера с убаленой db
$cfg = '';
$cfg = '';
$cfg = 'cookie';
$cfg = '';
$cfg = '';

Для реализации этой возможности необходимо сделать еще две вещи:

  1. Добавить параметр bind-address=0.0.0.0 в конфигурационном файле самого сервера баз MariaDB разрешающий подключатся с любого адреса (или укажите конкретный IP) в разделе  ;
  2. Сделать необходимые права для пользователя баз данных.

О том как выполнить данные требования почитайте в статье .

Step 5: Restrict Unauthorized Access to phpMyAdmin (Optional)

You should now have a working phpMyAdmin utility. This section will help you prevent unauthorized access to sensitive databases.

Allow phpMyAdmin Only From a Specific IP Address

1. Open the phpmyadmin.conf file in a text editor (we will be using nano):

2. Find the following sections:

3. Replace these lines with the following:

4. Save and close the file.

Note: Replace your_system’s_ip_address with the system’s actual IP address. If you have multiple systems to allow, add a line for each IP address.

Add an Extra Password Authentication

1. Create a new authentication file. In a terminal window, enter the following:

2. You are prompted to enter and confirm an admin password. Do so, and make a note of the password.

3. Next, update Apache to use .htpasswd by editing /etc/httpd/conf.d/phpmyadmin.conf as follows:

4. Just underneath the line labeled , add the following lines:

5. Save the file and exit.

6. Finally, restart Apache:

Access phpMyAdmin with Updated Credentials

1. Browse back to localhost/phpmyadmin.

2. Enter the newly-defined admin username and password.

It should take you to the main login screen as seen at the end of the previous section.

Conclusion

You should now have a working installation of phpMyAdmin on a CentOS 8 system. Use this graphic utility to manage your MySQL databases.

Step Two — Secure your phpMyAdmin Instance

The phpMyAdmin instance installed on our server should be completely usable at this point. However, by installing a web interface, we have exposed our MySQL system to the outside world.

Even with the included authentication screen, this is quite a problem. Because of phpMyAdmin’s popularity combined with the large amount of data it provides access to, installations like these are common targets for attackers.

We will implement two simple strategies to lessen the chances of our installation being targeted and compromised. We will change the location of the interface from to something else to sidestep some of the automated bot brute-force attempts. We will also create an additional, web server-level authentication gateway that must be passed before even getting to the phpMyAdmin login screen.

Changing the Application’s Access Location

In order for our Nginx web server to find and serve our phpMyAdmin files, we created a symbolic link from the phpMyAdmin directory to our document root in an earlier step.

To change the URL where our phpMyAdmin interface can be accessed, we simply need to rename the symbolic link. Move into the Nginx document root directory to get a better idea of what we are doing:

As you can see, we have a symbolic link called in this directory. We can change this link name to whatever we would like. This will change the location where phpMyAdmin can be accessed from a browser, which can help obscure the access point from hard-coded bots.

Choose a name that does not indicate the purpose of the location. In this guide, we will name our access location . To accomplish this, we will just rename the link:

Now, if you go to the previous location of your phpMyAdmin installation, you will get a 404 error:

However, your phpMyAdmin interface will be available at the new location we selected:

Setting up a Web Server Authentication Gate

The next feature we wanted for our installation was an authentication prompt that a user would be required to pass before ever seeing the phpMyAdmin login screen.

Fortunately, most web servers, including Nginx, provide this capability natively. We will just need to modify our Nginx configuration file with the details.

Before we do this, we will create a password file that will store our the authentication credentials. Nginx requires that passwords be encrypted using the function. The OpenSSL suite, which should already be installed on your server, includes this functionality.

To create an encrypted password, type:

You will be prompted to enter and confirm the password that you wish to use. The utility will then display an encrypted version of the password that will look something like this:

Copy this value, as you will need to paste it into the authentication file we will be creating.

Now, create an authentication file. We will call this file and place it in the Nginx configuration directory:

Within this file, you simply need to specify the username you would like to use, followed by a colon (:), followed by the encrypted version of your password you received from the utility.

We are going to name our user , but you should choose a different username. The file for this guide looks like this:

Save and close the file when you are finished.

Now, we are ready to modify our Nginx configuration file. Open this file in your text editor to get started:

Within this file, we need to add a new location section. This will target the location we chose for our phpMyAdmin interface (we selected in this guide).

Create this section within the block, but outside of any other blocks. We will put our new location block below the block in our example:

Within this block, we need to set the value of a directive called to an authentication message that our prompt will display to users. We do not want to indicate to unauthenticated users what we are protecting, so do not give specific details. We will just use “Admin Login” in our example.

We then need to use a directive called to point our web server to the authentication file that we created. Nginx will prompt the user for authentication details and check that the inputted values match what it finds in the specified file.

After we are finished, the file should look like this:

Save and close the file when you are finished.

To implement our new authentication gate, we must restart the web server:

Now, if we visit our phpMyAdmin location in our web browser (you may have to clear your cache or use a different browser session if you have already been using phpMyAdmin), you should be prompted for the username and password you added to the file:

Once you enter your credentials, you will be taken to the normal phpMyAdmin login page. This added layer of protection will help keep your MySQL logs clean of authentication attempts in addition to the added security benefit.

Скачивание и распаковка архива

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

yum -y install wget

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

cd /var/www/pma.sevo44.ru
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.zip

Установим без вопросов пакет который нам даст возможность распаковать архивы zip:

yum install -y unzip

Распакуем полученный архив в необходимое место:

unzip /var/www/pma.sevo44.ru/phpMyAdmin-4.9.1-all-languages.zip -d /var/www/pma.sevo44.ru/

Скопируем все файлы из папки phpMyAdmin-4.9.1-all-languages в папку www:

cp -rp /var/www/pma.sevo44.ru/phpMyAdmin-4.9.1-all-languages/* /var/www/pma.sevo44.ru/www/

Дадим необходимые права для Nginx на все папки и файлы:

chown -R nginx:nginx /var/www/pma.sevo44.ru

Все данные готовы! Дальше необходимо настроить Nginx для работы PhpMyAdmin.

6 Получение поддержки MySQL в PHP

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

yum search php

Выберите те, которые вам нужны, и установите их так:

yum -y install php-mysqlnd php-pdo

На следующем шаге я установлю некоторые распространенные модули PHP, необходимые для систем CMS, такие как WordPress, Joomla и Drupal:

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

Теперь перезапустите веб-сервер Apache:

systemctl restart httpd.service

Теперь перезагрузите http://192.168.0.100/info.php в вашем браузере и снова прокрутите вниз до раздела модулей. Теперь вы должны найти много новых модулей, таких как curl и т.д.

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

rm /var/www/html/info.php

Настройка PhpMyAdmin

1) Идем в корневую в директорию нашего PMA и создаем там папку config с правами на запись (chmod 777)

cd /var/www/html/pma
mkdir -p /config
chmod 777 /config

2)Заходим в скрипт настройки нашего PMA https://192.168.1.50/pma/setup/. Жмем на кнопку новый сервер. На первой вкладке ставим галку Использовать SSL. На вкладке Идентификация выбираем тип http.

Хранение конфигурации. Тут везде жмем на карандашик.

В новой вкладке, не закрывая настройки конфигурации, заходим в наш PMA под пользователем root https://192.168.1.50/pma/. Идем в Базы данных. Создаем базу phpmyadmin. Она появится в списке. Жмем Привилегии => Добавить нового пользователя.
Имя — pma.
Хост — локальный.
Пароль — Генерировать(или укажите свой).
Копируем это имя и пароль в нашу вкладку с настройками конфигурации. Опять возвращаемся на вкладку с настройками пользователя, жмем кнопку ок. Далее на этой странице в левой колонке выбираем базу phpmyadmin а в верхнем меню на вкладку SQL. Вставляем туда текст из файла
/var/www/html/sql/create_tables.sql, который находится в папке с PMA, жмем ок.

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

Оказываемся снова на главной странице настроек, где появился наш сервер. Выбираем язык по умолчанию, наш сервер (localhost ). Далее нажимаем кнопки Сохранить и Скачать. Сохраняем наш файл конфигурации к себе на компьютер, а затем закачиваем его в папку с PhpMyAdmin.

3) Удаляем, созданную нами, папку config.

4) Далее заходим в phpmyadmin уже с новой схемой авторизации. которую мы задали с помощью нашего конфигурационного файла и идем в Дополнительные настройки. Там уже на свой вкус настраиваем вид отображения. Эти настройки будут храниться в таблицах базы phpmyadmin, которую мы создали.

2 Установка MySQL / MariaDB

MariaDB — это MySQL форк оригинального разработчика MySQL Монти Видениуса. MariaDB совместима с MySQL, и я решил использовать здесь MariaDB вместо MySQL. Запустите эту команду, чтобы установить MariaDB с yum:

yum -y install mariadb-server mariadb

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

systemctl start mariadb.service
systemctl enable mariadb.service

Установите пароли для учетной записи root MySQL:

mysql_secure_installation
# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <--ENTER
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/n] 
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
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/n] <--ENTER
 ... 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/n] <--ENTER
 ... 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/n] <--ENTER
 - 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/n] <--ENTER
 ... 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!
#

1: Добавление репозитория EPEL

Пакет phpMyAdmin не включен в стандартные репозитории CentOS, но его можно найти в репозитории EPEL (Extra Packages for Enterprise Linux), разработанном Fedora Projects.

Чтобы добавит EPEL в список исходников yum, нужно загрузить конфигурационный файл репозитория. Для этого запустите команду:

Обратите внимание: несмотря на то, что данный файл относится к 64-битному репозиторию, он является архитектурно-независимым и может использоваться и для  32-, и для 64-битных установок. Итак, теперь файл загружен в домашний каталог

Установите его, набрав:

Итак, теперь файл загружен в домашний каталог. Установите его, набрав:

Теперь менеджер пакетов знает о новом репозитории EPEL и может запрашивать у него пакеты.

Чтобы убедиться, что все прошло успешно, наберите:

Как видите, в данном списке присутствует и EPEL.

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

Установка NGINX

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

yum install nginx

Внесем небольшую корректировку в файл nginx.conf:

vi /etc/nginx/nginx.conf

http {
    …
    server_names_hash_bucket_size 64;
    ….
}

* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.

Разрешаем автозапуск сервиса и запустим его:

systemctl enable nginx

systemctl start nginx

Проверим, что веб-сервер работает. Для этого открываем браузер на другом компьютере, который находится в одной сети и вводим в адресной строке IP-адрес сервера. В итоге мы должны увидеть заголовок «Welcome to nginx!»:

* обратите внимание, что данное приветствие может иметь и другой вид. Для настройки http/2 читайте соответствующую статью

Для настройки http/2 читайте соответствующую статью.

1. Установите phpMyAdmin на CentOS 8

Шаг 1 Первым шагом будет установка веб-сервера Apache, для этого мы выполним следующее:

 ням установить httpd -y 

Шаг 2 Как только этот процесс закончится, мы увидим следующее:

Шаг 3 Мы проверим состояние веб-сервера в CentOS 8, запустив:

 статус systemctl httpd 

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

 systemctl запускает httpd 

Шаг 4 Чтобы отключить Apache, мы должны выполнить следующее:

 systemctl отключить httpd 
 systemctl stop httpd 
 systemctl включить httpd 

Шаг 5 Чтобы убедиться, что Apache работает должным образом, мы должны знать IP-адрес сервера, это можно узнать с помощью команды «ip add»:

Шаг 6 Мы включим и авторизуем службу Apache в брандмауэре CentOS 8, для них мы выполним следующие строки:

 firewall-cmd --permanent --add-port = 80 / tcp firewall-cmd --permanent --add-port = 443 / tcp 
 firewall-cmd –reload 

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

 http: // IP_address 

Шаг 8 Результат должен быть похож на это:

Start phpMyAdmin 4.4.9 Installation:

After we had confirmed that our basic environment to setup phpMyAdmin installation is fine, let’s proceed with the following steps to setup phpMyAdmin.

STEP 1: Download phpMyAdmin 4.4.9 Package

Many operating systems already includes with its package but unfortunately in CentOs 7.1 its not available by default in its repositories. So we can install it with two different methods, one is to enable the EPEL repository first and then install it using following YUM commands.

The second method is to download the latest release from its official web link.So, we will follow the second method to download the latest release of phpMyAdmin 4.4.9 in tar.gz package.

STEP 2: Extract phpMyAdmin 4.4.9 Package

We will extract this .tar.gz package into the document root directory of Nginx to create its virtual host after that.

Now change its name to a user friendly name with MV command. Let’s move html directory first and change its name as.

STEP 3: Configure phpMyAdmin Virtual Host

In order to access phpMyAdmin over the web we need to configure its virtual host. Create an new file within the default configuration directory of Nginx.

Установка PhpMyAdmin (PMA)

Ставить будем вручную. Для этого нам потребуется менеджер загрузок wget.
Идем на http://www.phpmyadmin.net/downloads и копируем ссылку на самую последнюю мультиязычную версию PhpMyAdmin со сжатием .zip (На данный момент это — https://files.phpmyadmin.net/phpMyAdmin/4.4.15.7/phpMyAdmin-4.4.15.7-all-languages.zip).
Идем в /var/www/html/:

cd /var/www/html/

Скачиваем PMA:

wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15.7/phpMyAdmin-4.4.15.7-all-languages.zip

В директории появится архив  phpMyAdmin-4.6.3-all-languages.zip, распаковываем его:

unzip  phpMyAdmin-4.4.15.7-all-languages.zip

Переименуем директорию phpMyAdmin-4.4.15.7-all-languages в pma:

mv  phpMyAdmin-4.4.15.7-all-languages pma

Удалим архив  phpMyAdmin-4.4.15.7-all-languages.zip т.к. он нам больше не нужен:

rm phpMyAdmin-4.4.15.7-all-languages.zip

Установка phpMyAdmin

Установка может быть выполнена из репозитория (для CentOS 7) или путем загрузки портала с сайта разработчика (CentOS 8 или CentOS 7). Рассмотрим оба варианта.

а) Установка из репозитория

Данный вариант доступен только для CentOS 7. 

Устанавливаем расширенный репозиторий EPEL:

yum install epel-release

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

yum install phpmyadmin

* если мы увидим ошибку «пакета с названием phpmyadmin не найдено», проверяем еще раз наличие установленного репозитория epel.

б) Установка вручную

Данный способ универсальный — он подходит для CentOS 8 и CentOS 7.

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

yum install wget unzip

Переходим на сайт разработчика phpMyAdmin и копируем ссылку на нужную нам версию, например, последнюю:

Воспользовавшись скопированной ссылкой, скачиваем архив с установочными файлами:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.zip

* на момент написания инструкции, последняя стабильная версия была 4.9.1.

Распаковываем скачанный архив:

unzip phpMyAdmin-*-all-languages.zip

Создаем каталог для phpmyadmin, например:

mkdir /usr/share/phpMyAdmin

… и переносим в него содержимое распакованного архива:

mv phpMyAdmin-*-all-languages/* /usr/share/phpMyAdmin/

Задаем владельца для каталога:

chown -R apache:apache /usr/share/phpMyAdmin

* как правило, сервис, которых обрабатываем php-запросы работает от пользователя apache.

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

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