如何在LEMP环境下安装WordPress
介绍
在本教程中,您将学习如何在新创建的实例上安装WordPress。我将在Ubuntu 14.04服务器上演示安装。这些说明也可能适用于较早版本的Ubuntu和Debian。
那么,我们开始吧。
第一步:更新现有的软件包
apt-get update && apt-get upgrade
第二步:安装Nginx
Nginx是一款高性能的轻量级Web服务器,其特点和优势是,通过有效使用系统资源,可以提供大量静态内容。与Apache不同,Nginx使用异步事件驱动模型,在大负载的情况下可以提供更值得期待的性能。
我们添加第三方软件源以安装最新版本的Nginx(1.6.1)。
sudo apt-get install python-software-properties
add-apt-repository -y ppa:rtcamp/nginx
sudo apt-get update
sudo apt-get install nginx
service nginx start
现在,让我们来测试服务器是否启动并运行。
http://YOUR-VPS-IP
这会带你到Nginx的默认登陆页面。
第三步:安装PHP 5.5
PHP是一种广泛使用的开源通用脚本语言,特别适用于Web开发,并且可以嵌入到HTML中。
让我们在我们的服务器上安装最新版本的PHP。
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo 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 5.5.16-1+deb.sury.org~trusty+1 (cli) (built: Aug 25 2014 10:24:59)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
withZendOPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
现在,我们将稍作修改以使设置更安全。以root权限打开主php5-fpm配置文件:
sudo nano /etc/php5/fpm/php.ini
按下Ctrl + W并搜索cgi.fix_pathinfo=
。取消注释(删除行首的英文分号”;”)并将1更改为0.更改后,该行应如下所示:
cgi.fix_pathinfo=0
保存( Ctrl + O )并关闭文件( Ctrl + X )。
现在,我们只需要重新启动我们的PHP处理器,输入:
sudo service php5-fpm restart
第四步:安装MySQL
为了存储和管理数据库,我们需要安装MySQL。您可以通过在控制台中输入以下内容轻松安装它:
sudo apt-get install mysql-server
在安装过程中,您将被要求为MySQL设置一个root密码。设置了root密码后,我们需要告诉MySQL生成它将用来存储数据库的目录结构。
sudo mysql_install_db
让我们通过运行一个安全脚本来完成它,它将修改一些默认配置以增强安全性。
sudo mysql_secure_installation
只需输入MySQL root密码,如果你不想改变当前密码,输入n
。之后,在每个问题上输入y
。
设置时区(根据需要操作)
默认情况下,服务器的时区是UTC。如果您生活在不同的时区,可以通过输入以下命令来更改它:
sudo dpkg-reconfigure tzdata
此时,您的LEMP服务器已启动并正在运行。
第五步:配置Nginx来为WordPress提供服务
让我们通过为我们的网站创建一个Nginx服务器块来开始我们的Wordpress安装。
sudo nano /etc/nginx/sites-available/wordpress
将以下代码粘贴到那里:
server {
listen 80;
root /var/www/wordpress;
index index.php index.html index.htm;
server_name domain.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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
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;
}
}
}
这是一个针对WordPress做了相应调整的的配置文件的很好示例,可以长期使用,它可以保证效率、安全。保存( Ctrl + O )并关闭文件( Ctrl + X )。让我们通过symlinking启用服务器块:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress
接下来,我们将删除Nginx默认开启的站点。
sudo rm /etc/nginx/sites-enabled/default
现在,我们将调整主要的Nginx配置文件:
sudo nano /etc/nginx/nginx.conf
确保工作进程的数量等于实例中的核心数量。
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 off
指令。将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;
保存( Ctrl + O )并关闭文件( Ctrl + X )。然后重新启动服务器:
sudo service nginx restart
第六步:配置PHP
如果您想将超过2mb的文件上传到您的WordPress网站,您必须在php.ini中增加PHP上传大小变量。
sudo nano /etc/php5/fpm/php.ini
现在,按Ctrl + W并搜索” upload_max_filesize “并将其设置为100m。
upload_max_filesize=100M
用post_max_size做同样的事情。post_max_size需要与upload_max_filesize相同或更大。
post_max_size=100M
重新启动PHP-FPM。
sudo service php5-fpm restart
第七步:建立MySQL数据库
在这一步中,我们将创建数据库用户和表。继续并登录到MySQL shell:
mysql -u root -p
使用您的MySQLroot密码登录。我们需要创建一个WordPress数据库以及数据库中的用户。首先,让我们创建数据库(可根据你的需求、喜好任意命名):
CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)
之后,我们需要创建一个新用户。请根据您的喜好更换数据库,名称和密码:
CREATE USER wordpressuser@localhost;
Query OK, 0 rows affected (0.00 sec)
为新用户设置一个密码:
SET PASSWORD FOR wordpressuser@localhost= PASSWORD("password");
Query OK, 0 rows affected (0.00 sec)
向新用户授予所有权限。没有这个命令,WordPress安装程序将无法启动:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
然后刷新MySQL权限:
FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
退出MySQL shell:
exit
第八步:安装WordPress文件
就要完成了,现在我们开始安装WordPress。
首先导航到网站根目录:
mkdir /var/www/
cd /var/www/
现在,下载最新版本的WordPress:
wget http://wordpress.org/latest.tar.gz
从压缩包中提取WordPress程序:
tar -xzvf latest.tar.gz
将/var/www/wordpress
的所有者更改为www-data
用户。它将允许将来自动更新WordPress插件,以及使用SFTP进行文件编辑。
sudo chown -R www-data:www-data wordpress/
sudo usermod -a -G www-data www-data
你完成了!您的新WordPress网站已准备就绪。只需导航到您的网站并完成安装。