转( 豆博草堂 ):在Amazon EC2搭建WordPress博客

亚马逊(Amazon) ec2 是一个不错的服务,最重要的是,它向大家提供一年免费使用的服务。我这个博客原来是在php空间放的,现在也搬到了ec2上面。主要出于这几点考虑:

1.国内的空间服务商没有很好的服务。像这次,我的服务器到了,我不想续费了,也忘记了提前备份程序和数据库,由于它们在帐号到期后停用了我对后台 ftpphpmyadmin等权限,导致我无法备份。然而,幸亏我是每天借助wordpress插件备份数据库才不至于丢失数据。

2.备案问题。原来是备过案的,不知为什么,前段时间提醒备案,但我看了下,非常麻烦。耗不起,那我躲吧。

3.自己完全借助ec2搭建,掌握更多的自主权。数据库、服务器配置等等。附加的,我们拥有一台有公网ip的服务器,可以做各种必须在公网才能进行的开发任务。

4.还有一点,网速很快的。

好了,好处说了不少,现在说说怎么搭建吧。


注册&申请

1. 进入 http://aws.amazon.com/free , 点击 右侧的 “Sign Up Now ” 按钮, 然后用你的amazon.com 帐号登录。

2.登录后填写你的信用卡信息,另外就是你的地址信息要填写准确,后面电话确认时会询问。这里要求是支持外币的。建议大家用master或者visa就可以。

3.填写电话信息:

1)选择China
2)填写手机号码,无需+86
3)点击 “Call Me Now”

点击后,此页面转到第二步,显示四位PIN 验证码。同时会接收到亚马逊美女电话验证,输入您浏览器页面中的PIN码,如果你不懂英文,等美女说完话后就输入,页面会马上显示信息验证完成。

4.验证通过后,会显示“Continue” 按钮,点击即可。

做完这一步,究进入激活过程。有时很快,几分钟,有时可能慢。像我,做完后等待了大概十几分钟后,我接到了一个来自印度的电话。对方用英语向我确认 我的信用卡全名,信用卡注册人地址,以及我的vps用途(商用还是个人 business or personal use), 回答完毕之后,对方会根据你的信息來确认是否通过审核。

 注意:2010年11月之后注册的帐号才能享受免费一年的服务!是否可以享受,可以从 https://portal.aws.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary& 看到


创建ec2实例

当以上审核通过后,那么恭喜你!你现在可以來创建ec2实例了。

1.进入 https://console.aws.amazon.com/ec2/home , 你会看到 一个按钮 “Launch Instance”, 点击它,进入实例选择页面。

2.选择 “Quick Launch Wizard”, 选择里面有 “Free tier eligible” 字样的linux版本, 根据你自己喜好可选不同的linux发行版本。我选择了 “Ubuntu Server 12.04 LTS” 版本。先不要点击“Continue”, 继续做下面两个工作。

1)    在页面的 “Name Your Instance:” 位置填写一个实例名,比如我叫“idocbox.com”。

2)      创建 一个key, 后面ssh登录要用到这个文件。在 “Choose a Key Pair:” 下面,选择 “Create New” 标签,给key一个名字,比如我就叫“idocboxcom”, 然后点击后面的 “Download”按钮下载

它到本地。注意:此文件是你登录服务器的认证文件,不可泄!

做完以上工作之后,点击“Continue“按钮,然后进入信息确认页面,如果确认无误,点击”Launch”按钮 。这样等一会儿就有了一个实例。

3. 在左侧导航栏,点击“Instance” 链接,你就会看到你创建的实例了。选中右侧创建的实例,会在最下面显示相关信息。关注Public DNS, 它可以用來通过ssh來登录服务器。还有 Security Groups一项内容,它控制着服务器的对外端口和服务。记下,Security Groups内容,我们接下来來设置安全策略。

4.设置安全策略。在左侧导航栏,点击“Security Groups” 链接,在右侧选中上面记下來的Security Groups值。这时在下面选择“Inbound”标签栏,你会看到旁边有ssh端口。由于我们要搭建wordpress,需要开放http端口。在 “Create a new rule:” 的下拉框中选择 “http”,点击“Add Rule”, 同样的选择”https”,然后点击“Apply Rule Changes” 按钮。即可。

5.接下来连接你的linux实例。 点击左侧的Instances 链接,选择你的实例,点开上面的Instance Actions,点击 ”Connect”, 这时会显示两种连接方式。我们选择“Connect with a standalone SSH Client”, 里面会显示一段连接的ssh命令,类似这样,

ssh -i xxxx.pem root@ec2-xx-xx-xx-xx.compute-1.amazonaws.com

我们就假设你在linux1下面吧(如果用putty, 你可以看看Connect from a Windows client using PuTTY).

进入你的前面下载的key文件保存目录,执行 ssh -i xxxx.pem root@ec2-xx-xx-xx-xx.compute-1.amazonaws.com 像我用的是ubuntu实例,这个命令是不能登录的,改成这个

ssh -i xxxx.pem ubuntu@ec2-xx-xx-xx-xx.compute-1.amazonaws.com就可以了。

好了,至此,我们就可以來配置我们服务器了。


配置一台wordpress服务器:安装相关软件

接下来,我们来看看怎么配置一台wordpress服务器

1.先用ssh登录服务器。

2.执行:

sudo apt-get update

sudo apt-get upgrade

对系统进行升级。注意,这一步要做,我开始没有做,后面安装一些软件会报错的。

3.安装LAMP相关软件

sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server php5

顺利的话,这一句命令能搞定的。安装过程中会提示你设置mysql root 的密码,设置过程中一定要记住自己设置的密码是什么。

4.安装curl, 我们用它來测试搭建的网站是否正常。

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-imap php5-xmlrpc

5.安装phpmyadmin

sudo apt-get install phpmyadmin

它默认会安装到 /usr/share/phpmyadmin下面,中间会提示你输入mysql的root密码.

6. 启用mod_rewrite模块

sudo a2enmod rewrite

7.配置php.ini

sudo vi /etc/php5/apache2/php.ini

修改以下选项:

date.timezone= PRC
enable_dl = On
display_errors = On
upload_max_filesize = 2M

在 disable_functions选项中增加要禁用的函数,

shell_exec, system, exec, passthru, show_source, proc_open, proc_close, dl

8.重启apache2

sudo /etc/init.d/apache2 restart

9.验证服务是否正常

先在ec2实例的命令行执行

curl http://localhost/

如果能看到html内容打印,有”It works!” 字样,说明服务已经启动成功了。

然后在我们本地电脑浏览器上输入 http://<你的pulic-dnc>, 像这个 http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com, 如果看到 “It works!”, 说明网站已经可以对外访问了。


配置一台wordpress服务器:搭建wordpress

接下来,我们搭建wordpress

1.ssh登录到ec2实例,在自己的目录下执行

mkdir blog-related

cd blog-related

进入 http://cn.wordpress.org/, 选择你要安装的wordpress版本的文件链接,比如我要安装 的是 http://cn.wordpress.org/wordpress-3.3.2-zh_CN.tar.gz, 然后执行

wget http://cn.wordpress.org/wordpress-3.3.2-zh_CN.tar.gz

來下载它到服务器上.

解压,

sudo tar  zxvf wordpress-3.3.2-zh_CN.tar.gz

将它部署到apache的网页目录,默认是/var/www

mv wordpress /var/www/

2.创建wordpress数据库和用户

假设我们的数据库名字就叫 idocbox, 在命令行执行

mysql -u root -p

提示你输入密码时,输入上面安装过程设置的mysql root密码即可,然后执行,

create database idocbox DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

这样就创建了一个utf8编码的数据库,

接着创建wordpress的mysql用户,

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON idocbox.* TO <your-wordpress-user-name>@localhost IDENTIFIED BY ‘<your-wordpress-mysql-passwords>’;

FLUSH PRIVILEGES;

 

3.下面,我们來开始安装wordpress吧!

1)在你的浏览器上 输入

http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com/wordpress

这时会进入安装页面,在页面设置一些站点基本信息,管理员用户密码,然后继续,进入数据库设置页面

2).填写上面创建的数据库名称(idocbox), 创建给wordpress的数据库用户名、密码。然后点击

下一步,

这时会报一个权限问题“不能写入wp-config.php文件”。 这个是因为运行apache2的用户和我们当前在命令行部署wordpress的用户不是同一个而引起的权限问题。没关系,安装它说的,我们在命令行创建这个文件,把内容复制进去即可。

sudo vi /var/www/wordpress/wp-config.php

复制那段内容到vi编辑器中,然后

:wq

即可。

做完上面之后,回到浏览器安装页面,点击“继续”即可,这样应该可以安装成功。

别急! 这还没有完全好。我们还要进行一些配置。

3) 配置wordpress的文件目录权限。

记得刚才哪个不能创建wp-config.php问题吧! 它就是权限问题造成的,我们进行下面配置后,在wordpress后台就可以安装插件、主题、上传文件了。

a) 在ec2命令行,

cd /var/www/wordpress

放开所有权限,便于我们识别出apache2运行的用户名。

sudo chmod  777 wp-content

b)进入你的这个博客的后台,写一篇文章,在里面上传一张图片,然后回到命令行。

cd wp-content

ll

这时你会看到一个新目录的信息

drwxr-xr-x 2 www-data www-data  4096 Jul  8 03:24 upgrade

这个目录就是刚才创建的,说明wp执行用的用户是 www-data, 当然,你看到的不一定是这个,看到是什么就是什么。

接下来,我们要恢复wordpress目录权限到正常情况,

cd ..

      sudo chmod 755 wp-content

修改wordpress所有者为wordpress 运行所用的用户,www-data

sudo   chown -R www-data: wordpress

这时进入wordpress后台,就可以安装插件、主题了。

好了,到此wordpress的安装就结束了。

 


域名绑定

我们的博客总不能让别人通过 http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com/wordpress 來访问吧!

是的,当然不能这样干! 我们有自己的独立域名的。那接下来,我们就说说怎么把域名和ec2上这个wordpress博客绑定到一起去。

这里假设你拥有一个独立域名,我就以我自己的域名 idocbox.com來进行说明。

1.在ec2的命令行,

a)进入apache的站点设置目录

cd   /etc/apache2/sites-available

b)在这个目录你会看到两个文件  default 和 default-ssl, 我们复制default 为idocbox.com,

sudo cp default idocbox.com

对idocbox.com进行编辑修改

sudo vi idocbox.com

将内容修改为以下,黑体部分是要修改的,

<VirtualHost *:80>

#你的电子邮件
ServerAdmin wiseneuron@gmail.com

#wordpress放置目录

DocumentRoot /var/www/wordpress

#映射到这个目录的域名
ServerName idocbox.com

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

#wordpress放置目录
<Directory /var/www/wordpress>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

#日志

ErrorLog ${APACHE_LOG_DIR}/idocbox.com-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

#日志

CustomLog ${APACHE_LOG_DIR}/idocbox.com-access.log combined

Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

接下来,我们复制一份上面的文件

cp idocbox.com www.idocbox.com

将www.idocbox.com里面的 ServerName修改为www.idocbox.com

这也做是为了在域名面板里面配置idocbox.com和www.idocbox.com的A记录后可以用idocbox.com和www.idocbox.com都可以访问网站。

然后执行

sudo a2ensite idocbox.com

sudo a2ensite www.idocbox.com

将两个站点启用。

然后重启apache服务器,

sudo /etc/init.d/apache2 restart

好了,服务器配置就完成了。接下来你要做的的是,

申请一个固定ip给你的ec2实例

1.进入 https://console.aws.amazon.com/ec2/home, 点击左侧的 “Elastic IPs”, 点击右侧栏的上部一个按钮”Allocate New Address”.

这样会分配一个固定ip给你。

2.绑定ip给你的实例。选择你申请的ip,点击上部的 “Associate Address” 按钮,这时会让你选择实例,选择我们这个安装wordpress的实例即可。

这时,我们的ec2实例会进行配置、重启,所以一段时间内这个服务器会连接不上。等一会儿吧!

等待…

大概5分钟后,应该是吧! 继续在实例面板 https://console.aws.amazon.com/ec2/home 的instance里面,选择你的实例,你会发现它的Public DNS是另一个,下次ssh登录要用这个的。还有就是Elastic IP显示了你刚才申请的ip。

好了,下面用用这个ip先访问你的服务器试试, 假设是ip是 xx.xxx.xx.xx,  用http://xx.xxx.xx.xx访问下,看看有没有“

It works!

字样,有的话说明ip可用了。

3. ip可用后,登录你的域名控制面板,在A记录里面将idocbox.com和www.idocbox.com指向这个ip 恩,好了试试用域名访问吧!


另外,记得执行

sudo cp -r /usr/share/phpmyadmin /var/www/

将phpmyadmin部署到www目录下,这样就可以通过 http://xx.xxx.xx.xx/phpmyadmin來使用phpmyadmin管理数据库了。

 

参考资料:

http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/Welcome.html?r=1874

http://lanhl.com/2011-amazon-ec2-ubuntu-lamp-wordpress.html

http://www.piaoyi.org/php/Wordpress-To-perform-the-requested-action.htm

» 标签: amazon , clound , ec2 , linux , mysql , ubuntu , wordpress

转载于:https://www.cnblogs.com/li-baibo/archive/2012/11/14/2769471.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值