前两天上网,看到竟然可以使用阿里云。D瓜哥的“‘地瓜哥’博客网”访问速度实在是不给力。所以,准备搬到国内。因为在“博客园”上经常看到阿里云各种坑爹。所以,一直犹豫要不要买。正好借这个机会,试用一下,尝尝鲜。所以,果断申请试用。
目前考虑,准备在阿里云上搭建一个PHP环境用于存放博客。另外,搭建一套Rails环境,准备放点自己倒腾的东西。所以,果断选择Ubuntu 12.04系统(阿里云里面支持的最新版了,可惜没有14.04版)。
因为,一直没有自己搭建过PHP的运行环境。所以,记录一下这个过程,以备后用,也分享给喜欢倒腾的朋友。
更新系统
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk |
1 | sudo vim /etc/apt/sources.list |
然后,使用阿里云提供的源列表替换掉原有的内容。源列表如下:
若使用阿里云服务器,将源的域名从mirrors.aliyun.com
改为mirrors.aliyuncs.com
,不占用公网流量。
D瓜哥在阿里云服务器上使用mirrors.aliyuncs.com
。为了更广泛的适用,例子里面和我在阿里云的实际应用不完全一样。
保存后退出。然后,执行如下命令,来更新系统:
2 | sudo apt-get dist-upgrade -y |
3 | sudo apt-get autoremove -y |
4 | sudo apt-get autoclean -y |
更新命令sudo apt-get dist-upgrade -y
会把包含内核在内的整个系统更新到最新版。所以,存在一定的风险。稳妥的话,可以使用sudo apt-get upgrade -y
,这个只是把安装的软件包更新到最新版。
安装中文字符集
默认系统里面,没有中文字符集。所以,安装软件时,可能会报如下错如:
1 | locale: Cannot set LC_CTYPE to default locale: No such file or directory |
2 | locale: Cannot set LC_ALL to default locale: No such file or directory |
所以,需要安装中文字符集。命令入下:
1 | sudo locale-gen zh_CN.UTF-8 |
安装PPA软件库
PPA是ubuntu下的一个软件存储库(Personal Package Archive,个人软件包存档),由Canonical公司提供,其允许开发者和爱好者通过软件中心给Ubuntu用户提供软件的最新版本。PPA只是将修改软件源的方式进行了优化,通过添加PPA源的方式来更新 sources.list。
通过add-apt-repository
命令可以向本地软件源中添加PPA软件库提供的软件地址,然后就可以使用apt-get
更新安装、更新软件。而add-apt-repository
是由python-software-properties
这个工具包提供的。所以要先安装python-software-properties
才能使用add-apt-repository
。否则会显示“command not found”。
- 安装
python-software-properties
:
1 | sudo apt-get install -y python-software-properties; |
安装vim
vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
原以为vim是内置的。在安装过程中,发现竟然没有安装vim。所以,提前先把vim安装好。
1 | sudo apt-get install -y vim |
D瓜哥在本地做测试的时候,测试系统(使用Vagrant提供的的官方Box)里没有vim。后来,在阿里云的测试机上是有的。所以,这不可以忽略。
安装MySQL
MySQL 5.6出来有一段时间了。D瓜哥在看《高性能MySQL》,了解到MySQL 5.6提供了很多很好的特性。由于只是架设一个个人博客,不妨尝尝鲜。
由于Ubuntu 12.04的官方库里是MySQL 5.5。所以,D瓜哥需要通过PPA来安装。
1 | sudo add-apt-repository ppa:ondrej/mysql-5.6 |
- 添加完MySQL的软件库后,需要再次更新一下系统:
1 | sudo apt-get -y install -y mysql-server mysql-client libmysqlclient-dev |
修改MySQL的默认字符集
- 登录到MySQL上,查看一下默认字符集。使用如下命令登录:
1 | mysql -uroot -p<刚刚设定的密码> |
01 | mysql> show variables like '%character%' ; |
03 | | Variable_name | Value | |
05 | | character_set_client | latin1 | |
06 | | character_set_connection | latin1 | |
07 | | character_set_database | latin1 | |
08 | | character_set_filesystem | binary | |
09 | | character_set_results | latin1 | |
10 | | character_set_server | latin1 | |
11 | | character_set_system | utf8 | |
12 | | character_sets_dir | /usr/share/mysql/charsets/ | |
14 | 8 rows in set (0.00 sec) |
默认字符集不是UTF-8,不符合我们的要求。则需要修改。修改过程如下:
2 | default-character- set =utf8 |
2 | character- set -server = utf8 |
3 | init_connect= 'SET NAMES utf8' |
1 | sudo service mysql restart |
01 | mysql> show variables like '%character%' ; |
03 | | Variable_name | Value | |
05 | | character_set_client | utf8 | |
06 | | character_set_connection | utf8 | |
07 | | character_set_database | utf8 | |
08 | | character_set_filesystem | binary | |
09 | | character_set_results | utf8 | |
10 | | character_set_server | utf8 | |
11 | | character_set_system | utf8 | |
12 | | character_sets_dir | /usr/share/mysql/charsets/ | |
14 | 8 rows in set (0.00 sec) |
16 | mysql> show variables like 'collation_%' ; |
18 | | Variable_name | Value | |
20 | | collation_connection | utf8_general_ci | |
21 | | collation_database | utf8_general_ci | |
22 | | collation_server | utf8_general_ci | |
24 | 3 rows in set (0.00 sec) |
安装Nginx
Nginx(“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。
总之,一句话,Nginx很好很强大。D瓜哥也决定使用Nginx。牛逼吹完了,继续干正事。
1 | sudo add-apt-repository ppa:nginx/stable |
1 | sudo apt-get install -y nginx |
安装PHP
1 | sudo add-apt-repository ppa:ondrej/php5 |
1 | sudo apt-get install -y php5-cli |
2 | sudo apt-get install -y php5-cgi |
3 | sudo apt-get install -y php5-fpm |
4 | sudo apt-get install -y php5-curl |
5 | sudo apt-get install -y php5-gd |
6 | sudo apt-get install -y php5-mysql |
7 | sudo apt-get install -y php5-mcrypt |
8 | sudo apt-get install -y php5-dev |
2 | PHP 5.5.12-2+deb.sury.org~precise+1 (cli) (built: May 12 2014 13:46:35) |
3 | Copyright (c) 1997-2014 The PHP Group |
4 | Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies |
5 | with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies |
配置PHP与Nginx的通讯
有几个概念需要先给大家解释一下:CGI、FastCGI。
- CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
- FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。
再次基础上,介绍一下PHP相关的两个模块:PHP-CGI、PHP-FPM。
- PHP-CGI是PHP自带的FastCGI管理器。
- PHP-FPM是一个PHP FastCGI管理器,使用PHP-FPM来控制PHP-CGI的FastCGI进程。PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,所以被PHP官方收录了。
由于D瓜哥不是专门搞PHP开发的。所以,这部分的概念不一定完全准确,如有错误,请留言指出,D瓜哥立即更正。
简单介绍完毕,继续干活
- 修改nginx虚拟主机配置文件, 让nginx支持php:
1 | vi /etc/nginx/sites-available/default |
1 | root /usr/share/nginx/html; |
2 | index index.php index.html index.htm; |
06 | fastcgi_pass 127.0.0.1:9000; |
09 | fastcgi_index index.php; |
10 | include fastcgi_params; |
1 | sudo service nginx reload |
- 在
/usr/share/nginx/html
目录下,增加一个测试文件info.php
,用于测试PHP运行环境是否OK。内容如下:
- 然后用浏览器打开
http://<服务器IP或者域名>/info.php
。如果能正常显示PHP的配置信息,则表示PHP安装成功。如果报502错误,则查看/etc/php5/fpm/pool.d/www.conf
文件的listen
配置项。当配置如下时:
1 | listen = /var/run/php5-fpm.sock |
- 将
/etc/nginx/sites-available/default
的相关部分,修改成如下:
08 | fastcgi_pass unix:/var/run/php5-fpm.sock; |
09 | fastcgi_index index.php; |
10 | include fastcgi_params; |
1 | sudo service php5-fpm reload |
再次刷新浏览器页面,应该就能看到PHP的配置信息了。不管你有没有看到,反正我是看到了。呵呵
安装Wordpress
- 下载最新的Wordpress中文版(当前最新版是3.9):
- 将
wordpress-3.9-zh_CN.zip
文件拷贝到/usr/share/nginx/html
下:
1 | sudo cp wordpress-3.9-zh_CN.zip /usr/share/nginx/html/ |
- WordPress是一个压缩包,所以,需要安装unzip:
1 | sudo apt-get install unzip |
1 | sudo unzip wordpress-3.9-zh_CN.zip |
1 | mysql -uroot -p& lt ;刚刚设定的密码& gt ; |
1 | CREATE DATABASE `wpdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
- 然后在浏览器里打开
http://<服务器IP或者域名>/wordpress/
,根据步骤一步一步完成安装。
如果提示没有权限创建wp-config.php
。所以,手动在/usr/share/nginx/html/wordpress/
目录下创建wp-config.php
文件,并把屏幕提示的内容,拷贝到这个文件中,保存并退出。继续进行安装。
整个过程略显繁琐。另外,对于Nginx的配置,也许不是最好的方式。这只是一个基础,D瓜哥抛砖引玉,希望大家可以自己去探索,亲自动手,也许收获更大!Come on,baby
这是D瓜哥的第一百篇博文(含转摘),是一件可喜可贺的事情!希望D瓜哥再接再厉,提高自身水平,来写出更多更好的博文!加油!
参考资料
学习了。我们公司都是使用阿里云的。还不错啦。
亲 何必这么麻烦 lnmp 这个一套全下来 没你那么麻烦
自己整一下,可以更好地了解里面的曲曲折折。也算是一种学习。因为从来没有自己搞过!哈哈
额 经历过以后就知道了 还是lnmp这种好
说好的Rails呢………………
备案虽然不是过不去的坎,但要想用上阿里云真正优质的资源,备案还是要做的!
不错的站点,以后一定常来。
过来支持一下 感值得收藏分享