This website requires JavaScript.

在LEMP环境中安装WordPress

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

VPS选择

笔者之前一直使用Windows Azure,因为下个月就要到期,国内VPS太贵,每个月要好几百 ,因此两周都在寻找国外VPS主机,便宜性能好而且还能翻墙 以下是我用的VPS。

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

域名

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

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

LNMP环境创建

安装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/\/.*$//'

安装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

编辑 /etc/php5/fpm/php.ini找到cgi.fix_pathinfo=,将值改为0,结果如下

cgi.fix_pathinfo=0

重启一下PHP服务

service php5-fpm restart

安装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;  --刷新配置

创建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_sizeserver_tokenskeepalive_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;
</pre>
GZip一段配置如下
<pre class="lang:default decode:true ">
##
# 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

配置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安装

创建网站目录

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

下载最新版的WordPress

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

解压

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

设置WP目录的权限

chown -R www-data:www-data wordpress/
usermod -a -G www-data www-data

如果不知道自己Web的线程的用户名,可以通过以下php代码获得

<?php echo(exec("whoami")); ?>;

接着浏览器输入自己的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

0条评论
avatar