阿里云WordPress
前两天上网,看到竟然可以使用阿里云。D瓜哥的“‘地瓜哥’博客网”访问速度实在是不给力。所以,准备搬到国内。因为在“博客园”上经常看到阿里云各种坑爹。所以,一直犹豫要不要买。正好借这个机会,试用一下,尝尝鲜。所以,果断申请试用。
目前考虑,准备在阿里云上搭建一个PHP环境用于存放博客。另外,搭建一套Rails环境,准备放点自己倒腾的东西。所以,果断选择Ubuntu 12.04系统(阿里云里面支持的最新版了,可惜没有14.04版)。
因为,一直没有自己搭建过PHP的运行环境。所以,记录一下这个过程,以备后用,也分享给喜欢倒腾的朋友。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk
sudo vim /etc/apt/sources.list
然后,
deb http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse
若使用阿里云服务器,将源的域名从mirrors.aliyun.com
改为mirrors.aliyuncs.com
,不占用公网流量。
D瓜哥在阿里云服务器上使用mirrors.aliyuncs.com
。为了更广泛的适用,例子里面和我在阿里云的实际应用不完全一样。
保存后退出。然后,执行如下命令,来更新系统:
sudo apt-get update -ysudo apt-get dist-upgrade -ysudo apt-get autoremove -ysudo apt-get autoclean -y
更新命令sudo apt-get dist-upgrade -y
会把包含内核在内的整个系统更新到最新版。所以,存在一定的风险。稳妥的话,可以使用sudo apt-get upgrade -y
,这个只是把安装的软件包更新到最新版。
默认系统里面,没有中文字符集。所以,安装软件时,可能会报如下错如:
locale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directory
所以,需要安装中文字符集。命令入下:
sudo locale-gen zh_CN.UTF-8
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
:sudo apt-get install -y python-software-properties;
或者,使用ppa-purge
工具也可以达到同样的效果。ppa-purge [主页]是一个 ppa 扩展工具,它可以帮助你禁用指定的 ppa 源并重新安装官方源中的软件包。
ppa-purge
:sudo apt-get install -y ppa-purge
vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
原以为vim是内置的。在安装过程中,发现竟然没有安装vim。所以,提前先把vim安装好。
sudo apt-get install -y vim
D瓜哥在本地做测试的时候,测试系统(使用Vagrant提供的的官方Box)里没有vim。后来,在阿里云的测试机上是有的。所以,这不可以忽略。
MySQL 5.6出来有一段时间了。D瓜哥在看《高性能MySQL》,了解到MySQL 5.6提供了很多很好的特性。由于只是架设一个个人博客,不妨尝尝鲜。
由于Ubuntu 12.04的官方库里是MySQL 5.5。所以,D瓜哥需要通过PPA来安装。
sudo add-apt-repository ppa:ondrej/mysql-5.6
sudo apt-get update -y
sudo apt-get -y install -y mysql-server mysql-client libmysqlclient-dev
修改MySQL的默认字符集
mysql -uroot -p
mysql> show variables like '%character%';+--------------------------+----------------------------+| Variable_name| Value|+--------------------------+----------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | latin1 || character_set_filesystem | binary || character_set_results| latin1 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+8 rows in set (0.00 sec)
默认字符集不是UTF-8,不符合我们的要求。则需要修改。修改过程如下:
vim /etc/mysql/my.cnf
[client]
下添加如下一行代码:[client]default-character-set=utf8
[mysqld]
下添加如下两行代码:[mysqld]character-set-server = utf8init_connect='SET NAMES utf8'
sudo service mysql restart
mysql> show variables like '%character%';+--------------------------+----------------------------+| Variable_name| Value|+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results| utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+8 rows in set (0.00 sec)mysql> show variables like 'collation_%';+----------------------+-----------------+| Variable_name| Value |+----------------------+-----------------+| collation_connection | utf8_general_ci || collation_database | utf8_general_ci || collation_server | utf8_general_ci |+----------------------+-----------------+3 rows in set (0.00 sec)
Nginx(“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。
总之,一句话,Nginx很好很强大。D瓜哥也决定使用Nginx。牛逼吹完了,继续干正事。
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update -y
sudo apt-get install -y nginx
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update -y
sudo apt-get install -y php5-clisudo apt-get install -y php5-cgisudo apt-get install -y php5-fpmsudo apt-get install -y php5-curlsudo apt-get install -y php5-gdsudo apt-get install -y php5-mysqlsudo apt-get install -y php5-mcryptsudo apt-get install -y php5-dev
$ php -vPHP 5.5.12-2+deb.sury.org~precise+1 (cli) (built: May 12 2014 13:46:35)Copyright (c) 1997-2014 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologieswith Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
有几个概念需要先给大家解释一下:CGI、FastCGI。
再次基础上,介绍一下PHP相关的两个模块:PHP-CGI、PHP-FPM。
由于D瓜哥不是专门搞PHP开发的。所以,这部分的概念不一定完全准确,如有错误,请留言指出,D瓜哥立即更正。
简单介绍完毕,继续干活
vi /etc/nginx/sites-available/default
index
后添加index.php
:root /usr/share/nginx/html;index index.php index.html index.htm;
location ~ /.php$ { #fastcgi_split_path_info ^(.+/.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: fastcgi_pass 127.0.0.1:9000; # With php5-fpm: #fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params;}
sudo service nginx reload
/usr/share/nginx/html
目录下,增加一个测试文件info.php
,用于测试PHP运行环境是否OK。内容如下:<?phpphpinfo ();?>
http:///info.php
。如果能正常显示PHP的配置信息,则表示PHP安装成功。如果报502错误,则查看/etc/php5/fpm/pool.d/www.conf
文件的listen
配置项。当配置如下时:listen = /var/run/php5-fpm.sock
/etc/nginx/sites-available/default
的相关部分,修改成如下:location ~ /.php$ { #fastcgi_split_path_info ^(.+/.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: #fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params;}
sudo service php5-fpm reload
再次刷新浏览器页面,应该就能看到PHP的配置信息了。不管你有没有看到,反正我是看到了。呵呵
wget -c -b http://cn.wordpress.org/wordpress-3.9-zh_CN.zip
wordpress-3.9-zh_CN.zip
文件拷贝到/usr/share/nginx/html
下:sudo cp wordpress-3.9-zh_CN.zip /usr/share/nginx/html/
sudo apt-get install unzip
sudo unzip wordpress-3.9-zh_CN.zip
mysql -uroot -p
wpdb
,并指定默认的字符集:CREATE DATABASE `wpdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
http:///wordpress/
,根据步骤一步一步完成安装。如果提示没有权限创建wp-config.php
。所以,手动在/usr/share/nginx/html/wordpress/
目录下创建wp-config.php
文件,并把屏幕提示的内容,拷贝到这个文件中,保存并退出。继续进行安装。
整个过程略显繁琐。另外,对于Nginx的配置,也许不是最好的方式。这只是一个基础,D瓜哥抛砖引玉,希望大家可以自己去探索,亲自动手,也许收获更大!Come on,baby
这是D瓜哥的第一百篇博文(含转摘),是一件可喜可贺的事情!希望D瓜哥再接再厉,提高自身水平,来写出更多更好的博文!加油!