Статьи

Размещение приложения WordPress в экземпляре EC2 — AWS

В этом посте мы развернем приложение WordPress на экземпляре EC2 Amazon Linux AMI t2.micro, выполнив следующие действия:

Шаг 1. Настройте экземпляр Amazon EC2 после установки-amazon-ec2-instance .

Шаг 2: Запустите экземпляр EC2 после ec2-launch-linux-instance .

Шаг 3: Поскольку создание приложения WordPress не является частью этого поста, я уже создал его и заархивировал в виде wordpress-app.zip, который мы надежно скопируем с локального компьютера в домашний каталог экземпляра EC2 (/ home / ec2-user ) используя ec2-user следующим образом:

1
scp -i /Users/ArpitAggarwal/arpitaggarwal-key-pair.pem /Users/ArpitAggarwal/wordpress-app.zip [email protected]:/home/ec2-user

arpitaggarwal-key-pair.pem ссылается на файл закрытого ключа.
ec2-54-218-30-7.us-west-2.compute.amazonaws.com относится к общедоступному DNS-имени экземпляра EC2.

Шаг 4. Экспортируйте базу данных wordpress-app следующим образом:

1
2
cd /applications/MAMP/library/bin
./mysqldump -u root -p**** wordpress > /Users/ArpitAggarwal/export-wordpress-data.sql

/ Applications / MAMP / library / bin ссылается на хранилище локальной базы данных MAMP.
./mysqldump ссылается на команду для получения mysqldump .

Шаг 5: Скопируйте файл export-wordpress-data.sql, который мы создали, из каталога локального компьютера в домашний каталог экземпляра EC2 (/ home / ec2-user):

1
scp -i /Users/ArpitAggarwal/arpitaggarwal-key-pair.pem /Users/ArpitAggarwal/export-wordpress-data.sql [email protected]:/home/ec2-user

Шаг 6: Войдите в свой экземпляр EC2 с помощью файла закрытого ключа и публичного DNS-имени, используя ssh :

1
ssh -i /Users/ArpitAggarwal/arpitaggarwal-key-pair.pem [email protected]

Шаг 7: Измените параметры сортировки вашей базы данных, выполнив следующие команды в / home / ec2-user после входа в экземпляр EC2:

1
2
3
sed -i 's/utf8mb4/utf8/g' export-wordpress-data.sql
sed -i 's/utf8_unicode_ci/utf8_general_ci/g' export-wordpress-data.sql
sed -i 's/utf8_unicode_520_ci/utf8_general_ci/g' export-wordpress-data.sql

Шаг 8: Настройте стек Linux, Apache, MySQL, PHP (LAMP) на экземпляре EC2 CentOS 6 и настройте процессы на автоматический запуск при загрузке сервера, выполнив следующие команды:

1
2
3
4
5
6
sudo yum install httpd
sudo yum install mysql-server
sudo yum install php php-mysql
sudo service mysqld start
sudo chkconfig httpd on
sudo chkconfig mysqld on

Шаг 9: Установите корневой пароль MySQL, который вы указали в своем приложении WordPess , выполнив следующую команду и выбрав конкретную опцию для всех запросов:

1
sudo /usr/bin/mysql_secure_installation

Шаг 10: Войдите в базу данных MySQL на экземпляре EC2 и создайте DATABASE так же, как вы указали в своем приложении WordPess , для меня это WordPress :

1
2
mysql -u root -p****
mysql> CREATE DATABASE IF NOT EXISTS wordpress;

Шаг 11: Импортируйте export-wordpress-data.sql во вновь созданную базу данных следующим образом:

1
mysql -uroot -p**** wordpress < export-wordpress-data.sql

Шаг 12: Раздуйте wordpress-app.zip , скопируйте все файлы в каталог / var / www / html и создайте . Файл htaccess внутри того же каталога:

1
2
3
4
unzip wordpress-app.zip
sudo cp -R wordpress-app/* /var/www/html
cd /var/www/html
sudo touch .htaccess

Замените содержимое файла .htaccess следующим :

01
02
03
04
05
06
07
08
09
10
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Шаг 13: Отредактируйте httpd.conf, расположенный в / etc / httpd / conf, чтобы установить для директивы AllowOverride значение All для каталога / var / www / html , как показано ниже:

1
2
3
4
5
6
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Шаг 13: Перезапустите apache, чтобы отразить все сделанные нами изменения:

1
sudo service httpd restart

Теперь откройте приложение WordPress из вашего браузера, используя Public DNS-имя или Public IP-адрес вашего экземпляра EC2 по адресу: http://ec2-54-218-30-7.us-west-2.compute.amazonaws.com/

Нужно переместить сайт WordPress на новый хост?

Это можно легко сделать, обновив option_value , post_content и guid приложения непосредственно в базе данных MySQL, выполнив следующие сценарии:

1
2
3
4
UPDATE wp_options SET option_value = 'http://new-host/' WHERE option_name = 'home';
UPDATE wp_options SET option_value = 'http://new-host/' WHERE option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE(post_content,'http://old-host/','http://new-host/');
UPDATE wp_posts SET guid = REPLACE(guid,'http://old-host/','http://new-host/');