在本文中,我们将按照以下步骤将WordPress应用程序部署在EC2 Amazon Linux AMI t2.micro实例上:
步骤1:按照set-up-amazon-ec2-instance设置Amazon EC2 实例 。
步骤2:在ec2-launch-linux-instance之后启动EC2 实例 。
步骤3:由于创建wordpress应用程序不是本文的一部分,因此我已经创建了一个并将其压缩为wordpress-app.zip ,我们将从本地计算机安全地复制到EC2实例主目录(/ home / ec2-user )使用ec2-user ,如下所示:
scp -i /Users/ArpitAggarwal/arpitaggarwal-key-pair.pem /Users/ArpitAggarwal/wordpress-app.zip ec2-user@ec2-54-218-30-7.us-west-2.compute.amazonaws.com:/home/ec2-user
arpitaggarwal-key-pair.pem是指私钥文件。
ec2-54-218-30-7.us-west-2.compute.amazonaws.com是指EC2实例的公共DNS名称。
步骤4:导出wordpress-app数据库,如下所示:
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)目录:
scp -i /Users/ArpitAggarwal/arpitaggarwal-key-pair.pem /Users/ArpitAggarwal/export-wordpress-data.sql ec2-user@ec2-54-218-30-7.us-west-2.compute.amazonaws.com:/home/ec2-user
步骤6:使用ssh使用私钥文件和公共DNS名称登录到EC2实例:
ssh -i /Users/ArpitAggarwal/arpitaggarwal-key-pair.pem ec2-user@ec2-54-218-30-7.us-west-2.compute.amazonaws.com
步骤7:登录到EC2实例后,通过在/ home / ec2-user中执行以下命令来更改数据库的排序规则:
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:在EC2 CentOS 6实例上设置Linux,Apache,MySQL,PHP(LAMP)堆栈,并将进程设置为在服务器启动时自动运行,并执行以下命令:
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-app中提供的密码相同),执行以下命令并为所有提示选择特定选项:
sudo /usr/bin/mysql_secure_installation
步骤10:在EC2实例上登录MySQL数据库,并创建与wordpess-app中提供的数据库相同的数据库,对我来说,它是wordpress :
mysql -u root -p****
mysql> CREATE DATABASE IF NOT EXISTS wordpress;
步骤11: 将export-wordpress-data.sql导入新创建的数据库,如下所示:
mysql -uroot -p**** wordpress < export-wordpress-data.sql
步骤12:给 wordpress-app.zip充气 ,将所有文件复制到/ var / www / html目录并创建。 htaccess文件位于同一目录内:
unzip wordpress-app.zip
sudo cp -R wordpress-app/* /var/www/html
cd /var/www/html
sudo touch .htaccess
将.htaccess文件的内容替换为以下内容:
# 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:编辑/ etc / httpd / conf中放置的httpd.conf ,以将/ var / www / html目录的AllowOverride指令的值设置为All ,如下所示:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
步骤13:重新启动apache以反映我们所做的所有更改:
sudo service httpd restart
现在,使用EC2实例的公共DNS名称或公共IP从浏览器访问wordpress-app: http : //ec2-54-218-30-7.us-west-2.compute.amazonaws.com/
需要将WordPress网站移至新主机吗?
通过直接在执行以下脚本的MySQL数据库中更新应用程序的option_value , post_content和guid ,可以轻松完成此操作:
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/');
翻译自: https://www.javacodegeeks.com/2017/05/hosting-wordpress-application-ec2-instance-aws.html