在阿里云安装WordPress_MySQL
前两天上网,看到竟然可以使用阿里云。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软件库
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
vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
原以为vim是内置的。在安装过程中,发现竟然没有安装vim。所以,提前先把vim安装好。
- 安装vim:
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来安装。
- 添加MySQL 5.6的软件存储库。命令如下:
sudo add-apt-repository ppa:ondrej/mysql-5.6
- 添加完MySQL的软件库后,需要再次更新一下系统:
sudo apt-get update -y
- 安装MySQL:
sudo apt-get -y install -y mysql-server mysql-client libmysqlclient-dev
修改MySQL的默认字符集
- 登录到MySQL上,查看一下默认字符集。使用如下命令登录:
mysql -uroot -p
- 使用如下命令,查看MySQL的默认字符集:
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,不符合我们的要求。则需要修改。修改过程如下:
- 使用如下命令,打开MySQL的配置文件:
vim /etc/mysql/my.cnf
- 在
[client]
下添加如下一行代码:
[client]default-character-set=utf8
- 在
[mysqld]
下添加如下两行代码:
[mysqld]character-set-server = utf8init_connect='SET NAMES utf8'
- 保存后退出,然后重启MySQL:
sudo service mysql restart
- 再次检查MySQL的默认字符集,如下所示即可:
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
Nginx(“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。 新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。
总之,一句话,Nginx很好很强大。D瓜哥也决定使用Nginx。牛逼吹完了,继续干正事。
- 添加Nginx的软件库:
sudo add-apt-repository ppa:nginx/stable
- 更新系统:
sudo apt-get update -y
- 最后,安装Nginx:
sudo apt-get install -y nginx
安装PHP
- 添加PHP软件库
sudo add-apt-repository ppa:ondrej/php5
- 更新系统:
sudo apt-get update -y
- 安装PHP
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
配置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:
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;}
- 保存后退出,然后重新加载nginx:
sudo service nginx reload
- 在
/usr/share/nginx/html
目录下,增加一个测试文件info.php
,用于测试PHP运行环境是否OK。内容如下:
- 然后用浏览器打开
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;}
- 保存后退出,然后重新加载PHP配置:
sudo service php5-fpm reload
再次刷新浏览器页面,应该就能看到PHP的配置信息了。不管你有没有看到,反正我是看到了。呵呵
安装Wordpress
- 下载最新的Wordpress中文版(当前最新版是3.9):
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/
- WordPress是一个压缩包,所以,需要安装unzip:
sudo apt-get install unzip
- 解压Wordpress:
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瓜哥再接再厉,提高自身水平,来写出更多更好的博文!加油!
参考资料
- Nginx Wiki中文版
- ubuntu下的PPA是什么?
- add-apt-repository用法
- 给Ubuntu软件升级命令
- mysql-5.6.11 字符集修改
- 修改mysql默认字符集的方法
- Ubuntu安装nginx php5-fpm mysql (lnmp环境搭建)
- Ubuntu下搭建LNMP
- Ubuntu 12.04 一键安装lnmp环境
- ubuntu安装nginx+php-fpm+mysql
- linux下nginx连接PHP5.5
- Ubuntu下设置中文locale
- locale: Cannot set LC_CTYPE to default locale: No such file or directory
- 修改locale
推荐阅读
-
技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT
-
阿里云ecs安装php 7 执行php-v 报错
-
浅谈Maven的安装及修改为阿里云下载依赖
-
阿里云主机上安装jdk 某库出现问题的解决方法
-
阿里云主机上安装jdk 某库出现问题的解决方法
-
阿里云服务器ECS上ubuntu安装nginx后默认站点页面打开错误,显示无法访问此网站
-
在阿里云服务器windows server2012r iis上部署.net网站
-
阿里云Win2016安装Apache和PHP环境图文教程
-
阿里云ECS云服务器(linux系统)安装mysql后远程连接不了(踩坑)
-
阿里云主机的安装硬盘挂载数据盘加载或修改/www