现在,我们已经有了一台EC2主机,具备了基本的硬件环境。下面,开始软件环境的配置。

第一步:连接服务器

后面所有的一切,都需要在SSH终端窗口操作。首先,我们需要一个SSH客户端。PuTTY是很常用的工具。这里我们选用 Bitvise SSH Client。这个软件之前叫做“Tunnelier”。软件可以在 这里下载

下载好后安装,在SSH这一栏填入必须的信息。主机名按实际地址填写,username填ec2-user(EC2默认用户名),在 User Keypaire manager 这里导入之前申请EC2过程中保存的Key Pair 文件(.pem格式)。这里Bitvise Client 的好处就体现出来了,PuTTy无法直接使用AWS格式的KeyPair文件,需要做一次转换,而Bitvise可以直接导入。导入后,选择 Initial Meth中导入的key的栏位,一般是 Slot 1,根据实际情况填写即可:

填写好后,点击Login,第一次回弹出一个确认窗,是否接受认证信息,点击确认,一切正常的话登陆成功后左侧导航栏会出现 “New terminal console”, “New SFTP Window”。点击 new terminal console,熟悉的Linux终端提示符就出现了。后面所有的命令行操作均在这里进行。

这篇文章中提到了如何直接以root身份登录。实际上,所有的操作均可用sudo命令来执行。如果不需要用SFTP向系统文件中上传文件,没有理由直接root登录。后面会介绍用SVN部署代码的方法,除了一些特殊情况,SFTP基本上不怎么需要了。

第二步:安装基本服务:Apache、PHP、MySQL

作为一个基本Web网站,我们需要至少这三样东西:Apache,PHP以及 MySQL。实际上数据库我们将来会使用 RDS提供的MySQL实例。不过这里还是从安装本机版本逐步开始。

依次输入下列指令,安装Apache,MySql,PHP 以及必备扩展库,启动服务,设置 MySQL主密码。

// 安装 apache
yum install http
// 安装 PHP 及必备支持库
yum install php libmcrypt libmcrypt-devel php-mcrypt php-mbstring
// 安装 php-mysql 扩展
yum install php-mysql
// 安装 mysql
yum install mysql
yum install mysql-server
// 设置 MySQL 主密码
mysqladmin -u root password '<the password>'
// 启动服务
service httpd start
service mysqld start

按照提示完成安装后,在浏览器输入主机地址,这时应该会看到Apache的默认欢迎页,表示我们的基本Web服务器开始运行了。

第三步:安装phpMyAdmin

phpMyAdmin 用来管理后台MySQL数据库。首先,我们从官方网站下载,然后解压缩。移动至Web根目录并重命名为 “phpMyAdmin”。因为刚刚下载的文件夹解压后是保护版本号等信息的。

wget http://sourceforge.net/projects/phpmyadmin/files/latest/download
unzip download
mv <unzipped folder name> /var/www/html/phpMyAdmin
rm download

解压之后,删除下载的文件。
现在,赋予phpMyAdmin目录正确的权限。首先坚持Web服务器的用户

egrep 'User|Group' /etc/httpd/conf/httpd.conf

这里会列出如下信息,默认应该是 apache,如果不是,以列出的为准。

User apache
Group apache

执行如下命令设置权限:

useradd phpmydmin
passwd phpmyadmin
cd /var/www/html
chown –R phpmyadmin.apache phpMyAdmin/

然后,创建配置目录并设置权限

cd phpMyAdmin
mkdir config
cp config.sample.inc.php config/config.inc.php
chown –R phpmyadmin.apache config/
chmod –R o+rw config/

完成后重启服务。

service httpd restart

然后用浏览器打开 http://<host>/phpmyadmin/setup,管理界面就显示出来了。点击“新建主机”,输入主机名,主机地址(默认localhost),点击”认证“,选择”config“认证方式,输入数据库用户名和密码。点击保存。

完成后的的关键一步是,回到setup概要页后,注意要保存配置文件:

在这里保存后,所有的设置在真正回写到配置文件中。现在,在浏览器打开 http://<host>/phpmyadmin,登录进入数据库管理后台。如果成功的话,出于安全考虑,我们要删除配置文件和setup目录。

cd /var/www/html/phpMyAdmin
mv config/config.inc.php ./
rm –rf config/
rm –rf setup/

至此,phpMyAdmin配置完成。另外,为了快速开始,我们在认证方式中选择config方式。建议采用cookie方式连接。这里暂时不多做介绍。

另外,我们之前设置的RDS数据库,也可以加入phpMyAdmin进行管理。只要新增一个服务器,将上一篇中配置的RDS的“Endpoint”作为主机名填入,接着填写好对应的管理账号密码即可。

第四步:开始第一个 Wordpress 网站

此类教程网上铺天盖地,这里只做简单描述。

首先,下载,解压,设置权限。

cd /var/www/html
wget http://wordpress.org/latest.zip
unzip latest.zip
chown –R apache.apache wordpress/
chmod –R 755 wordpress

然后,在浏览器中打开 http://<host>/wordpress 。熟悉的 wordpress 初始化页面出现了。按照之前设置的数据库用户名密码填写,根据向导完成后,一个 wordpress 页面就出现在我们眼前。

现在,本地MySQL环境测试正常。我们把它的后端数据库迁移到 RDS。同样,只需要编辑 Wordpress配置文件,修改主机名,DB名,用户名密码即可。

第五步:虚拟主机,域名绑定,以及一点收尾工作

对于Apache的设置,有两件事需要做。第一,出于安全性考虑,应禁用目录浏览。第二,为便于使用(或其他目的),我们需要在同一主机上host多个网站。这些工作都可以通过编辑 Apache 配置文件完成。

首先,用 vi 打开 /etc/httpd/conf/httpd.conf ,找到如下段落:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
</Directory>

删除”Indexes“即可,就禁用了 Web 主文档目录及所有子目录的目录浏览操作。也可对特定目录做此操作。

编辑虚拟主机。首先,需要找到这一行(通常在靠近结尾处)

NameVirtualHost *:80

解开注释。然后在末尾按需求添加段落,比如我们有一个域名 my.name.com,让它指向我们刚刚创建的wordpress站点:

<VirtualHost *:80>
    ServerName my.name.com
    DocumentRoot /var/www/html/wordpress
</VirtualHost>

现在,保存,退出,重启 apache。在浏览器输入 my.name.com   , Enjoy it!

最后,我们不再需要本地 MySql Server,把它删除。

yum erase mysql-server

MySql 保留,用于在本地执行一些 MySql 指令。

至此为止,在AWS运行一个web网站的基本工作就做完了。

参考资料:

1. http://codex.wordpress.org.cn/Installing_WordPress
2. http://httpd.apache.org/docs/2.2/vhosts/name-based.html
3. http://www.cnblogs.com/88999660/articles/1581524.html

在 Amazon AWS 搭建及部署网站:(二)安装、配置软件,启动网站的更多相关文章

  1. 在 Amazon AWS 搭建及部署网站:序

    最近玩了把 AWS,实现了服务器的创建.PHP+MySql运行环境.代码部署等.一方面,后面的项目会反复重复这个流程,需要一份手册,另一方面,也给自己一个记录.于是把整个过程和要点整理一下,发到自己的 ...

  2. 在 Amazon AWS 搭建及部署网站:(一)申请、设置 AWS 服务

    亚马逊 AWS 介绍 简单来说,AWS (Amazon Web Service) 提供了一整套基础设施和服务,使"建站"这件事变得轻松愉快. 你可以利用AWS构建博客主机,云存储( ...

  3. 在 Amazon AWS 搭建及部署网站:(三)开发及部署环境

    服务器已经搭建好,网站也开始运行了.那么如何方便地部署代码呢? 最基本的方式,就是使用 SFTP 向网站目录直接部署.这种方法的缺点是版本控制不便,在上传时也无法方便的比较代码变化. 用SVN来部署是 ...

  4. TensorFlow Python2.7环境下的源码编译(二)安装配置

    源代码树的根目录中包含了一个名为 configure 的 bash 脚本. $ ./configure 接下来,配置系统会给出各种询问,以确认编译时的配置参数.   一.重要参数解释 Do you w ...

  5. TensorFlow Python3.7环境下的源码编译(二)安装配置

    源代码树的根目录中包含了一个名为 configure 的 bash 脚本. $ ./configure 接下来,配置系统会给出各种询问,以确认编译时的配置参数.   一.重要参数解释 Please s ...

  6. linux环境下kettle部署(JDK安装配置,kettle安装配置,资源库配置,定时执行job)

    一.部署准备 1.1 java安装(略) 1.2 JDK配置 1.     命令行键入“cd /etc”进入etc目录 2.     命令行键入“vi profile”打开profile文件 3.   ...

  7. .Net Core 在Linux服务器下部署程序--(2). 部署前需要安装的软件及SDK

    安装通用软件 : ping , telnet , lrzsz , zip , wget 安装ping软件,用于测试当前服务器与其他服务器之间的网络通畅情况,和Windows的Ping类似 执行ping ...

  8. Linux项目部署 jdk tomcat 安装配置 linux下 failed connect to localhost:8080;Connection refused

         ONBOOT=yes 5.安装wget (1)安装 yum -y install wget (2) 查看版本  wget --version或 wget -V 一.安装jdk 配置 (1)安 ...

  9. IDEA热部署(二)---jetty插件启动maven项目

    jetty插件的配置 我们使用jetty插件来进行启动我们的maven项目,在pom.xml中进行配置: <plugins> <plugin> <groupId>o ...

随机推荐

  1. javascript设计模式之中介者模式

    /* * 小游戏演示中介者模式 * Home 按键 1 * Guest 按键 0 * 半分钟内看谁按下的次数多 * * 参与的对象: * 玩家 * 计分板 * 中介者 * * 中介者模式使对象之间松耦 ...

  2. 安装windows phone 7

    本机环境win7 32位旗舰版,本来是4G内存的  系统只能读出2.9G,vs2010中文旗舰版,想搭建windows phone环境学习wp手机开发.安装完了之后明显感觉机器慢了些. ①:安装Mic ...

  3. nvm安装nodejs(安装在非系统盘内)

    在使用nodejs时有时需要不同的版本之间进行切换,所以就用到了版本管理工具nvm,在windows系统下用的是nvm-windows,这里选择的是nvm-noinstall.zip免安装版本(需要配 ...

  4. git简易使用指南

    git简易使用指南 Git是一个分布式版本控制/软件配置管理软件,原是Linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为更好地管理Linux内核开发而设计.应注意的是,这与GNU I ...

  5. 如何在SAP Cloud for Customer自定义BO中创建访问控制

    文章作者: Yi 已获得Yi的转载许可. 访问控制方式和使用注意事项 1. C4C中的访问控制有两种方式 RelevantForAccessControl AccessControlContext 2 ...

  6. HTML和CSS一般有哪些功能?(聊~平时常出现的那些知识)

    简单一点点 HTML行内标签有哪些? 一般行内的标签包含哪些? 如:a - 锚点, span - 常用内联或定义块级容器, i - 斜体, b - 粗体, strong - 粗体强调, var - 定 ...

  7. IOS截取部分图片

    截取部分图片这么简单: - (void)loadView {     [[UIApplication sharedApplication] setStatusBarHidden:YES withAni ...

  8. innobackupex基于binlog日志的恢复 -- 使用mysqlbinlog恢复

    备份先做一次完整备份: innobackupex --defaults-file=/etc/my.cnf --user root --password chengce243 /data/mysqlba ...

  9. 2018.5.14 XML文档类型定义----DTD

    1.DTD概述 一个完全意义上的XML文件不仅仅是Well-fromed(格式良好的),而且还应该是使用了一些自定义的标记ValidatingXMl(有效的)文档也就是说他必须遵守文档类型的定义中已声 ...

  10. Java 发送邮件工具类

    1.  Mail.java package util; import java.util.Date; import java.util.Properties; import javax.mail.Au ...