AWS EC2免费主机如何安装WordPress

1. 如何开通AWS免费套餐

注册AWS帐号,绑定支持Visa的 信用卡后就可以免费使用一年免费套餐版的亚马逊云服务了。

2. 配置EC2主机

设置AMI有限权限用户(可选)

选择机房地区,北美,东京均可

设置访问密钥,保存本地,便于用SSH软件访问

选择主机,建议默认主机,AWS Linux AMI 免费版,根据提示进入下一步

设置安全组,出入站规则

3. 配置LAMP服务器环境

用PuTTy 和本地私钥访问主机,默认用户名为ec2-user@你的AWS服务器DNS, 连接成功后就可以配置环境了。

3.1.1 安装服务器依赖软件

首先,更新所有软件:

sudo yum update -y

使用 yum install 命令可同时安装Apache MySQL PHP 等软件包和所有相关依赖项

sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd

启动 Apache Web 服务器

sudo service httpd start

使用 chkconfig 命令将 Apache Web 服务器配置为在每次系统启动时启动

sudo chkconfig httpd on

测试Web 服务器:在 Web 浏览器中,键入AWS实例的公有 DNS 地址 (或公有 IP 地址),应该可以

看到 Apache 测试页面。

3.1.2 为Apache 设置读写网站目录权限

设置文件权限

1. 将您的用户 (这里指 ec2-user) 添加到 apache 组。

[ec2-user ~]$ sudo usermod -a -G apache ec2-user

Important!

您必须先退出,再重新登录,然后才能接受新组。您可以使用 exit 命令,也可以关闭终端窗

口。

2. 先退出,再重新登录,然后验证您是否为 apache 组的成员。

[ec2-user ~]$ exit

b. 要验证您是否为 apache 组的成员,请重新连接到实例,然后运行以下命令:

[ec2-user ~]$ groups

会出现 ec2-user wheel apache

3. 将 /var/www 及其内容的组所有权更改到 apache 组。

[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www

4. 要添加组写入权限以及设置未来子目录上的组 ID,请更改 /var/www 及其子目录的目录权限。

[ec2-user ~]$ sudo chmod 2775 /var/www

[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;

5. 要添加组写入权限,请递归地更改 /var/www 及其子目录的文件权限:

[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;

(可选)如果您的服务器已安装并运行,且文件权限设置正确,则您的 ec2-user 账户应该能够在 /var/www/html 目录 (可从 Internet 访问) 中创建一个 PHP 文件。


1. 在 Apache 文档根目录中创建一个 PHP 文件。

echo "" > /var/www/html/phpinfo.php

尝试运行此命令时,如果出现“Permission denied (权限被拒绝)”错误,请尝试先注销,再重新登录。

2. 在 Web 浏览器中,键入您刚刚创建的文件的 URL。此 URL 是实例的公用 DNS 地址,后接正斜杠和文

件名。例如:

http://my.public.dns.amazonaws.com/phpinfo.php

会出现:

3.1.3 MySQL 配置

保障 MySQL 服务器的安全

MySQL 服务器的默认安装提供有多种功能,这些功能对于测试和开发都很有帮助,但对于产品服务器,应

禁用或删除这些功能。mysql_secure_installation 命令可引导您设置根密码并删除安装中的不安全功能。即

使您不打算使用 MySQL 服务器,我们也建议执行此步骤。

1. 启动 MySQL 服务器。

[ec2-user ~]$ sudo service mysqld start

Initializing MySQL database:

...

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

...

Starting mysqld: [ OK ]

2. 运行 mysql_secure_installation。

[ec2-user ~]$ sudo mysql_secure_installation

a. 在提示时,键入根账户的密码。

i. 键入当前根密码。默认情况下,根账户没有设置密码。按 Enter。

ii. 键入 Y 设置密码,然后键入两次安全密码。有关创建安全密码的更多信息,请参 http://

www.pctools.com/guides/password/。

设置 MySQL 根密码仅是保护数据库的最基本措施。在构建或安装数据库驱动的应

用程序时,通常可以为该应用程序创建数据库服务用户,并避免使用根账户执行除

数据库管理以外的操作。

b. 键入 Y 删除匿名用户账户。

c. 键入 Y 禁用远程根登录。

d. 键入 Y 删除测试数据库。

e. 键入 Y 重新加载权限表并保存您的更改。

3.2 安装PHP管理面板

前往 https://www.phpmyadmin.net/downloads/ 下载最新的phpMyAdmin压缩包并上传到网站文件目录/var/www/html/。

提取该软件包并将生成的目录改为更容易管理的名称。

[ec2-user html]$ tar -xvzf phpMyAdmin-latest-all-languages.tar.gz

[ec2-user html]$ mv phpMyAdmin-4.7.4-all-languages phpMyAdmin

在浏览器中,键入 phpMyAdmin 安装的 URL,例如:

http://my.public.dns.amazonaws.com/phpMyAdmin

应该会看到 phpMyAdmin 登录页面:


3.3 如何对LAMP 环境进行升降级操作(可选)

经过AWS良好测试,需要以下核心 LAMP 程序包:

httpd24

php56

mysql55-server

php56-mysqlnd

如果你已按照本教程开头的建议安装了最新的软件包,必须首先卸载如下这些软件包和其他依赖项:

[ec2-user ~]$ sudo yum remove -y httpd24 php70 mysql56-server php70-mysqlnd perl-DBDMySQL56

其次,安装替代环境:

[ec2-user ~]$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd

如果你以后决定升级到建议的环境,必须先删除自定义软件包和依赖项:

[ec2-user ~]$ sudo yum remove -y httpd24 php56 mysql55-server php56-mysqlnd perl-DBDMy

再安装你需要的LAMP软件包

4. 设置Wordpress MySQL数据库, 安装wordpress

4.1 创建 MySQL 用户和数据库以安装 WordPress

安装 WordPress 需要存储信息,为自己的博客创建一个数据库,并创建一个有权读取该数据库的信息并将信息保存到该数据库的用户。

4.1.1 启动 MySQL 服务器。

[ec2-user ~]$ sudo service mysqld start

4.1.2. 以 root 用户身份登录到 MySQL 服务器。在系统提示时输入您的 MySQL root 密码,这可能与你的

root 系统密码不同,如果你尚未对 MySQL 服务器加密,它就是空的。

Important!

如果你尚未对 MySQL 服务器加密,则必须执行这项操作

MySQL 服务器的安全

[ec2-user ~]$ mysql -u root -p

Enter password:

4.1.3. 为MySQL 数据库创建用户和密码。安装 WordPress 的过程将使用这些值与您的 MySQL 数据库通

信。输入以下命令,以替换唯一的用户名和密码。

mysql> CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';

Query OK, 0 rows affected (0.00 sec)

4.1.4. 创建数据库。为数据库提供一个有意义的描述性名称,例如

wordpress-db

mysql> CREATE DATABASE `wordpress-db`;

Query OK, 1 row affected (0.01 sec)

4.1.5. 对之前创建的 WordPress 用户授予数据库的完全访问权限。

mysql> GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";

Query OK, 0 rows affected (0.00 sec)

4.1.6. 刷新 MySQL 权限以接受所有更改。

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

4.1.7. 退出 mysql 客户端。

mysql> exit

4.2 安装wordpress, 

先进入网站根目录

cd /var/www/html/  

4.2.1下载 WordPress多语言版

wget https://wordpress.org/latest.tar.gz  

中文版下载

wget https://cn.wordpress.org/wordpress-4.9.1-zh_CN.tar.gz

解压 WordPress

tar -xzf latest.tar.gz

tar -xzf wordpress-4.9.1-zh_CN.tar.gz

移动 WordPress文件到网站根目录下

解压完毕后,可以用 Xftp 进入文件夹把 wordpress 文件夹下的所有文件向上移动到 网站目录 件夹下。然后把其他多余文件下删除。如果你对命令行熟悉,也可以用 MV 命令来做。

mv wordpress/* .

4.2.2 确保网站域名已经正确解析

起码做了两个 A 记录。www 和 @ 的 A 记录。

两条A记录“记录值”都为你的 VPS IP 地址,“记录名”分别为 www 和 @。

4.2.3 创建和编辑 wp-config.php 文件(也可以安装时再配置)

WordPress 安装文件夹有名为 wp-config-sample.php 的示例配置文件。

将 wp-config-sample.php 文件复制为一个名为 wp-config.php 的文件。这样做会创建新的配置文件并将原先的示例配置文件原样保留作为备份。

cd wordpress/

cp wp-config-sample.php wp-config.php

使用 vim 来编辑 文件,然后输入安装的值.

vi wp-config.php

查找 DB_NAME 的行并将 database_name_here 改为 创建 MySQL中创建的数据库名称。

define('DB_NAME', 'xxxxxxx');

查找 DB_USER 的行并将 username_here 改为在 创建 MySQL  中创建的数据库用户。

define('DB_USER', 'xxxxxxx');

查找 DB_PASSWORD 的行并将 password_here 改为 创建 MySQL 中创建的强密码。

define('DB_PASSWORD', 'your_strong_password');


4.2.4 允许 WordPress 使用 permalink

WordPress permalink 需要使用 Apache .htaccess 文件才能正常工作,但默认情况下这些文件在 Amazon

Linux 上处于禁用状态。使用此过程可允许 Apache 文档根目录中的所有覆盖。

1. 使用常用的文本编辑器 (如httpd.confnano 或 vim) 打开 文件。nano 对于初学者来说比较容易使用,当然你也可以使用Vim 编辑器。

[ec2-user wordpress]$ sudo vim /etc/httpd/conf/httpd.conf

2. 找到以<Directory "/var/www/html"> 开头的部分。

✔<Directory "/var/www/html">

✔ Possible values for the Options directive are "None", "All",

✔ or any combination of:

✔ Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

✔ Note that "MultiViews" must be named *explicitly* --- "Options All"

✔ doesn't give it to you.

✔ The Options directive is both complicated and important. Please see

✔ http://httpd.apache.org/docs/2.4/mod/core.html✔options

✔ for more information.

Options Indexes FollowSymLinks

✔ AllowOverride controls what directives may be placed in .htaccess files.

✔ It can be "All", "None", or any combination of the keywords:

✔ Options FileInfo AuthConfig Limit

AllowOverride None

✔ Controls who can get stuff from this server.

Require all granted

3. 在以上部分中将 AllowOverride None 行改为读取 AllowOverride All

此文件中有多个 AllowOverride 行;请确保更改部分中的行。AllowOverride All

4. 保存文件并退出您的文本编辑器。

4.2.5 修复 Apache Web 服务器的文件权限

WordPress 中的某些可用功能要求具有对 Apache 文档根目录的写入权限 (例如通过“Administration (管

理)”屏幕上传媒体)。如果尚未进行此操作,请参考3.1.2

1. 将/var/www 及其内容的文件所有权更改到 apache 用户。

[ec2-user wordpress]$ sudo chown -R apache /var/www

2. 将 /var/www 及其内容的组所有权更改到 apache 组。

[ec2-user wordpress]$ sudo chgrp -R apache /var/www

3. 更改 /var/www 及其子目录的目录权限,以添加组写入权限及设置未来子目录上的组 ID。

[ec2-user wordpress]$ sudo chmod 2775 /var/www

[ec2-user wordpress]$ find /var/www -type d -exec sudo chmod 2775 {} \;

4. 递归地更改 /var/www 及其子目录的文件权限,以添加组写入权限。

[ec2-user wordpress]$ find /var/www -type f -exec sudo chmod 0664 {} \;

5. 重启 Apache Web 服务器,让新组和权限生效。

[ec2-user wordpress]$ sudo service httpd restart

Stopping httpd: [ OK ]

Starting httpd: [ OK ]

4.2.4 测试

http://你的服务器IP地址, 如已做好域名解析,则直接打开你自己的域名 www.xyz.com

如过前面未做解析,则直接打开你的公共IP或DNS

http://my.public.dns.amazonaws.com/


后续设置wordpress用户名密码,站点名称就可以正常访问了,接下来就是wordpress后台配置相关的问题

推荐阅读更多精彩内容

  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装 1.1BLOG文档结构图 ...
    小麦苗DB宝阅读 8,498评论 0 31
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 119,487评论 16 133
  • 大学的基础写作课老师兼班主任是一位姓徐的“小老太太”,宝珠同学喜欢叫她老徐,我叫她徐老师。 基础写作课被安排在大一...
    土申哥哥阅读 131评论 0 1
  • 等闲追赶花蝶舞,荷叶遮阳虎虎归。 深慕稚童无稻虑,欲白方寸障尘堆。 雪掩麦场好书名,嬉追飞雹忘衣湿。
    灵魂刀手阅读 92评论 0 3
  • 来源:中国新闻网(ID:cns2012)作者:杨维思 人的一生,说长很长,说短也短。从出生到死亡,每天都在为不同的...
    FrancisSoung阅读 322评论 0 1