Поиск по сайту:

Как настроить удаленную базу данных для оптимизации производительности сайта с помощью MySQL в Ubuntu


Введение

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

В этом руководстве вы настроите удаленный сервер базы данных MySQL, к которому сможет подключиться ваше веб-приложение. WordPress используется в качестве примера, чтобы было с чем работать, но этот метод широко применим к любому приложению, поддерживаемому MySQL.

Предварительные условия

Прежде чем приступить к этому уроку, вам понадобится:

  • Два сервера Ubuntu. У каждого должен быть пользователь без полномочий root с привилегиями sudo и включенным брандмауэром UFW, как описано в нашем руководстве по начальной настройке сервера с Ubuntu. На одном из этих серверов будет размещаться серверная часть MySQL, и в этом руководстве он будет называться сервером базы данных. Другой будет удаленно подключаться к вашему серверу базы данных и действовать как ваш веб-сервер; аналогично в этом руководстве он будет называться веб-сервером.
  • На вашем сервере базы данных: MySQL установлен. Следуйте инструкциям по установке MySQL в Ubuntu, чтобы настроить это.
  • На вашем веб-сервере установлены Nginx и PHP. Наше руководство «Как установить Linux, Nginx, MySQL, PHP (стек LEMP) в Ubuntu» проведет вас через этот процесс, но обратите внимание, что вам следует пропустить шаг 2 этого руководства, в котором основное внимание уделяется установке MySQL. поскольку вы будете устанавливать MySQL на свой сервер базы данных.

    • Необязательно (но настоятельно рекомендуется) сертификаты TLS/SSL от Let’s Encrypt, установленные на вашем веб-сервере. Вам нужно будет приобрести доменное имя и настроить записи DNS для вашего сервера, но сами сертификаты бесплатны. Наше руководство «Как защитить Nginx с помощью Let’s Encrypt в Ubuntu» покажет вам, как получить эти сертификаты.

Шаг 1 — Настройка MySQL для прослушивания удаленных подключений на сервере базы данных

Хранение данных на отдельном сервере — хороший способ изящно расшириться после достижения потолка производительности конфигурации с одной машиной. Он также обеспечивает базовую структуру, необходимую для балансировки нагрузки и дальнейшего расширения вашей инфраструктуры в дальнейшем. После установки MySQL, следуя предварительному руководству, вам потребуется изменить некоторые значения конфигурации, чтобы разрешить подключения с других компьютеров.

Большинство изменений конфигурации сервера MySQL можно внести в файл mysqld.cnf, который по умолчанию хранится в каталоге /etc/mysql/mysql.conf.d/. . Откройте этот файл на своем сервере базы данных с правами root в предпочитаемом вами редакторе. В этом примере используется nano:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Этот файл разделен на разделы, обозначенные метками в квадратных скобках ([ и ]). Найдите раздел с надписью mysqld:

. . .
[mysqld]
. . .

В этом разделе найдите параметр под названием bind-address. Это сообщает программному обеспечению базы данных, какой сетевой адрес следует прослушивать для соединений.

По умолчанию установлено значение 127.0.0.1, что означает, что MySQL настроен только на поиск локальных подключений. Вам необходимо изменить это значение, чтобы оно указывало на внешний IP-адрес, по которому можно получить доступ к вашему серверу.

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

[mysqld]
. . .
bind-address = db_server_ip

Поскольку вы будете подключаться к своей базе данных через Интернет, для обеспечения безопасности ваших данных рекомендуется использовать зашифрованные соединения. Если вы не зашифруете соединение MySQL, любой в сети может перехватить конфиденциальную информацию между вашим веб-сервером и сервером базы данных. Чтобы зашифровать соединения MySQL, добавьте следующую строку после только что обновленной строки bind-address:

[mysqld]
. . .
require_secure_transport = on
. . .

Сохраните и закройте файл, когда закончите. Если вы используете nano, сделайте это, нажав CTRL + X, Y, а затем ENTER.

Для работы SSL-соединений вам необходимо создать несколько ключей и сертификатов. MySQL поставляется с командой, которая автоматически настроит их. Запустите следующую команду, которая создаст необходимые файлы. Это также делает их доступными для чтения сервером MySQL, указав UID пользователя mysql:

sudo mysql_ssl_rsa_setup --uid=mysql

Чтобы заставить MySQL обновить свою конфигурацию и прочитать новую информацию SSL, перезапустите базу данных:

sudo systemctl restart mysql

Чтобы убедиться, что сервер теперь прослушивает внешний интерфейс, выполните следующую команду ss:

sudo ss -plunt | grep mysqld

tcp     LISTEN   0        70             127.0.0.1:33060          0.0.0.0:*      users:(("mysqld",pid=4053,fd=22))                                              
tcp     LISTEN   0        151        db_server_ip:3306           0.0.0.0:*      users:(("mysqld",pid=4053,fd=24))

ss выводит статистику о сетевой системе вашего сервера. Эти выходные данные показывают, что процесс с именем mysqld подключен к db_server_ip через порт 3306, стандартный порт MySQL. подтверждение того, что сервер прослушивает соответствующий интерфейс.

Затем откройте этот порт на брандмауэре, чтобы разрешить трафик:

sudo ufw allow mysql

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

Шаг 2. Настройка базы данных WordPress и удаленных учетных данных на сервере базы данных

Несмотря на то, что сам MySQL теперь прослушивает внешний IP-адрес, в настоящее время нет настроенных удаленных пользователей или баз данных. Создайте базу данных для WordPress и пару пользователей, которые смогут получить к ней доступ.

Начните с подключения к MySQL от имени корневого пользователя MySQL:

sudo mysql

Примечание. Если у вас включена аутентификация по паролю, как описано в шаге 3 обязательного руководства по MySQL, вам вместо этого потребуется использовать следующую команду для доступа к оболочке MySQL:

mysql -u root -p

После выполнения этой команды вам будет предложено ввести root пароль MySQL, и после его ввода вам будет предоставлено новое приглашение mysql>.

В командной строке MySQL создайте базу данных, которую будет использовать WordPress. Возможно, будет полезно дать этой базе данных узнаваемое имя, чтобы вы могли легко ее идентифицировать позже. Здесь он называется wordpress:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Теперь, когда вы создали свою базу данных, вам нужно создать пару пользователей. Создайте локального пользователя, а также удаленного пользователя, привязанного к IP-адресу веб-сервера.

Сначала создайте локального пользователя local_db_user и сделайте так, чтобы эта учетная запись сопоставляла только попытки локального подключения, используя localhost в объявлении:

CREATE USER 'local_db_user'@'localhost' IDENTIFIED BY 'password';

Затем предоставьте этому аккаунту полный доступ к базе данных wordpress:

GRANT ALL PRIVILEGES ON wordpress.* TO 'local_db_user'@'localhost';

Этот пользователь теперь может выполнять любые операции с базой данных WordPress, но эту учетную запись нельзя использовать удаленно, поскольку она соответствует только подключениям с локального компьютера. Имея это в виду, создайте сопутствующую учетную запись, которая будет соответствовать соединениям исключительно с вашего веб-сервера. Для этого вам понадобится IP-адрес вашего веб-сервера.

Обратите внимание, что вы должны использовать IP-адрес, использующий ту же сеть, которую вы настроили в файле mysqld.cnf. Это означает, что если вы указали IP-адрес частной сети в файле mysqld.cnf, вам необходимо будет включить частный IP-адрес вашего веб-сервера в следующие две команды. Если вы настроили MySQL для использования общедоступного Интернета, вам следует сопоставить это с общедоступным IP-адресом веб-сервера.

CREATE USER 'remote_user'@'web_server_ip' IDENTIFIED BY 'password';

После создания удаленной учетной записи предоставьте ей те же привилегии, что и локальному пользователю:

GRANT ALL PRIVILEGES ON wordpress.* TO 'remote_user'@'web_server_ip';

Наконец, очистите привилегии, чтобы MySQL знал, что нужно их использовать:

FLUSH PRIVILEGES;

Затем выйдите из командной строки MySQL, набрав:

exit

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

Шаг 3 — Тестирование удаленных и локальных подключений

Прежде чем продолжить, лучше всего убедиться, что вы можете подключиться к своей базе данных как с локального компьютера (сервера вашей базы данных), так и с вашего веб-сервера.

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

mysql -u local_db_user -p

При появлении запроса введите пароль, который вы установили для этой учетной записи.

Если вам будет предложено MySQL, локальное соединение установлено успешно. Вы можете выйти снова, набрав:

exit

Затем войдите на свой веб-сервер, чтобы проверить удаленные соединения:

ssh remote_user@web_server_ip

Вам потребуется установить некоторые клиентские инструменты для MySQL на свой веб-сервер, чтобы получить доступ к удаленной базе данных. Сначала обновите локальный кеш пакетов, если вы не делали этого в последнее время:

sudo apt update

Затем установите клиентские утилиты MySQL:

sudo apt install mysql-client

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

mysql -u remote_user -h db_server_ip -p

Опять же, вы должны убедиться, что используете правильный IP-адрес для сервера базы данных. Если вы настроили MySQL для прослушивания частной сети, введите IP-адрес частной сети вашей базы данных. В противном случае введите общедоступный IP-адрес вашего сервера базы данных.

Вам будет предложено ввести пароль для вашей учетной записи remote_user. После его ввода и если все работает как положено, вы попадете в командную строку MySQL. Убедитесь, что соединение использует SSL, с помощью следующей команды:

status

Если соединение действительно использует SSL, строка SSL: укажет на это, как показано здесь:

--------------
mysql  Ver 8.0.29-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))

Connection id:          14
Current database:
Current user:           remote_user@web_server_ip
SSL:                    Cipher in use is TLS_AES_256_GCM_SHA384
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.29-0ubuntu0.20.04.2 (Ubuntu)
Protocol version:       10
Connection:             db_server_ip via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Binary data as:         Hexadecimal
Uptime:                 1 hour 8 min 28 sec

Threads: 2  Questions: 69  Slow queries: 0  Opens: 206  Flush tables: 3  Open tables: 125  Queries per second avg: 0.016
--------------

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

exit

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

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

mysql -u wordpressuser -h db_server_ip -p

Это не должно завершиться успешно и должно вернуть ошибку, подобную этой:

ERROR 1130 (HY000): Host '203.0.113.12' is not allowed to connect to this MySQL server

Это ожидаемо, поскольку вы не создали пользователя MySQL, которому разрешено подключение с этого сервера, а также желательно, поскольку вы хотите быть уверены, что ваш сервер базы данных запретит неавторизованным пользователям доступ к вашему серверу MySQL.

После успешного тестирования удаленного подключения вы можете приступить к установке WordPress на свой веб-сервер.

Шаг 4 — Подготовка веб-сервера к установке Wordpress

Если вы следовали необходимым руководствам, у вас должны быть установлены как Nginx, так и PHP. WordPress и многие его плагины используют множество дополнительных расширений PHP. Перед установкой Wordpress на свой веб-сервер подготовьте свой сервер, установив некоторые из этих расширений PHP для использования с Wordpress:

sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Примечание. Каждый плагин WordPress имеет свой набор требований. Некоторым может потребоваться установка дополнительных пакетов расширений PHP. Проверьте документацию вашего плагина, чтобы узнать его требования к PHP. Если они доступны, их можно установить с помощью apt, как в предыдущем примере.

Когда вы закончите установку расширений, перезапустите процесс PHP-FPM, чтобы работающий процессор PHP мог использовать вновь установленные функции:

sudo systemctl restart php7.4-fpm

Затем внесите несколько изменений в файлы блоков вашего сервера Nginx. Согласно предварительным руководствам, у вас должен быть файл конфигурации вашего сайта в каталоге /etc/nginx/sites-available/. Он также должен быть настроен на ответ на доменное имя или IP-адрес вашего сервера и защищен сертификатом TLS/SSL. /etc/nginx/sites-available/your_domain здесь используется в качестве примера каталога. Замените путь к файлу конфигурации, где это необходимо.

Кроме того, /var/www/your_domain будет использоваться в качестве корневого каталога в этом примере установки WordPress. Опять же, используйте корень документа, указанный в вашей конфигурации.

Примечание. Возможно, вы используете конфигурацию /etc/nginx/sites-available/default по умолчанию с /var/www/html в качестве корень документа. Это можно использовать, если вы собираетесь разместить на этом сервере только один веб-сайт. Если нет, то лучше всего разбить необходимую конфигурацию на логические части, по одному файлу на сайт.

Откройте файл блока сервера вашего сайта в предпочитаемом вами редакторе. В этом примере используется nano:

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

Внутри этого блока сервера добавьте несколько блоков местоположения. Начните с создания точно совпадающих блоков местоположения для запросов к /favicon.ico и /robots.txt, для которых вы не хотите регистрировать запросы.

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

server {
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

Внутри существующего блока location/ вы можете настроить список try_files. Сначала закомментируйте настройку по умолчанию, добавив к первой строке знак решетки (#). Затем добавьте следующие строки:

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

Благодаря этой новой строке в вашей конфигурации вместо возврата ошибки 404 в качестве опции по умолчанию управление передается в файл index.php с аргументами запроса.

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

server {
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

    location / {
       # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }

  ...
}

Когда вы закончите, сохраните и закройте файл.

Проверьте свою конфигурацию на наличие синтаксических ошибок, набрав:

sudo nginx -t

Если ошибок нет, перезагрузите Nginx, набрав:

sudo systemctl reload nginx

После подготовки веб-сервера вы готовы установить Wordpress.

Шаг 5 – Установка WordPress на веб-сервер

Чтобы продемонстрировать возможности вашего нового сервера MySQL с возможностью удаленного доступа, вам придется пройти процесс установки и настройки WordPress — популярной системы управления контентом — на вашем веб-сервере. После настройки серверного программного обеспечения вы можете загрузить Wordpress. Из соображений безопасности всегда рекомендуется получать последнюю версию WordPress непосредственно с сайта проекта.

Сначала перейдите в каталог, доступный для записи (рекомендуется временный каталог, например /tmp):

cd /tmp

Это изменит ваш рабочий каталог на временную папку. Затем введите следующую команду, чтобы загрузить последнюю версию WordPress в виде сжатого файла:

curl -LO https://wordpress.org/latest.tar.gz

Извлеките сжатый файл, чтобы создать структуру каталогов WordPress:

tar xzvf latest.tar.gz

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

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Скопируйте все содержимое каталога в корень вашего документа. Флаг -a гарантирует сохранение ваших разрешений, а точка в конце исходного каталога указывает на то, что все содержимое каталога должно быть скопировано (включая скрытые файлы):

sudo cp -a /tmp/wordpress/. /var/www/your_domain

Подготовив файлы, назначьте право собственности пользователю и группе www-data. Это пользователь и группа, под которыми работает Nginx, и Nginx должен иметь возможность читать и записывать файлы WordPress, чтобы обслуживать веб-сайт и выполнять автоматические обновления:

sudo chown -R www-data:www-data /var/www/your_domain

Ваши файлы WordPress теперь находятся в корне документов сервера и имеют правильное право собственности. Теперь вы готовы настроить Wordpress.

Шаг 6 — Настройка файла конфигурации WordPress

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

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

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Вы получите уникальные значения, похожие на следующие:

Внимание! Важно каждый раз запрашивать собственные уникальные значения. Не копируйте показанные здесь значения!

define('AUTH_KEY',         'L4|2Yh(giOtMLHg3#] DO NOT COPY THESE VALUES %G00o|te^5YG@)');
define('SECURE_AUTH_KEY',  'DCs-k+MwB90/-E(=!/ DO NOT COPY THESE VALUES +WBzDq:7U[#Wn9');
define('LOGGED_IN_KEY',    '*0kP!|VS.K=;#fPMlO DO NOT COPY THESE VALUES +&[%8xF*,18c @');
define('NONCE_KEY',        'fmFPF?UJi&(j-{8=$- DO NOT COPY THESE VALUES CCZ?Q+_~1ZU~;G');
define('AUTH_SALT',        '@qA7f}2utTEFNdnbEa DO NOT COPY THESE VALUES t}Vw+8=K%20s=a');
define('SECURE_AUTH_SALT', '%BW6s+d:7K?-`C%zw4 DO NOT COPY THESE VALUES 70U}PO1ejW+7|8');
define('LOGGED_IN_SALT',   '-l>F:-dbcWof%4kKmj DO NOT COPY THESE VALUES 8Ypslin3~d|wLD');
define('NONCE_SALT',       '4J(<`4&&F (WiK9K#] DO NOT COPY THESE VALUES ^ZikS`es#Fo:V6');

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

Откройте файл конфигурации WordPress:

sudo nano /var/www/your_domain/wp-config.php

Найдите раздел, содержащий примеры значений этих настроек:

. . .
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');
. . .

Удалите эти строки и вставьте значения, скопированные из командной строки:

. . .
define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
. . .

Затем измените некоторые параметры подключения к базе данных в начале файла. Вам придется изменить имя базы данных, пользователя базы данных и соответствующий пароль, настроенный в MySQL.

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

. . .
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'remote_user');

/** MySQL database password */
define('DB_PASSWORD', 'remote_user_password');

/** MySQL hostname */
define('DB_HOST', 'db_server_ip');
. . .

И, наконец, после строки define( 'DB_COLLATE', '' ); добавьте выделенную строку, которая сообщает WordPress использовать SSL-соединение с вашей базой данных MySQL:

...
define( 'DB_COLLATE', '' );

define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
...

Сохраните и закройте файл.

После настройки конфигурации WordPress установлен, и вы готовы выполнить процедуру установки через Интернет.

Шаг 7 — Настройка Wordpress через веб-интерфейс

WordPress имеет процесс установки через Интернет. По мере прохождения он задаст несколько вопросов и установит все необходимые таблицы в вашу базу данных. Здесь вы выполните начальные шаги по настройке WordPress, которые вы можете использовать в качестве отправной точки для создания собственного веб-сайта, использующего удаленную базу данных.

Перейдите к доменному имени (или общедоступному IP-адресу), связанному с вашим веб-сервером, вместе с завершающим /wp-admin:

http://your_domain.com/wp-admin

Вам будет предложено выбрать язык, который вы хотите использовать:

Далее вы попадете на главную страницу настроек.

Выберите имя для своего сайта WordPress и выберите имя пользователя. Рекомендуется выбрать что-то уникальное и избегать общих имен пользователей, таких как «admin», в целях безопасности. Надежный пароль генерируется автоматически. Сохраните этот пароль или выберите альтернативный надежный пароль.

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

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

Заключение

Следуя этому руководству, вы настроили базу данных MySQL для приема соединений, защищенных SSL, из удаленной установки Wordpress. Команды и методы, используемые в этом руководстве, применимы к любому веб-приложению, написанному на любом языке программирования, но конкретные детали реализации будут отличаться. Для получения дополнительной информации обратитесь к документации по базе данных вашего приложения или языка.

Статьи по данной тематике: