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

WordPress — это самая популярная система управления контентом (CMS), основанная на PHP и MySQL. Когда ваш WordPress CMS растет в трафике, и вы перерастаете ваши текущие серверные ресурсы, профессиональным решением является размещение вашей базы данных на отдельном сервере базы данных. С помощью этого решения вы можете самостоятельно оптимизировать свою базу данных и свой веб-сервер, и оба сервера могут вырасти на собственной машине. В этой статье мы расскажем вам, как настроить WordPress для использования удаленной базы данных на CentOS 7 VPS.

Требования

Чтобы запустить WordPress на вашем CentOS 7 VPS и настроить его для использования удаленной базы данных, нам необходимо предусмотреть следующие требования:

  • Веб-VPS, на котором мы будем устанавливать экземпляр WordPress.
  • На нем установлена ​​база данных VPS с MariaDB или MySQL. База данных будет размещена на этом VPS.

WordPress требует:

  • Веб-сервер: Apache, Nginx
  • PHP версии 7.2 или новее, с поддержкой JSON, расширениями mbstring, zip и GD2.
  • MariaDB версии 10.0 или выше или сервер базы данных MySQL версии 5.6 или новее

Шаг 1: Войдите в систему через SSH на обоих серверах:

Войдите в систему для каждого VPS через SSH как пользователь root

ssh roo@IP_Address -p Port_number

Шаг 2: Обновите все пакеты

После входа в систему запустите следующую команду на обоих серверах, чтобы убедиться, что все установленные пакеты RPM обновлены

yum -y update

Шаг 3: Установите сервер MariaDB на базу данных VPS

yum -y mariadb mariadb-server

Шаг 4: Установите стек LAMP на VPS

Как указано в разделе требований учебника, для запуска WordPress на сервере требуется стек LAMP (Apache, MySQL/MariaDB и PHP). Мы начнем с установки веб-сервера Apache:

yum -y install httpd

 

По завершении установки Apache запустите веб-сервер и включите его при загрузке сервера:

systemctl enable httpd

 

PHP 5.4 установлен на CentOS 7 по умолчанию.

Чтобы установить и использовать PHP 7.2, нам необходимо установить репозитории EPEL и REMI:

yum install epel-release



rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm



yum install yum-utils



yum-config-manager --enable remi-php72



yum update

 

Затем установите PHP 7.2 вместе с требуемыми расширениями PHP:

yum -y install php php-cli php-mbstring php-gd php-mysqlnd php-xmlrpc php-xml php-zip php-curl

 

И, наконец, завершите установку LAMP, установив пакет клиента MariaDB:

yum -y install mariadb mariadb-server

 

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

systemctl start mariadb

systemctl enable mariadb

 

Чтобы принять удаленные подключения, отредактируйте файл конфигурации MariaDB (/etc/my.cnf.d/server.cnf) и измените следующую строку:

bind-address = 127.0.0.1

 

на:

bind-address = web_server_IP_address

 

Не забудьте заменить «web_server_IP_address» на общедоступный IP-адрес веб-сервера.

Если вы хотите настроить MariaDB для прослушивания на всех интерфейсах VPS, установите:

bind-address = 0.0.0.0

 

Перезапустите MariaDB, чтобы изменения вступили в силу:

systemctl restart mariadb.service

Шаг 5: Создайте базу данных MariaDB для WordPress в базе данных VPS

Войдите в консоль MariaDB с учетной записью пользователя root:

# mysql -u root -p

 

Создайте новую базу данных MariaDB для WordPress, используя следующий запрос:

mysql> CREATE DATABASE wpdb;

 

Создайте нового пользователя MariaDB для WordPress, используя следующий запрос:

mysql> CREATE USER 'wpuser'@'localhost';

mysql> CREATE USER 'wpuser'@'database_VPS_IP';

 

Затем выполните следующий запрос, чтобы добавить отдельного пользователя для WordPress, который будет взаимодействовать с базой данных MariaDB:

mysql> GRANT ALL PRIVILEGES ON wpdb.* to 'wpuser'@'localhost' IDENTIFIED BY '5tr0ng_Pa55w0rd';

mysql> GRANT ALL PRIVILEGES ON wpdb.* to 'wpuser'@'database_VPS_IP' IDENTIFIED BY '5tr0ng_Pa55w0rd';

 

Не забудьте заменить database_VPS_IP на фактический IP-адрес базы данных VPS.

Выполните следующую команду, чтобы применить установленные нами привилегии:

mysql> FLUSH PRIVILEGES;

 

Теперь мы можем выйти из сеанса MariaDB:

mysql> quit

Шаг 6: Настройте сервер MariaDB на базе VPS базы данных для прослушивания публичного IP-адреса (или всех интерфейсов)

Измените файл конфигурации MariaDB (/etc/my.cnf.d/server.cnf) и измените следующую строку:

bind-address = 127.0.0.1

 

на:

bind-address = database_server_IP_address

 

Или, настройте MariaDB для прослушивания на всех интерфейсах в базе данных VPS:

bind-address = 0.0.0.0

 

Перезапустите MariaDB, чтобы изменения вступили в силу:

systemctl restart mariadb.service

Шаг 7. Установка WordPress в Web VPS

Загрузите последнюю версию WordPress, доступную на https://wordpress.org/download/, и извлеките ее в каталог на своем сервере:

wget https://wordpress.org/latest.zip



unzip -d /var/www/html/latest.zip

 

Установите правильные разрешения для файлов и каталогов WordPress:

chown apache:apache -R /var/www/html/wordpress/

 

Переименуйте файл конфигурации wp-config-sample.php WordPress в wp-config.php:

mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

 

Отредактируйте файл wp-config.php и измените следующие строки

vi /var/www/html/wordpress/wp-config.php

/** Имя базы данных для WordPress */

define ('DB_NAME', 'wpdb');



/** Имя пользователя базы данных MySQL */

define ('DB_USER', 'wpuser');



/** Пароль базы данных MySQL */

define ('DB_PASSWORD', '5tr0ng_Pa55w0rd');



/** Имя хоста MySQL */

define ('DB_HOST', 'database_VPS_IP');

Шаг 8. Настройка Apache для обслуживания WordPress.

Теперь нам нужно будет настроить конфигурацию Apache, чтобы он мог обслуживать каталог WordPress. Добавьте содержимое ниже в файл /etc/httpd/conf.d/wordpress.conf, используя vi или ваш любимый редактор:

# vi /etc/httpd/conf.d/wordpress.conf

 

Добавьте следующие строки:

<VirtualHost *: 80> 

ServerAdmin admin@your-domain.ru

DocumentRoot/var/www/html/wordpress 

ServerName 

your-domain.com ServerAlias ​​www.your-domain.ru



Alias ​​/matomo "/var/www/html/wordpress/" 

<Directory /var/www/html/wordpress/> 

Опции + FollowSymlinks 

AllowOverride Все



</Directory>



ErrorLog /var/log/httpd/wordpress-error_log 

CustomLog /var/log/httpd/wordpress-access_log common

</VirtualHost>

 

Сохраните изменения и перезапустите Apache, чтобы изменения вступили в силу:

systemctl restart httpd

 

Откройте http://your-domain.ru в своем любимом веб-браузере и завершите установку WordPress.

Поздравления. Вы успешно настроили WordPress для использования удаленной базы данных на сервере CentOS 7.



2018-07-18T13:24:53
Лучшие учебники по Wodpress

Как (безопасно) добавить код в functions.php в WordPress

Поиск интернета для решения проблем WordPress неизбежно приведет вас к сайтам, которые просят вас вставить какую-то часть кода или функцию в functions.php. Если вы новичок в WordPress, это может быть запутанной вещью. По умолчанию WordPress не имеет никакого очевидного интерфейса для ввода кода. И кроме того … копирование/вставки в вашу установку опасно. В этой статье мы покажем вам, как безопасно установить код в файл functions.php WordPress. Поехали.

Что такое functions.php, и разве это опасно?

Вы, наверное, уже знаете, что WordPress имеет темы. Каждая из этих тем находится внутри собственной папки или каталога. И каждая папка содержит файл под названием «functions.php». Это специальный файл, содержащий специфический PHP-код.

Но это тоже опасно!

Несмотря на свою ценность, function.php является опасным файлом. Причина в том, что это связано с вашей темой. Если в коде есть синтаксическая ошибка, она может отключить саму тему и сделать ваш сайт недоступным. Так что будь осторожен! Мы также покажем вам, как избежать ошибок при вставке кода.

Шаг 1. Найдите функцию functions.php в вашей теме.

Войдите в панель инструментов WordPress и перейдите в «Внешний вид-> Редактор», как показано ниже:

Как (безопасно) добавить код в functions.php в WordPress

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

Шаг 2: Убедитесь, что нет закрытия тега ?>

Это откроет функции functions.php в текстовом поле с левой стороны. Прокрутите вниз. Если вы видите следующий символ в самом конце файла, удалите его:

?>

 

Старый способ состоял в том, чтобы гарантировать, что каждый файл php заканчивается тегом ?>. Но это привело к проблемам, когда люди случайно покинули пустую строку или даже пространство после этого, и это сломало бы их сайт. Было также очень сложно отлаживать.

Поэтому перед изменением function.php, убедитесь, что он не заканчивается ?>. Если он не удалит его.

Шаг 3: Форматирование кода

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

  1. Удалите любой открытый код <?php

  2. Удалите замыкающий код ?>

В основном убедитесь, что код, который вы копируете, не заключен в теги <? Php и?>. Если это так, у вас возникнут проблемы, и ваш сайт выйдет из строя, потому что мы удалили тег закрытия?> На шаге 2.

Когда ваш код будет чистым, мы готовы вставить его!

Шаг 4: Вставка кода в functions.php

Прокрутите весь путь до текстового поля Шаг 1 с параметром «functions.php», выбранным с правой стороны. Теперь вставьте свой код внизу, как показано ниже:

Как (безопасно) добавить код в functions.php в WordPress

Повторить (потому что это так важно), убедитесь, что нет закрывающего?> Тега! Теперь сохраните изменения, и вы успешно добавили код в functions.php в WordPress! Вот результат кода, который мы только что добавили на этом шаге, в качестве примера:

Как (безопасно) добавить код в functions.php в WordPress

Лучшая практика

Вот несколько примеров:

Доступ из cPanel

Несмотря на то, что мы показали вам, как получить доступ и изменить functions.php изнутри WordPress, мы предлагаем вам сделать это из вашего файлового менеджера cPanel. Найдите свою установку WordPress и перейдите в следующее место:

[Папка WordPress] -> wp-content-> themes-> [папка темы] -> functions.php

Теперь вы можете щелкнуть правой кнопкой мыши и отредактировать функции.php. Причина, по которой мы рекомендуем делать это, — это то, что вы можете отменить изменения, если ваш сайт выйдет из строя!

Используйте пользовательский плагин для WordPress Code

Для этого требуется отдельный учебник сам по себе. Но идея состоит в том, что вы создаете свой собственный отдельный плагин для специального кода WordPress вместо того, чтобы вставлять его в functions.php. Таким образом, если что-то пойдет не так, WordPress может просто отключить плагин, а не разбивать ваш сайт!

Мы надеемся, что это полезный учебник для вас о том, как безопасно вставлять код в functions.php в WordPress!

 



2018-07-17T20:31:39
Лучшие учебники по Wodpress

Как скрыть версию Apache, информацию о сервере, заголовок, версия Php

Скрыть номер версии Apache

Для скрытия информации об Apache вам необходимо редактировать конфигурационный файл Apache /etc/httpd/conf/httpd.conf

 nano /etc/httpd/conf/httpd.conf 

Меняем

 ServerTokens Os

ServerSignature On 

на

ServerTokens Prod или ServerTokens ProductOnly

ServerSignature Off

Теперь вам нужно перезапустить сервер Apache, используя следующую команду:

 # service httpd restart 

Теперь вывод для заголовка apache выглядит как ниже

Server: Apache

Скрыть сведения о версии PHP:

Чтобы скрыть информацию PHP, вам нужно отредактировать файл /etc/php.ini и изменить следующие параметры.

Если вы не знаете где находится этот файл, посмотрите тут:

Где находится файл php.ini?

 # vim /etc/php.ini 

Меняем

expose_php On

на

expose_php Off

Теперь вам нужно перезапустить сервер Apache

 # service httpd restart 

После этого изменения PHP больше будет добавлять свою подпись в заголовок веб-сервера.



2018-07-17T15:21:12
Закрытие уязвимостей

Быстрый SQL Server пентест с NMAP

Информация о сервере SQL и пустой пароль с именем пользователя = sa check & ms-sql-dac test:

sudo nmap -d -p 1433 –script ms-sql-info,ms-sql-empty-password 192.168.0.100

sudo nmap -sU -p 1434 –script ms-sql-dac 192.168.0.100 

Брутфорс пользователей и паролей или проверки успеха входа в систему:

sudo nmap -p 1433 –script ms-sql-brute –script-args userdb=”/home/user/customuser.txt”,passdb=”/home/user/passsql.txt” 192.168.0.100 

Информация о сервере + брутфорс

sudo nmap -p 1433 -script ms-sql-info, ms-sql-brute -script-args ms-sql-brute.ignore-lockout, userdb = "/ home / user / customuser.txt", passdb = "/ home /user/passsql.txt "192.168.0.11

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

sudo nmap -p 1433 <ip> –script ms-sql-dump-hashes

sudo nmap -p 1433 –script ms-sql-dump-hashes,ms-sql-hasdbaccess,ms-sql-config –script-args mssql.username=UNAME,mssql.password=UPWD 192.168.0.100

sudo nmap -p 1433 –script ms-sql-dump-hashes,ms-sql-hasdbaccess,ms-sql-config –script-args mssql.username=UNAME,mssql.password=UPWD,ms-sql-config.showall 192.168.0.100

Выполнение пользовательских запросов:

sudo nmap -p 1433 –script ms-sql-query –script-args mssql.username=UNAME,mssql.password=UPWD,ms-sql-query.query=”SELECT @@version version” 192.168.220.123

sudo nmap -p 1433 –script ms-sql-query –script-args mssql.username=UNAME,mssql.password=UPWD,mssql.database=tempdb,ms-sql-query.query=”SELECT * FROM master..syslogins” 192.168.220.123

Список таблиц:

 sudo nmap -p 1433 –script ms-sql-tables –script-args ms-sql-tables.maxdb=0,ms-sql-tables.maxtables=0,mssql.username=UNAME,mssql.password=UPWD 192.168.220.123 

Поиск SQL-сервера в широковещательной сети:

nmap –script broadcast-ms-sql-discover,ms-sql-info –script-args=newtargets

nmap –script broadcast-ms-sql-discover

¯_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.



2018-07-16T14:16:18
Аудит ИБ

Как заблокировать ответы Ping (ICMP) в системе Linux

Блокирование ответов ping в системе может помешать  хакерам реализовать атаку ICMP flood dos.

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

Отключить Ping с помощью iptables

Вы можете просто блокировать ответы icmp непосредственно из брандмауэра в любых системах Linux.

 # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 

Блокировать ping параметрами ядра

Мы можем блокировать ответы ping из системы, напрямую обновляя параметры ядра.

В этом случае мы можем блокировать ответы временно или постоянно, как показано ниже.

Блокировать ping временно

Вы можете временно заблокировать ping используя следующую команду:

 # echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all 

Блочный ping постоянно

Вместо блокировки ping временно вы можете заблокировать его на постоянной основе, добавив следующие параметры в файл конфигурации /etc/sysctl.conf.

 net.ipv4.icmp_echo_ignore_all = 1 

Теперь выполните следующую команду для применения настроек без перезагрузки системы.

 # sysctl -p 

 



2018-07-16T13:59:44
Закрытие уязвимостей

Nginx редирект с HTTP на HTTPS

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

Их можно легко проснифить нападающими по атаке MITM.

Этот учебник поможет вам перенаправить все входящие запросы на https url на веб-сервере Nginx.

Nginx перенаправление | Редирект HTTP на HTTPS

Отредактируйте файл конфигурации виртуального хоста http для своего домена и добавьте return 301 https: // $ host $ request_uri в разделе сервера.

Это перенаправит все входящие запросы по HTTP на соответствующие https-адреса.

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name _;



return 301 https://$host$request_uri;

}

После внесения изменений перезагрузите или перезапустите сервер Nginx.

 



2018-07-16T11:17:45
Закрытие уязвимостей