Читаем статейку и настраиваем свой сервер :)
Обзор расширения OPCache для PHP можно почитать на хабре
Включение:
sudo phpenmod opcache
Выключение:
sudo phpdismod opcache
Тут можно ознакомиться со скриптами для мониторигна работы OPCache
Тут можно почитать ещё одну полезную статью
И даже тут
А тут ещё одну 🙂
Рассмотрим основные команды, используемые при работе с сервером через SSH.
Выводит список файлов и папок в текущей директории.
Выводит список файлов и папок в текущей директории, а также их размеры, владельца, права на них и дату последнего изменения.
Переход в указанную директорию.
Вводится так: cd директория
Перемещение или переименование файла или папки.
Вводится так: mv текущее_имя новое_имя
Удаление файла или папки.
Вводится так: rm путь_к_файлу
Копирование файла или папки в другое место.
Вводится так: cp имя_файла куда_скопировать
Изменяет права доступа на файл или папку.
Изменяет владельца файла или папки.
Вводится так: chown пользовать:группа файл
Создание директории по указанному пути.
Вводится так: mkdir путь
Запускает файловый менеджер Midnight Commander.
Виртуальные сети всё больше набирают обороты популярности. Дело в следующем: интернет-пространство небезопасно: всегда существует возможность того, что ваши персональные данные будут украдены или на компьютер без разрешения установится вредоносное программное обеспечение. Использование VPN позволяет оградить от этих угроз, а также получить доступ к заблокированным ресурсам интернета.
WhatsApp предлагает пользователям массу интересного функционала. В частности, в этом мессенджере вы можете удалить отправленное сообщение не только у себя, но и у своих собеседников. Полезная функция, не правда ли? Но использовать её можно далеко не всегда.
Будем считать, что у вас уже есть сервер с настроенным и работающим сайтом. Доменное имя у него пусть будет phpmyadmin.site.
Для начала вам нужно закачать в корневую или любую другую директорию сайта (на ваш выбор) архив phpmyadmin. Скачивать мы будем с официального сайта: https://www.phpmyadmin.net
Теперь у нас есть два варианта развития событий:
Во верхнем правом углу видим кнопку «Download 5.x.x», нажимаем её и скачиваем к себе на компьютер, а потом закачиваем к себе на сайт или же, дабы упростить это действие я закачиваю напрямую на свой сервер:
Перехожу в корневую директорию своего сайта:
cd /home/phpmyadmin_site/www
Копирую адрес ссылки phpmyadmin c официального сайта (наводим курсор мышки на кнопку DOWNLOAD, ПКМ, копировать адрес ссылки)
Возвращаемся в консоль сервера и закачиваем:
wget https://files.phpmyadmin.net/phpMyAdmin/5.x.x/phpMyAdmin-4.x.x-all-languages.zip
Не забывайте, что у вас будет другая версия phpmyadmin и 5.x.x будет отличаться.
Распаковываем скачанный архив:
unzip phpMyAdmin-5.x.x-all-languages.zip
Удаляем архив:
rm phpMyAdmin-5.x.x-all-languages.zip
Если вам нужно поместить phpmyadmin не в корневую директорию, то можно просто переименовать папку командой:
mv ./phpMyAdmin-5.x.x-all-languages ./phpma
Можно же переместить файлы в корневую директорию вашего сайта через mc, например.
Теперь можно перейти по адресу phpmyadmin вашего сервера:
http(s)://phpmyadmin.site/phpma
И попробовать авторизоваться под пользователем root и его паролем. Скорее всего вы получите ошибку вида:
mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'
На серверах с Ubuntu, использующей MySQL 5.7 (и более поздние версии), пользователь root в MySQL по умолчанию аутентифицируется с помощью плагина auth_socket, а не по паролю. Это в целом более безопасно и удобно во многих случаях, но не в случае, когда вам необходимо организовать доступ к MySQL со стороны сторонней программы, например, phpMyAdmin.
Для того, чтобы пользователь root в MySQL мог использовать пароль для входа в систему вам необходимо изменить метод аутентификации с auth_socket на mysql_native_password. Для этого войдите в оболочку MySQL следующей командой:
sudo mysql
Далее проверьте, какой метод аутентификации используется для каждого из ваших пользователей MySQL:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Скорее всего вывод будет приблизительно таким:
Вывод
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC944277A401A7D25BE1CA89AFF17BF607F8707F | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
В этом примере ваш пользователь root использует аутентификацию с помощью плагина auth_socket. Для изменения этой настройки на использование пароля используйте следующую команду ALTER USER. Не забудьте изменить password на ваш сильный пароль:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
password нужно заменить на ваш пароль для root пользователя
Далее выполните команду FLUSH PRIVILEGES, которая применит внесённые изменения:
FLUSH PRIVILEGES;
Проверьте методы авторизации для пользователей ещё раз для того, чтобы убедиться, что пользователь root более не использует плагин auth_socket для авторизации:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Вывод
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *8656DACC8616D997782ADD0839F92C1571D6FDDA | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC944277A401A7D25BE1CA89AFF17BF607F8707F | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
Как можно видеть на представленном выводе теперь root пользователь MySQL аутентифицируется с использованием пароля. После того, как мы в этом убедились, можно выйти из оболочки MySQL:
exit
Больше полезной информации по авторизации mysql: https://www.digitalocean.com/community/tutorials/mysql-ubuntu-18-04-ru
После чего вы вновь можете зайти в phpmyadmin через браузер с логином root и его паролем. Скорее всего вы успешно авторизуетесь, но в панели phpMyAdmin вы увидете множество алертов, вроде следующих:
Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции были отключены. Узнайте причину.
Или перейдите на вкладку 'Операции' любой базы данных, чтобы настроить хранилище в ней.
При работе с многобайтными кодировками без установленного PHP расширения mbstring phpMyAdmin не в состоянии производить корректное разбиение строк, что может привести к непредсказуемым результатам.
В конфигурационном файле необходимо задать парольную фразу (blowfish_secret).
$Cfg['TempDir'] (./tmp/) недоступен. Из-за этого phpMyAdmin не может кэшировать шаблоны и будет медленным.
Копируем образец конфигурационного файла phpmyadmin:
cp ./phpma/config.sample.inc.php ./phpma/config.inc.php
Редактируем конфиг:
sudo nano ./phpma/config.inc.php
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Вставляем что-то вроде этого:
$2a$58$iMaKE1DFydKAKNQPGR631uXjN75C0PT37x2xacokFCpZgcbm42G1q
В итоге получаете:
$cfg['blowfish_secret'] = '$2a$58$iMaKE1DFydKAKNQPGR631uXjN75C0PT37x2xacokFCpZgcbm42G1q'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Для избавления от следующей ошибки
При работе с многобайтными кодировками без установленного PHP расширения mbstring phpMyAdmin не в состоянии производить корректное разбиение строк, что может привести к непредсказуемым результатам.
Просто устанавливаем соответствующее расширение:
sudo apt install php-mbstring
После чего отправляем команду перечитать конфиги сервер Apache:
sudo service apache2 reload
Сама ошибка выглядит следующим образом:
$Cfg['TempDir'] (./tmp/) недоступен. Из-за этого phpMyAdmin не может кэшировать шаблоны и будет медленным.
Возникает она из-за отсутствия в директории phpmyadmin папки tmp или из-за отсутствия прав на запись в неё.
Решить эту проблему можно двумя способами:
Переходим в папку phpmyadmin:
cd ./phpma
Проверяем наличие папки:
ls -la
Если папка отсутствует, то создаем её:
mkdir ./tmp
Теперь нужно убедиться, что пользователь (или группа), на котором запущен веб-сервер (например, Apache), имеет доступ на запись во вновь созданную папку tmp. Следовательно, измените владельца на этого пользователя или добавьте права на запись для всех пользователей. Последний не может быть действительно целесообразным.
sudo chown -R phpmyadmin_site:www-data ./tmp
phpmyadmin_site нужно заменить на имя пользователя, от которого работает этот сайт
(изменение владельца файла или папки вводится так:chown пользовать:группа файл/папка)
Открываем конфигурационный файл phpmyadmin
sudo nano ./config.inc.php
И вставляем следующую строчку:
$cfg['TempDir'] = '/home/phpmyadmin_site/temp';
/home/phpmyadmin_site/temp нужно заменить на основную tmp директорию вашего сайта. Так же можно заменить её на ../../tmp
Я вставлял после следующих строчек:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
Выглядит этот алерт следующим образом:
Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции были отключены. Узнайте причину.
Или перейдите на вкладку 'Операции' любой базы данных, чтобы настроить хранилище в ней.
Исправляем:
Нажимаем «Узнайте причину». Далее выскочит следующее сообщение.
Создать базу данных с именем 'phpmyadmin' и настроить там хранение конфигурации phpMyAdmin.
Нажимаем создать, phpMyAdmin сделает все сам.
Теперь можно работать.