Как установить и защитить phpmyadmin с помощью apache в debian 9
Содержание:
- Шаг 2 — Установка MySQL
- Установка phpmyadmin
- Установка phpMyAdmin
- Step 3 — Securing Your phpMyAdmin Instance
- Настраиваем виртуальные хосты (VirtualHost)
- Apache
- Шаг 2 – Делаем phpMyAdmin безопаснее
- Шаг 3 — Установка PHP
- Prerequisites
- Step 2 — Adjusting User Authentication and Privileges
- Устанавливаем OpenServer на компьютер
Шаг 2 — Установка MySQL
Теперь, когда наш веб-сервер установлен и запущен, пора установить MySQL. MySQL это система управления базой данных. Она организует и обеспечит доступ к базам данных, в которых ваш сайт может хранить информацию.
Мы можем вновь использовать для загрузки и установки программного обеспечения. В этот раз мы также установим некоторые вспомогательные пакеты, которые помогут нам в налаживании взаимодействия между компонентами:
Внимание
В данном случае вам нет необходимости предварительно выполнять команду , т.к. мы выполняли ее недавно при установке Apache, и индекс пакетов на вашем комьпютере уже должен быть обновлен
Вам будет показан список пакетов, которые будут установлены, а также сколько места на диске они займут. Нажмите Y для продолжения установки.
В процессе установки ваш сервер попросит вас задать и подтвердить пароль для пользователя “root” в MySQL. Это администраторский аккаунт в MySQL, который имеет расширенные права. Рассматривайте его как аналог root-аккаунта для самого сервера (однако тот, который вы конфигурируете в данный момент, подходит только для MySQL). Задайте надёжный уникальный пароль, не оставляйте пароль не заданным.
После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:
Скрипт запросит пароль, который вы только что задали для root пользователя в MySQL. Далее вам будет предложено сконфигурировать плагин валидации паролей ().
Внимание: решение включать плагин валидации паролей или нет носит субъективный характер. При включении все пароли, которые не удовлетворяют определённым критериям безопасности, будут отвергаться MySQL с сообщением об ошибке
Это может вызывать проблемы, если вы используете “слабые” пароли совместно с программным обеспечением, которое конфигурирует профили пользователей MySQL, например, пакеты Ubuntu для phpMyAdmin. Вы можете оставить валидацию паролей отключенной, но в этом случае вам следует всегда использовать “сильные” уникальные пароли для пользователей базы данных.
Введите y для включения плагина или что-нибудь другое для продолжения без его включения:
Если вы включили валидацию паролей, вам будет предложено установить уровень надёжности паролей при валидации. Имейте в виду, что при выборе значения 2 (самый строгий уровень валидации), вы будете получать ошибки при попытке задать пароль без цифр, букв в верхнем и нижнем регистре, а также без специальных символов, а также при попытке использовать пароль, основанный на распространённых словах, которые уязвимы для подбора паролей по словарю.
Если вы включили валидацию паролей, вам будет показан уровень надёжности заданного вами ранее пароля root пользователя, а также вам будет предложено изменить этот пароль. Если вы не хотите менять пароль, введите n или no:
На все последующие вопросы просто вводите Y и нажимайте клавишу ENTER для выбора настроек по умолчанию. При этом удалятся некоторые тестовые пользователи и базы данных, будет отключена возможность удаленного доступа с учетной записью root-пользователя, и все изменения будут немедленно применены в MySQL.
Теперь ваша система управления базами данных установлена и мы можем двигаться дальше.
Установка 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 <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 Require all granted </Directory> <Directory /usr/share/phpMyAdmin/setup/> Require all granted </Directory> <Directory /usr/share/phpMyAdmin/libraries/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/lib/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/frames/> Order Deny,Allow Deny from All Allow from None </Directory>
Я удалил все лишнее из файла, в том числе настройки, которые относились к версии apache 2.2. Перезапускаем httpd:
# systemctl restart httpd
Заходим по адресу http://ip-адрес-сервера/phpmyadmin. Вы должны увидеть страницу логина:
В этот момент я понял, что мне некуда логиниться. На тестовом сервере, где я готовлю статью, нет 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.
Установка phpMyAdmin
Нет ничего проще, чем установить PMA на Linux. Я опишу как сделать это на Ubuntu 14.x в Digital Ocean. Зайдите на сервер через SSH.
Во время установки можете использовать стандартные настройки или подлатать их под себя.
Если вы ограничите доступ MySQL только через localhost (что вы должны сделать), то для хакера база будет вне зоны досягаемости. Конечно он может попытаться подключиться через SSH или осуществит атаку посредством SQL инъекций, но напрямую атаковать базу данных не сможет
Как только вы установите PMA, то данный инструмент становится потенциально уязвим для атак, поэтому меры предосторожности не повредят
Есть несколько мер, которые я бы посоветовал при конфигурировании PMA.
- Используйте очень надежные пароли для всех учетных записей MySQL, особенно для пользователя root. Например, 25 символов для пароля.
- Для каждого из сайтов, используйте различные учетные записи и привилегии. Таким образом, если один пароль будет украден, пострадает только одна база данных.
- Меняйте стандартный URL доступа к PMA. Таким образом люди не смогут достучаться до него по адресу http://yourblog.com/phpmyadmin. Хотя данная мера не очень эффективна, она всё же увеличивает безопасность.
Добваляем алиас в файл :
Перезагружаем apache:
Теперь PMA будет доступен по адресу http://yourblog.com/myobscuredpma.
Если вам необходимо изменить пароль вашего phpMyAdmin, измените содержимое файла :
4. Настройте веб-аутентификацию для доступа к PMA. После этого вам потребуется ввести дополнительный пароль:
Для настройки ограничений пользователя apache следуйте этим шагам:
Установите из пакета :
Создайте директорию для хранения ваших паролей:
Добавьте в поддержку для PMA:
Далее добавьте :
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All
Настраиваем дополнительную аутентификацию:
AuthType Basic AuthName "Login Required for Access" AuthUserFile /etc/htpasswd/.htpasswd Require valid-user
Укажите пароль:
И перезапустите Apache:
Теперь для доступа к PMA вам необходимо будет ввести ещё один пароль, как показано выше.
Step 3 — Securing Your phpMyAdmin Instance
Because of its ubiquity, phpMyAdmin is a popular target for attackers, and you should take extra care to prevent unauthorized access. One of the easiest ways of doing this is to place a gateway in front of the entire application by using Apache’s built-in authentication and authorization functionalities.
To do this, you must first enable the use of file overrides by editing your Apache configuration file.
Use your favorite text editor to edit the linked file that has been placed in your Apache configuration directory. This example uses :
Add an directive within the section of the configuration file, like this:
/etc/apache2/conf-available/phpmyadmin.conf
When you have added this line, save and close the file. If you used to edit the file, do so by pressing , , and then .
To implement the changes you made, restart Apache:
Now that you have enabled use for your application, you need to create an file to actually implement some security.
In order for this to be successful, the file must be created within the application directory. You can create the necessary file and open it in your text editor with root privileges by typing:
Within this file, enter the following information:
/usr/share/phpmyadmin/.htaccess
Here is what each of these lines mean:
- : This line specifies the authentication type that you are implementing. This type will implement password authentication using a password file.
- : This sets the message for the authentication dialog box. You should keep this generic so that unauthorized users won’t gain any information about what is being protected.
- : This sets the location of the password file that will be used for authentication. This should be outside of the directories that are being served. We will create this file shortly.
- : This specifies that only authenticated users should be given access to this resource. This is what actually stops unauthorized users from entering.
When you are finished, save and close the file.
The location that you selected for your password file was . You can now create this file and pass it an initial user with the utility:
You will be prompted to select and confirm a password for the user you are creating. Afterwards, the file is created with the hashed password that you entered.
If you want to enter an additional user, you need to do so without the flag, like this:
Now, when you access your phpMyAdmin subdirectory, you will be prompted for the additional account name and password that you just configured:
After entering the Apache authentication, you’ll be taken to the regular phpMyAdmin authentication page to enter your MySQL credentials. This setup adds an additional layer of security, which is desireable since phpMyAdmin has suffered from vulnerabilities in the past.
Настраиваем виртуальные хосты (VirtualHost)
(только для локальных хостов) создать файл vhosts.sh со следующим содержимым:
#!/bin/bash
echo «Creating Virtual Host»
cd /etc/apache2/sites-available
cat <<EOF >> «$1.conf»
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName $1
ServerAlias www.$1
DocumentRoot «/var/www/$1»
<Directory /var/www/$1>
Options All
AllowOverride All
</Directory>
</VirtualHost>
EOF
mkdir «/var/www/$1»
cd /etc/apache2/sites-enabled
ln -s «/etc/apache2/sites-available/$1.conf» «$1.conf»
echo «Editing /etc/hosts»
cat <<EOF >> «/etc/hosts»
127.0.0.1 $1
EOF
echo «Set permissions»
chmod 0777 -R «/var/www/$1»
echo «Restarting Apache2»
/etc/init.d/apache2 restart
echo «Finished!»
echo «Local address: /var/www/$1»
echo «Web address: http://$1»
1 |
#!/bin/bash echo»Creating Virtual Host» cd/etc/apache2/sites-available cat<<EOF>>»$1.conf» <VirtualHost *80> ServerAdmin webmaster@localhost ServerName$1 ServerAlias www.$1 DocumentRoot»/var/www/$1″ <Directory/var/www/$1> Options All AllowOverride All </Directory> </VirtualHost> EOF mkdir»/var/www/$1″ cd/etc/apache2/sites-enabled ln-s»/etc/apache2/sites-available/$1.conf»»$1.conf» echo»Editing /etc/hosts» cat<<EOF>>»/etc/hosts» 127.0.0.1$1 EOF echo»Set permissions» chmod0777-R»/var/www/$1″ echo»Restarting Apache2″ /etc/init.d/apache2 restart echo»Finished!» echo»Local address: /var/www/$1″ echo»Web address: http://$1″ |
Даете права на выполнение:
chmod + x /var/www/vhosts.sh
1 | chmod+x/var/www/vhosts.sh |
Пример создания хоста:
sudo /var/www/vhosts.sh mysite.loc
1 | sudo/var/www/vhosts.sh mysite.loc |
Все последующие шаги по virtualhosts можно пропускать.
В /etc/hosts прописываем наши хосты: (nano /etc/hosts)
127.0.0.1 mysite.loc
1 | 127.0.0.1mysite.loc |
Переходим в папку /etc/apache2/
Смотрим, что внутри:
root @ HP: /etc/apache2 # ls -l
всего 88
-rw-r — r— 1 root root 7728 26 апреля 22:55 apache2.conf
-rw-r — r— 1 root root 7691 26 апреля 22:34 apache2.conf ~
drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-available
drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-enabled
-rw-r — r— 1 root root 1782 3 января 16:48 envvars
-rw-r — r— 1 root root 31063 3 января 16:48 magic
drwxr-xr-x 2 root root 12288 26 апреля 22:27 mods-available
drwxr-xr-x 2 root root 4096 26 апреля 22:27 mods-enabled
-rw-r — r— 1 root root 320 7 января 15:23 ports.conf
drwxr-xr-x 2 root root 4096 26 апреля 22:43 sites-available
drwxr-xr-x 2 root root 4096 26 апреля 22:44 sites-enabled
1 |
root@HP/etc/apache2# ls -l всего88 -rw-r-r—1root root772826апреля2255apache2.conf -rw-r-r—1root root769126апреля2234apache2.conf~ drwxr-xr-x2root root409626апреля2252conf-available drwxr-xr-x2root root409626апреля2252conf-enabled -rw-r-r—1root root17823января1648envvars -rw-r-r—1root root310633января1648magic drwxr-xr-x2root root1228826апреля2227mods-available drwxr-xr-x2root root409626апреля2227mods-enabled -rw-r-r—1root root3207января1523ports.conf drwxr-xr-x2root root409626апреля2243sites-available drwxr-xr-x2root root409626апреля2244sites-enabled |
В папке sites-available хранятся кофниги доступных хостов, а в sites-enabled ссылки на активные хосты.
Переходим в доступные хосты и создаем конфиг для mysite.loc. Кстати, если ваш дефолтный конфиг заканчивается на .conf тогда создавайте конфиги с расширением * .conf.
nano sites-available/mysite.conf
1 | nano sites-available/mysite.conf |
Пишем туда:
ServerName mysite.loc DocumentRoot /var/www/mysite.loc AllowOverride All
1 | ServerName mysite.loc DocumentRoot/var/www/mysite.loc AllowOverride All |
Данной записи достаточно, чтобы работал ваш локальный хост. Теперь нужно создать ссылку на него в sites-enabled.
a2ensite mysite.conf
1 | a2ensite mysite.conf |
Ошибки: если в вас возникает ошибка и вы не можете создать ссылку. Тогда это сделать можно следующей записью:
ln /etc/apache2/sites-available/mysite.conf /etc/apache2/sites-enabled/
1 | ln/etc/apache2/sites-available/mysite.conf/etc/apache2/sites-enabled/ |
Теперь нужно только перезагрузить настройки Apache2:
service apache2 reload
## или, если необходимо
service apache2 restart
1 |
service apache2 reload ## или, если необходимо service apache2 restart |
Итак, Apache2 работает, первый хост добавлен!
Apache
Для поддержки файла .htaccess, который используется многими сайтами, необходимо установить и настроить веб-сервер Apache.
Устанавливаем apache и модуль для php:
apt-get install apache2 libapache2-mod-php
Заходим в настройки портов:
vi /etc/apache2/ports.conf
И редактируем следующее:
Listen 8080
#<IfModule ssl_module>
# Listen 443
#</IfModule>
#<IfModule mod_gnutls.c>
# Listen 443
#</IfModule>
* мы настроили прослушивание на порту 8080, так как на 80 уже работает NGINX. Также мы закомментировали прослушивание по 443, так как и он будет слушаться NGINX.
Теперь открываем настройку следующего модуля:
vi /etc/apache2/mods-available/dir.conf
И добавляем впереди индексных файлов index.php:
<IfModule dir_module>
DirectoryIndex index.php index.html …
</IfModule>
* если не указан конкретный скрипт, сначала веб-сервер пытается найти и запустить index.php, затем index.html и так далее.
Открываем основной конфигурационный файл для apache:
vi /etc/apache2/apache2.conf
Рядом с опциями Directory дописываем:
<Directory /var/www/*/www>
AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted
</Directory>
* где Directory указывает на путь, для которого мы хотим задать настройки; AllowOverride — позволит переопределить все настройки с помощью файла .htaccess; Options задает некоторые настройки: Indexes разрешает списки каталогов, ExecCGI разрешает запуск cgi скриптов, Require all granted — предоставляет всем доступ к сайтам в данном каталоге.
Ниже допишем:
<IfModule setenvif_module>
SetEnvIf X-Forwarded-Proto https HTTPS=on
</IfModule>
* этой настройкой мы при получении заголовка X-Forwarded-Proto со значением https задаем переменную $_SERVER равную on. Данная настройки критична для функционирования некоторых CMS.
Запрещаем mpm_event:
a2dismod mpm_event
* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.
Разрешаем модуль мультипроцессовой обработки mpm_prefork:
a2enmod mpm_prefork
Разрешаем модуль php:
a2enmod php7.4
* в данном примере установлен php версии 7.4.
Разрешаем модуль setenvif:
a2enmod setenvif
Разрешаем модуль rewrite:
a2enmod rewrite
В процессе включения модулей, если мы видим «Module … already enabled», значит модуль уже включен.
Разрешаем автозапуск Apache и перезапускаем службу:
systemctl enable apache2
systemctl restart apache2
Открываем браузер и вводим в адресную строку http://<IP-адрес сервера>:8080. Мы должны увидеть привычную страницу:
* в разделе Server API мы должны увидеть Apache.
NGINX + Apache
Ранее мы настроили связку nginx + php-fpm. Теперь настроим nginx + apache. Открываем конфигурационный файл nginx для сайта по умолчанию:
vi /etc/nginx/sites-enabled/default
Находим наш настроенный location для php-fpm:
…
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
…
и меняем на:
…
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
…
Проверяем и перезапускаем nginx:
nginx -t
systemctl restart nginx
Пробуем открыть в браузере http://<IP-адрес сервера> — должна открыться та же страница, что при проверке Apache (с добавлением 8080):
Apache Real IP
Запросы на apache приходят от NGINX, и они воспринимаются первым как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей. Для решения проблемы будем использовать модуль remoteip.
Создаем конфигурационный файл со следующим содержимым:
vi /etc/apache2/mods-available/remoteip.conf
<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1/8
</IfModule>
Активируем модуль:
a2enmod remoteip
Перезапускаем apache:
systemctl restart apache2
Для проверки настройки открываем браузер и вводим в адресную строку http://<IP-адрес сервера>, где откроется наша страница phpinfo. В разделе Apache Environment мы должны увидеть внешний адрес компьютера, с которого обращаемся к серверу в опции REMOTE_ADDR.
Шаг 2 – Делаем phpMyAdmin безопаснее
Установка phpMyAdmin осуществляется достаточно просто. Тем не менее, мы ещё не закончили. Из-за того, что phpMyAdmin используется большим количеством пользователей, он представляет собой популярную цель для злоумышленников. Нам необходимо предпринять некоторые шаги для предотвращения неавторизованного доступа.
Одним из способов добиться этого является авторизация пользователя перед входом в само приложение. Мы можем решить эту задачу использованием возможностей входящего в Apache файла .htaccess для авторизации и аутентификации пользователей.
Настройка Apache для разрешения использования .htaccess
Сначала включим возможность использования файла .htaccess в нашем файле конфигурации Apache.
Мы будем редактировать файл в нашей конфигурационной директории Apache:
Нам необходимо добавить директиву AllowOverride All в секцию конфигурационного файла:
После того, как вы добавили эту строку, сохраните и закройте файл.
Для применения изменений перезапустите Apache:
Создание файла .htaccess
Теперь, когда мы разрешили использовать .htaccess для нашего приложения, нам необходимо создать такой файл.
Файл необходимо создать в директории приложения. Мы можем создать необходимый файл и открыть его для редактирования следующей командой:
Теперь введём следующую информацию:
Введённые нами строки означают следующее:
- AuthType Basic : Эта строка задаёт тип авторизации. Указанный тип ( Basic ) означает, что авторизация будет осуществляться на основе пароля и файла пароля.
- AuthName : Эта строка задаёт текст приветствия в диалоге авторизации. Используйте общие слова и фразы в этой строке, чтобы злоумышленникам было сложнее определить, что за система скрывается за диалогом авторизации.
- AuthUserFile : Эта строка задаёт адрес файла пароля, который используется для авторизации. Файл должен находиться в недоступной для внешнего мира директории. Чуть далее мы создадим этот файл.
- Require valid-user : Эта строка означает, что только аутентифицированные пользователи могут осуществлять доступ к защищаемой системе.
После ввода указанных строк, сохраните и закройте файл.
Создание файла пароля .htpasswd для аутентификации
Теперь, когда мы задали путь для нашего файла пароля в директиве AuthUserFile в нашем файле .htaccess , нам необходимо создать этот файл.
Для того, чтобы это сделать, нам понадобится установить дополнительный пакет из стандартных репозиториев:
Теперь нам доступна утилита htpasswd .
Указанный нами ранее путь выглядел следующим образом: /etc/phpmyadmin/.htpasswd . Создадим этот файл и добавим в него первого пользователя следующей командой:
Вам будет предложено выбрать и подтвердить пароль для созданного пользователя. После этого файл будет создан и в него будет добавлен хэш указанного вами пароля.
Для добавления нового пользователя выполните следующую команду без флага -c :
Теперь, когда вы настроили доступ к поддиректории phpMyAdmin, при попытке входа в phpMyAdmin вам будет предложено ввести логин и пароль пользователя:
После ввода логина и пароля вы будете перенаправлены на страницу аутентификации phpMyAdmin. Таким образом, мы создали дополнительный слой защиты для вашего phpMyAdmin.
Шаг 3 — Установка PHP
PHP это компонент, который будет обрабатывать код для отображения динамического контента. Он может запускать скрипты, подключаться к нашим базам данных MySQL для получения информации и передавать обработанный контент в наш веб-сервер для отображения.
Мы можем вновь воспользоваться менеджером пакетов для установки компонентов. Мы также добавим некоторые вспомогательные пакеты, чтобы код на PHP мог работать с нашим сервером Apache, а также обращаться к базе данных MySQL:
Данная команда должна установить PHP без каких либо проблем. Вскоре мы это проверим.
В большинстве случаев, мы захотим изменить способ, который использует Apache для поиска файлов при запросе директории. На данный момент, если пользователь запрашивает директорию с сервера, Apache в первую очередь будет искать файл с названием . Мы хотим, чтобы наш веб-сервер отдавал предпочтение PHP файлам, так что мы настроим Apache таким образом, чтобы сначала он искал файлы .
Для этого введите следующую команду, чтобы открыть файл в текстовом редакторе с привилегиями root-пользователя:
Содержимое файла будет выглядеть следующим образом:
/etc/apache2/mods-enabled/dir.conf
Мы хотим переместить PHP файл , выделенный выше, на первое место после спецификации следующим образом:
/etc/apache2/mods-enabled/dir.conf
После внесения правок сохраните и закройте файл сочетанием клавиш CTRL-X. Вам придется подтвердить операцию вводом Y и затем нажатием клавиши ENTER для подтверждения места сохранения файла.
После этого нам необходимо перезапустить Apache для применения внесенных изменений. Вы можете сделать это при помощи команды:
Мы также можем проверить статус сервиса используя :
Установка модулей PHP
Чтобы расширить функциональность PHP, мы можем установить некоторые дополнительные модули.
Для просмотра доступных опций для модулей и библиотек PHP вы можете передать результат в , которая позволит вам проматывать вывод:
Используйте клавиши стрелок вверх и вниз для промативания списка, для выхода нажмите q.
В результате вам будут показаны все опциональные компоненты, которые можно установить, сопровождаемые коротким описанием для каждого:
Чтобы получить больше информации по каждому модулю, вы можете поискать в Интернете или посмотреть полное описание пакета при помощи команды:
Ответ будет содержать много текста, среди которого есть поле . Именно оно и будет содержать расширенное описание функциональности, предоставляемой модулем.
Например, чтобы узнать назначение модуля , мы можем выполнить команду:
Помимо большого количества прочей информации, вы увидите следующее:
Если после изучение вы решили, что хотите установить пакет, вы можете сделать это используя команду как мы делали ранее при установке другого программного обеспечения.
Если мы решили, что хотим установить , мы можем ввести команду:
Для установки сразу нескольких модулей, вы можете перечислить их через пробелы следом за командой следующим образом:
Теперь ваш стек LAMP установлен и сконфигурирован. Однако нам еще предстоит протестировать PHP.
Prerequisites
To complete this tutorial, you will need the following:
- A server running Ubuntu 18.04. This server should have a non-root administrative user with privileges, as well as a firewall configured with UFW. To set this up, follow our initial server setup guide for Ubuntu 18.04.
- A LAMP stack installed on your server. You can follow this guide on installing a LAMP stack on Ubuntu 18.04 to set this up.
Finally, there are important security considerations when using software like phpMyAdmin, since it:
- Communicates directly with your MySQL installation
- Handles authentication using MySQL credentials
- Executes and returns results for arbitrary SQL queries
For these reasons, and because it is a widely-deployed PHP application which is frequently targeted for attack, you should never run phpMyAdmin on remote systems over a plain HTTP connection. If you do not have an existing domain configured with an SSL/TLS certificate, you can follow this guide on securing Apache with Let’s Encrypt on Ubuntu 18.04. This will require you to register a domain name, create DNS records for your server, and .
Once you are finished with these steps, you’re ready to get started with this guide.
Step 2 — Adjusting User Authentication and Privileges
When you installed phpMyAdmin onto your server, it automatically created a database user called phpmyadmin which performs certain underlying processes for the program. Rather than logging in as this user with the administrative password you set during installation, it’s recommended that you log in as either your root MySQL user or as a user dedicated to managing databases through the phpMyAdmin interface.
Configuring Password Access for the MySQL Root Account
In Ubuntu systems running MySQL 5.7 (and later versions), the root MySQL user is set to authenticate using the plugin by default rather than with a password. This allows for some greater security and usability in many cases, but it can also complicate things when you need to allow an external program — like phpMyAdmin — to access the user.
In order to log in to phpMyAdmin as your root MySQL user, you will need to switch its authentication method from to one that makes use of a password, if you haven’t already done so. To do this, open up the MySQL prompt from your terminal:
Next, check which authentication method each of your MySQL user accounts use with the following command:
In this example, you can see that the root user does in fact authenticate using the plugin. To configure the root account to authenticate with a password, run the following command. Be sure to change to a strong password of your choosing:
Note: The previous statement sets the root MySQL user to authenticate with the plugin. , is MySQL’s preferred authentication plugin, as it provides more secure password encryption than the older, but still widely used, .
However, some versions of PHP don’t work reliably with . PHP has reported that this issue was fixed as of PHP 7.4, but if you encounter an error when trying to log in to phpMyAdmin later on, you may want to set root to authenticate with instead:
Then, check the authentication methods employed by each of your users again to confirm that root no longer authenticates using the plugin:
You can see from this output that the root user will authenticate using a password. You can now log in to the phpMyAdmin interface as your root user with the password you’ve set for it here.
Configuring Password Access for a Dedicated MySQL User
Alternatively, some may find that it better suits their workflow to connect to phpMyAdmin with a dedicated user. To do this, open up the MySQL shell once again:
If you have password authentication enabled for your root user, as described in the previous section, you will need to run the following command and enter your password when prompted in order to connect:
From there, create a new user and give it a strong password:
Note: Again, depending on what version of PHP you have installed, you may want to set your new user to authenticate with instead of :
Then, grant your new user appropriate privileges. For example, you could grant the user privileges to all tables within the database, as well as the power to add, change, and remove user privileges, with this command:
Following that, exit the MySQL shell:
You can now access the web interface by visiting your server’s domain name or public IP address followed by :
Log in to the interface, either as root or with the new username and password you just configured.
When you log in, you’ll see the user interface, which will look something like this:
Now that you’re able to connect and interact with phpMyAdmin, all that’s left to do is harden your system’s security to protect it from attackers.
Устанавливаем OpenServer на компьютер
Многие выбирают OpenServer, поскольку этот софт крайне прост в инсталляции и конфигурировании
Также он имеет графический интерфейс, что немаловажно для огромного пласта юзеров. Предлагаю ознакомиться с развернутым тематическим руководством, начать которое нужно с того, как установить OpenServer
После установки и перезагрузки компьютера можно переходить к следующему этапу взаимодействия с OpenServer.
Первый запуск OpenServer
После инсталляции рекомендуется произвести первый запуск OpenServer, чтобы продолжить дальнейшую настройку, а также просто убедиться в том, что программа функционирует нормально. Для этого потребуется выполнить всего несколько простых действий:
После запуска сервера обратите внимание на панель задач. Там щелкните по значку OpenServer.
В появившемся меню нажмите по кнопке «Запустить».
После этого наведите курсор на «Мои проекты» и выберите там «localhost».
Откроется новая страница в браузере по умолчанию, где вы получите уведомление о нормальной работе локального сервера.. Если на этом этапе с запуском уже возникли проблемы, переходите к ознакомлению с отдельным разделом в конце статьи, где вы узнаете о двух разных методах решения возникшей неполадки
Если на этом этапе с запуском уже возникли проблемы, переходите к ознакомлению с отдельным разделом в конце статьи, где вы узнаете о двух разных методах решения возникшей неполадки.