在LEMP环境中安装WordPress

介绍

在本文中你将会如何搭建LNMP环境并安装WordPress,同时也会涉及VPS的选择及域名申请。本文所用环境Debain 7,其他Debain 和 Ubuntu 版本应该也可以套用。

VPS选择

笔者之前一直使用Windows Azure,因为下个月就要到期,国内VPS太贵,每个月要好几百 ,因此两周都在寻找国外VPS主机,便宜性能好而且还能翻墙 :),以下是我用过的几个VPS,如果你觉得对你有帮助或者要注册其中一个,可以使用我的推广链接哦 :)

1.Vultr
本站目前架设在该VPS上,用了两周,发现比较稳定,价格也适中。后台管理方便。目前快照功能免费。 待Linode能选日本节点以后建立一个测试一下速度,如果不稳定或者速度在高峰期也不行。我就会一直用Vultr了。 速度方面高峰期比较悲剧,千万不要选择日本节点掉包率很高,而且流量小。 我目前使用Silicon Valley 节点。 Los Angeles 节点也不错,但是感觉实际速度没Silicon Valley 快。 我的推广链接 :http://www.vultr.com/?ref=6828076
2.Linode
该VPS综合素质最高,不过价格略贵,最低套餐每月10刀,备份服务要收费,每月2刀。购买的话推荐 Dallas,TX节点或者Fremont, CA。就等开日本的节点测试了。只要速度够快够稳定我就会把站点牵过去。
3.Bandwagonhost
这个信价比非常高,同上面两个一样应该是国人用的最多的VPS了。价格非常实惠,我使用的Micro-128套餐(HDD: 3.0 GB RAM: 128 MB CPU: 1x Intel Xeon BW: 300 GB/mo)一年才5.99刀如果仅仅翻墙用,我觉得Micro-128足够了。如果还要做其他事情建议选5G PROMO V2 套餐(HDD: 5 GB SSD RAM: 512 MB CPU: 1x Intel Xeon BW: 500 GB/mo) 一年9.9刀。 所谓一分钱一分货。 虽然便宜,晚上高峰的时候却不是很稳定。不过只用来翻墙浏览网页是足够的。我打算那它来当测试机和翻墙机。它的后台管理十分方便。最爽的是能在四个节点随意来回迁移。我的推广链接:https://bandwagonhost.com/aff.php?aff=2694
4.DigitalOcean
第一次选的是这个VPS,然后感觉访问主页很慢,服务器也不稳定。随后删号。。
5.OneAsiaHost
这是我用过的速度最快的VPS了。位于新加坡。 价格贵,配置低。
6.Server.lu
卢森堡的VPS,价格太贵,后台管理不方便。但十分稳定。有充足预算的小伙伴可以购买它新加坡机房的VPS

最后如果只是想科学上网的话推荐用Bandwagonhost ,如果做网站,受众都在国内还是选阿里,OneAsiaHost,Linode等。

域名

万网的域名下月就要过期。有意思的是快一年了都没让我备案。 不过以防万一,这次在国外站点新申请了域名。 价格便宜量又足。关键是完全自己控制!

1.Godaddy
这家购买的用户似乎最多。如果只购买IP的话一个COM的域名才10块钱。但是它的Whois保护很贵。权衡了一下我后来选择在namecheap (我不会告诉你我是因为觉得这个站点漂亮购买界面清爽才更倾向在这里买的。。。)
2.NameCheap
因为界面好看,然后购买的时候不像Godaddy那样一堆附加的乱七八糟的东西。所以在这家买了。。不过后台的界面很丑。 不介意的话用我的推广链接哦 http://www.namecheap.com/?aff=85624

LNMP环境创建

1.安装Nginx
Nginx是一个高性能的轻量级web服务器,其目的是提供大量的静态内容有效地利用系统资源。与Apache比较起来,Nginx使用异步事件驱动的。提供了更好的性能。

apt-get update && apt-get upgrade
apt-get install nginx
service nginx start
接着在浏览器中输入自己的IP查看Nginx是否运行成功,不知道自己外网IP的同学可以执行下面命令获得。
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

2.安装PHP

apt-get install php5-common php5-mysqlnd php5-xmlrpc php5-curl php5-gd php5-cli php5-fpm php-pear php5-dev php5-imap php5-mcrypt
查看PHP版本
php -v
配置PHP
vim /etc/php5/fpm/php.ini
找到_cgi.fix_pathinfo=_,将值改为0,结果如下
cgi.fix_pathinfo=0
重启一下PHP服务
service php5-fpm restart

3.安装MySQL

apt-get install mysql-server
创建WordPress数据库并创建WordPress用户
mysql -u root -p  --回车后使用刚才安装mysql的时候设置的密码
CREATE DATABASE wordpress; --创建数据库
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';  --创建WP用户和密码
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost; --授予权限
FLUSH PRIVILEGES;  --刷新配置

4.创建Nginx的WordPress配置文件

vim /etc/nginx/sites-available/wordpress
贴入以下内容并保存,该配置可以让WordPress支持permalinks
server {
         listen 80;

        root /var/www/wordpress;
         index index.php index.html index.htm;

        server_name bihell.com;

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
         location = /50x.html {
                 root /usr/share/nginx/html;
         }
 location / {
                 # try_files $uri $uri/ =404;
                 try_files $uri $uri/ /index.php?q=$uri&$args;
         }

        location ~ \.php$ {
                 try_files $uri =404;
                 fastcgi_split_path_info ^(.+\.php)(/.+)$;
                 fastcgi_pass unix:/var/run/php5-fpm.sock;
                 fastcgi_index index.php;
                 include fastcgi_params;
         }

location = /favicon.ico {
         access_log off;
         log_not_found off;
         expires max;
 }
 location = /robots.txt {
         access_log off;
         log_not_found off;
 }

# Cache Static Files For As Long As Possible
 location ~*
 \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$
 {
         access_log off;
         log_not_found off;
         expires max;
 }
 # Security Settings For Better Privacy Deny Hidden Files
 location ~ /\. {
         deny all;
         access_log off;
         log_not_found off;
 }
# Return 403 Forbidden For readme.(txt|html) or license.(txt|html)
 if ($request_uri ~* "^.+(readme|license)\.(txt|html)$") {
     return 403;
 }
 # Disallow PHP In Upload Folder
 location /wp-content/uploads/ {
         location ~ \.php$ {
                 deny all;
         }
 }
 }
创建链接
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress
删除默认配置文件
rm /etc/nginx/sites-enabled/default
Nginx主文件配置
vim /etc/nginx/nginx.conf
注意worker_processes 这边你cpu有几个core就写几
user www-data;
worker_processes 1;
pid /run/nginx.pid;
添加**use epoll;**
events {
worker_connections 4096;
multi_accept on;
use epoll;
}
添加**client_max_body_size** 和 **server_tokens** 并 **keepalive_timeout** 为30秒,结果如下
##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
types_hash_max_size 2048;
server_tokens off;
client_max_body_size  100m;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;
GZip一段配置如下
##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
重启Nginx
service nginx restart

5.配置PHP

vim /etc/php5/fpm/php.ini
设置以下内容
upload_max_filesize=100M
post_max_size=100M
max_execution_time 180
重启PHP服务
service php5-fpm restart

WordPress安装

1.创建网站目录

mkdir /var/www/
cd /var/www/

2.下载最新版的WordPress

wget http://wordpress.org/latest.tar.gz

3.解压

tar -xzvf latest.tar.gz
rm latest.tar.gz

4.设置WP目录的权限

chown -R www-data:www-data wordpress/
usermod -a -G www-data www-data
如果不知道自己Web的线程的用户名,可以通过以下php代码获得
<?php echo(exec("whoami")); ?>

5.接着浏览器输入自己的IP,根据WP向导一步步安装。

主题

我使用的是Avada,62刀买的。虽然贵不过的确强大。先将下载的主题在WP后台上传至服务器。然后安装主题和相关插件。注意Avada资源耗用很大。如果你按照我的部署流程操作的那么只要再修改一处即可,另外最好不要去下国内那些免费的或者比较便宜的主题.保不准有什么不良代码. 去各自主题的官方购买.比如我用的Avada官方http://themeforest.net

vim /var/www/wordpress/wp-includes/default-constants.php

将其中的define(‘WP_MEMORY_LIMIT’, ‘40M’);改为128

define(‘WP_MEMORY_LIMIT’, ‘128M’);

ChangeLog

http://theme-fusion.com/avada-documentation/changelog.txt

Import Avada Classic Pages

https://theme-fusion.com/avada-doc/demo-content-info/import-individual-pages/

参考文档

WHY WORDPRESS ASKS FOR CONNECTION INFO
How To Install WordPress on a LEMP Configuration
Using HHVM With WordPress

打赏支持:支付宝/微信,感谢赏口饭吃