在Ubuntu 14.04上部署 PHP 环境及 WordPress

软件及版本选择

Ubuntu 14.04

Ubuntu 是目前用户数量数一数二的发行版,背后有大土豪维护,可以说是轻量级用户的最佳选择。而 14.04 是目前最新的 LTS 版本,目前已经发布了半年了,基本是目前支持最好的版本。

Nginx

Nginx 是一个轻量级的,配置灵活,擅长并发的 Web 服务器。

PHP-FPM

PHP-FPM 是目前官方推荐的最佳的运行模式。

MariaDB

MySQL 的替代品,毕竟目前 MySQL 的创始人已经不建议我们使用 MySQL 了。

基本配置

通常当你创建了一台 VPS, 你会得到一个 IP 和一个 root 密码,所以,先用 ssh 登上你的服务器:

ssh [email protected]

# 如果有警告输入 yes 来确认,然后输入你的 root 密码
配置一下公钥登录,省着每次登录都要输入密码,非常建议像我一样把公钥上传到一个公开的地址,这样只要一条命令就可以设置好:

mkdir ~/.ssh; curl ‘https://raw.githubusercontent.com/jysperm/meta/master/Key/JyAir.pub‘ >> ~/.ssh/authorized_keys; chmod -R 700 ~/.ssh;

然后更新一下软件包列表,升级现有软件包:

apt-get update
apt-get upgrade

修改一下主机名,最好改成一个确实可以访问到这台服务器的域名:

vi /etc/hostname
vi /etc/hosts

安装软件包

apt-get install nginx postfix php5-fpm mariadb-server memcached
apt-get install php-pear php5-mysql php5-curl php5-gd php5-mcrypt php5-memcache
apt-get install python make screen git wget zip unzip iftop vim curl htop iptraf nethogs
nginx: Web 服务器
postfix: SMTP 服务器,用来支持从本地发送邮件
php5-fpm: PHP 进程管理器,及 PHP 解释器
mariadb-server: 类 MySQL 数据库
memcached: 基于内存的缓存,很多程序会用到
php-pear: PHP 的包管理器
php5-mysql: PHP MySQL 数据库驱动
php5-curl: 一个 HTTP 协议库
php5-gd: 一个图像处理库
php5-mcrypt: 一个加密算法库
php5-memcache: Memcached 驱动
python: 一个常用的脚本语言解释器
make: 一个常用的构建工具
screen: 一个常用的 Shell 会话管理工具
git: 一个常用的版本控制工具
wget, curl: 常用的文件下载工具
zip, unzip: ZIP 压缩和解压工具
iftop, iptraf, nethogs: 常用的流量监控工具
vim: 一个常用的编辑器
htop: 一个常用的进程监控工具

安装 WordPress

新建一个普通用户,并切换到该用户

adduser wordpress
su wordpress
cd ~

下载 WordPress, 请自行到官网查看最新版本的下载地址:

wget http://cn.wordpress.org/wordpress-3.9-zh_CN.zip

解压文件:

unzip wordpress-*.zip

设置文件权限:

chmod -R 750 wordpress

删除安装包:

rm wordpress-*.zip

回到 root:

exit

配置 PHP-FPM

为 WordPress 创建一个进程池:

vi /etc/php5/fpm/pool.d/wordpress.conf

这是一份很典型的配置文件,通过监听 Unix Socket 来提供服务,动态调节进程数,最高 10 个进程,最低 3 个进程:

[wordpress]

user = wordpress
group = wordpress

listen = /home/wordpress/phpfpm.sock

listen.owner = wordpress
listen.group = wordpress
listen.mode = 0660

pm = dynamic
pm.max_children = 10
pm.min_spare_servers = 3
pm.max_spare_servers = 5

slowlog = /home/wordpress/phpfpm.slowlog
request_slowlog_timeout = 5s
request_terminate_timeout = 15s

php_admin_value[error_log] = /home/wordpress/phpfpm_error.log
php_admin_flag[log_errors] = On

配置 Nginx

删掉 Nginx 的默认站点:

rm /etc/nginx/sites-enabled/default

新建一个站点:

vi /etc/nginx/sites-enabled/wordpress

这份配置文件已将请求重写到 index.php, 可以直接在 WordPress 中使用「固定链接」功能:

server {
  listen 80;
  server_name jysperm.me;

  root /home/wordpress/wordpress;
  index index.html index.php;
  autoindex off;

  location / {
    try_files $uri $uri/ /index.php;
  } 

  location ~ \.php$ { 
    fastcgi_pass unix:///home/wordpress/phpfpm.sock;
    include fastcgi_params;
    fastcgi_index index.php;
  }
}

如果你希望把其他所有域名都跳转到你的站点,可以添加这么一段:

server {
  listen 80 default_server;
  listen [::]:80 default_server ipv6only=on;
  rewrite ^/(.*)$ http://jysperm.me permanent;
}

然后我们需要修正 Nginx 和 PHP-FPM 配合的一个 Bug:

vi /etc/nginx/fastcgi_params

将 fastcgi_param SCRIPT_FILENAME 开头的行改为:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

为 Nginx 添加读取 WordPress 文件的权限:

usermod -G wordpress -a www-data

配置 MySQL

进入 MySQL 控制台:

mysql -p

# 需要输入你的 MySQL root 密码

# 创建数据库

CREATE DATABASE `wordpress`;

# 为 WordPress 新建用户

CREATE USER ‘wordpress‘@‘localhost‘ IDENTIFIED BY ‘password‘;

# 授予权限

GRANT ALL PRIVILEGES ON `wordpress` . * TO ‘wordpress‘@‘localhost‘;

# 退出
QUIT
重启

好了,已经配置完成了,我们直接重启服务器即可,这样所有服务都会重启并使用新的配置:

reboot

时间: 2024-10-27 10:46:16

在Ubuntu 14.04上部署 PHP 环境及 WordPress的相关文章

在Ubuntu 14.04上设置生产环境可用的Node.js

在Ubuntu 14.04上设置生产环境可用的Node.js 提供:ZStack社区 前言 Node.js是一个开源的JavaScript运行时环境,开发者可以用它方便的构建服务器端应用和网络应用.Node.js可在Linux.OS X.FreeBSD和Windows上运行,在其上运行的应用使用JavaScript编写.Node.js应用可以在命令行运行,然而本文的目的在于以服务的方式运行Node.js应用,让这些应用可以在系统重启或遇到错误时自动重启,以配合生产环境的需求. 本文将设置一个可用

在Ubuntu 14.04上搭建github Pages博客

背景 github是一个全球性的代码托管平台,支持github Pages服务.这个服务可以为个人.组织或项目建立静态主页.github为用户提供项目托管.git.pages等用于项目开发的功能.我们使用的就是其pages服务.相对于其他提供免费博客的网站,github的最大优点是无任何广告且提供git版本管理工具对博客进行管理.但劣势是需要一定的命令行操作,对于普通用户有一定门槛.Octopress是一款优秀的静态化博客系统,官方将它简称为:"A blogging framework for

ubuntu 14.04搭建android编译环境

按照我的文章:http://blog.csdn.net/zangcf/article/details/23566999在ubuntu 14.04上搭建android编译环境,编译过程会出以下两个错误: 1,Can't locateSwitch.pm in @INC (you may need to install the Switch module) (@INC contains:/etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl

Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar.gz cd /opt/DevelopTools sudo mkdir server cd server sudo cp /home/home/下载/apache-tomcat-6.0.39.tar.gz /opt/DevelopTools/server sudo tar -zxvf apache-

Ubuntu 14.04 设置Android开发环境

伸展树模版真的好长好长... cut a b c:把第a-1个数伸展到根节点,把第b+1个数伸展到a的右子树,然后把ch[ch[root][1][0]]拿掉,放在剩下的树的第c个节点下. flip a b:把第a-1个数伸展到根节点,把第b+1个数伸展到a的右子树,然后翻转ch[ch[root][1][0]]: 由于会出现操作两边的情况,所以加了两个-1节点. 注意: 1,输出的时候要注意空格和换行. 2,在拿掉子树的时候要注意push_up(); #include<stdio.h> #inc

Ubuntu 14.04 上安装和配置 FTP 服务器 ProFTPD

proftpd的配置方式类似apache,比vsftpd更易用,xampp就集成了proftpd. apt-cache search proftpd 搜索相关包 sudo apt-get install proftpd-basic 安装 安装时默认作为一个standalone server运行proftpd,如果每天的ftp请求量少,可以安装为inetd服务,节省服务器资源. 这里我使用默认值,安装为standalone server. sudo netstat -antp|grep proft

ubuntu 14.04 hadoop eclipse 初级环境配置

接触hadoop第二天,配置hadoop到环境也用了两天,将自己配置的过程写在这里,希望对大家有所帮助! 我将文中用到的所有资源都分享到了  这里,点开就能下载,不需要一个个的找啦! 其中有<Hadoop 技术内幕>这本书,第一章讲述了这个配置过程,但是不详细~ ---------------安装jdk------------------------------- 1. 下载jdk1.6.0_45 2.解压到opt文件夹下,配置/etc/profile,在文件尾部加上 #set java en

GOLANG 在 UBUNTU 14.04 上使用 Oracle 数据库

本文参考了以下地址的文章: https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com%3amattn%3ago-oci8.md? 一.安装oracle的OCI套件 1.OCI下载链接页面下载(instantclient-basic,instantclient-sdk) http://www.oracle.com/technetwork/database/features/instant-clien

如何利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置

提供 ZStack社区 内容简介 Heartbeat是一款开源程序,负责将集群基础设施容量--包括集群成员与消息收发--交付至客户服务器.Hearbeat在高可用性服务器基础设施当中扮演着关键性角色.我们通常需要将Heartbeat与Pacemaker等集群资源管理器(简称CRM)相结合,从而实现完整的高可用性设置.不过在今天的教程中,我们将演示如何利用Heartbeat与DigitalOcean Floating IP轻松创建一套双节点高可用性服务器设置. 如果大家希望进一步提升可用性水平,不