Статьи

Как перенести WooCommerce на Alibaba Cloud ECS с помощью Let’s Encrypt

Эта статья была создана в сотрудничестве с Alibaba Cloud . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.

Alibaba Cloud — это провайдер, который в последнее время приобретает все большую популярность. Одним из основных предлагаемых продуктов является ECS (Elastic Compute Service) или, проще говоря, гибкий, облачный VPS. Те, кто знаком с рынком продуктов облачных вычислений, заметят сходство с Elastic Cloud от Amazon — и они будут правы. После тестирования ECS Alibaba Cloud можно сказать, что он является сильным конкурентом Amazon и других поставщиков в области облачных вычислений.

На самом деле, если судить по разнообразию продуктов, предлагаемых Alibaba Cloud, мы можем сказать, что они уже есть.

В этой статье мы взяли на себя практическую задачу по переносу полноценного производственного веб-сайта электронной коммерции на экземпляр Alibaba ECS (мы использовали реальный действующий веб-сайт, работающий в другом домене, и переместили его в тестовый домен).

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

Elastic Compute Service

После регистрации в Alibaba Cloud нам предлагается кредит в размере 300 долларов США, чтобы опробовать его продукты (после подтверждения способов оплаты, таких как кредитная карта или учетная запись PayPal). Эти средства могут пойти на развертывание и тестирование экземпляра ECS.

После входа в систему мы переходим к нашей консоли управления, выбираем Elastic Compute Service в меню слева, а затем Instances . После того, как мы щелкнем по этой ссылке, справа появится кнопка « Создать экземпляр» .

Затем нам представляются варианты, которые мы можем выбрать для экземпляра — Billing Method , Region — то есть местоположение нашего сервера — и Instance Type . Мы можем выбрать одну из нескольких архитектур (мы использовали архитектуру x86) и такие категории, как универсальная , оптимизированная для вычислений, оптимизированная для памяти , высокая тактовая частота и другие типы.

Затем мы можем выбрать один из предложенных размеров сервера — по объему памяти, количеству виртуальных ядер, тактовой частоте и т. Д.

Ниже мы можем выбрать один из предложенных образов — есть несколько операционных систем, которые мы можем выбрать, включая Aliyun Linux, CentOS, Ubuntu, Windows Server и другие Alibaba. Среди Marketplace Images есть большой выбор предварительно сконфигурированных изображений приложений, которые мы можем выбрать.

Здесь мы выбираем бесплатное изображение Plesk, поскольку оно предлагает нам несколько удобных способов управления нашим сервером — управление доменом, управление базой данных и управление приложениями WordPress — все в одном веб-интерфейсе.

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

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

Затем мы выбираем хранилище — рекомендуется использовать SSD-диск размером до 500 ГБ.

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

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

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

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

Нам нужно создать правило безопасности, которое откроет нужные нам порты и позволит нам получить доступ к нашему экземпляру. После этого мы можем подключиться к нашему экземпляру через оболочку SSH (или продолжить наш сеанс VNC) и сгенерировать учетную запись администратора Plesk:

Мы скопируем второй URL-адрес, который предоставит нам доступ в Интернет для администратора Plesk.

Как только мы посетим этот URL в нашем браузере, мы создадим наш аккаунт:

Здесь мы предполагаем, что у нас есть домен, и мы указали наш домен — или поддомен — на публичный IP-адрес нашего экземпляра. Если нет, нам показывают наш IP-адрес после входа в консоль администратора Plesk. После того, как мы указали наш домен на этот IP, мы можем создать веб-пространство — в основном, виртуальный хост для нашего сайта. В противном случае нам бы пришлось вручную настроить nginx для этого, но с Plesk у нас есть удобство сделать это простым способом.

Мы также можем защитить домен с помощью сертификата Let’s Encrypt. Опять же, мы бы сделали это вручную, установив certbot и создав сертификат для нашего виртуального хоста / веб-сайта. Здесь, это просто флажок, который мы должны проверить.

Удобство и простота Plesk

В этом руководстве нам нужно было сохранить целостность нашей существующей установки WordPress и WooCommerce, и чтобы избежать конфликтов, мы клонировали весь каталог WordPress в созданный нами корень сайта / домена. Но для новых установок Plesk предлагает развертывание WordPress в один клик — наряду с десятками других приложений, таких как OpenCart, Magento, Prestashop, Drupal, Typo3 и другие.

Удобство использования интерфейса Plesk состоит в том, что мы сможем управлять всем нашим стеком от унифицированного веб-интерфейса, от управления конфигурацией нашего сервера, редактирования файла php.ini

Если мы перенесли наш сайт через SSH / rsync, как мы это сделали, нам нужно будет нажать кнопку scan

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

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

миграция

Чтобы перенести наш существующий магазин электронной коммерции, мы войдем на наш существующий сервер через SSH и создадим дамп базы данных:

 mysqldump -u ourusername -p ourdatabasename > ourdatabase.file.sql

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

 scp ./ourdatabase.file.sql root@ourdomainname:/var/www 

Здесь, когда наш домен или новый IP-адрес сервера вместо нашего доменного имени , мы введем наш новый пароль сервера и перенесем базу данных.

Мы перенесем всю папку нашего веб-сайта (предположительно в /var/www/

 rsync -avzh /var/www/our-website-folder/ root@ourdomainname:/var/www/vhosts/ourdomainname/httpdocs

Мы заменим наше доменное имя выше на доменное имя, которое мы присвоили нашему веб-сайту в интерфейсе Plesk. Путь /var/www/our-website-folder/некоторым именем находится на / var / www на нашем старом сервере, и Plesk, как правило, помещает наш новый корень веб-сайта в /var/www/vhosts/ourdomainname/httpdocs

Одна вещь, на которую следует обратить внимание при использовании rsync — косая черта после пути к исходной папке — здесь /var/www/our-website-folder/ Если мы опустим косую черту, rsync скопирует всю папку в нашу новую папку. Если мы используем косую черту в конце, она скопирует содержимое нашей исходной папки. Так что это одна вещь, чтобы иметь в виду.

При условии, что копирование прошло нормально, теперь у нас есть файловая система. Нам нужно создать нашу базу данных и импортировать содержимое из файла дампа базы данных, который мы передали в /var/www

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

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

 mysql -u test1 -p test1 < /var/www/ourdatabase.file.sql

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

Настройка перенесенного сайта

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

Мы предполагаем, что наш новый веб-сайт находится в /var/www/vhosts/ourdomainname/httpdocs Мы перейдем в эту папку и отредактируем файл wp-config.php

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

В случае, если мы перенесли наш веб-сайт в другой домен, чем тот, который был на старом сервере, или в поддомен — что является стандартной практикой, пока мы не убедимся, что наш перенесенный веб-сайт функционирует должным образом — нам потребуется выполнить поиск -Заменить процедуру замены наших старых URL-адресов в базе данных на наши новые URL-адреса / домены.

Для правильной работы веб-сайта URL-адреса в базе данных должны соответствовать URL-адресам веб-сайта.

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

Итак, нам нужен инструмент. Самый быстрый инструмент здесь — WP-CLI — его установка немного выходит за рамки этой статьи, но инструкции здесь довольно просты и понятны, поэтому у вас не должно возникнуть проблем с этим.

После установки WP-CLI мы можем просто использовать wp search-replace //olddomain //newdomain --allow-root

Если у нас возникнут какие-либо проблемы с нашей новой установкой, мы также захотим очистить кеш, используя wp cache flush --allow-root Нам также нужно будет удалить переходные процессы или очистить правила перезаписи .

Все эти команды предполагают, что мы находимся в корневом каталоге нашего веб-сайта с нашей оболочкой ( /var/www/vhosts/ourdomainname/httpdoc Если WP-CLI жалуется на память, мы захотим изменить значение memory_limitphp.inicli php.ini, который в этом случае находится в /etc/php/7.0/cli

Вывод

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

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