Debian 8下部署LNMP (Nginx, MariaDB,PHP)与WordPress


LNMP是一组用于搭建网站的开源软件。LNMP代表Linux操作系统、Ngnix HTTP服务器(发音为Engine X)、MariaDB数据库和PHP。在这篇教程中,我将介绍如何在Debian 8 服务器上安装LNMP。数据库选择MariaDB. 以下命令在Debian服务器上执行。

添加源

将以下源添加进etc/apt/sources.list文件中

deb http://ftp.debian.org/debian/ jessie main
deb-src http://ftp.debian.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://ftp.debian.org/debian/ jessie-updates main
deb-src http://ftp.debian.org/debian/ jessie-updates main
deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx
deb http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

添加key:

wget http://nginx.org/keys/nginx_signing.key

apt-key add nginx_signing.key

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

wget https://www.dotdeb.org/dotdeb.gpg

apt-key add dotdeb.gpg

更新软件包:

apt-get update

安装Nginx

相对于Apache,Nginx是一个轻量级的高性能web服务器并在近年来越来越流行。Nginx也可以同时作为一个反向代理。在Debian8上安装Nginx, 输入下面的命令。

apt-get install nginx -y

安装完成后,Nginx会自动运行。

service nginx status

查看Nginx版本

nginx -v

在浏览器地址栏中输入Debian服务器的IP, 回车。如果你看到下面的文字,说明Nginx正确地安装好了。

安装MariaDB

MariaDB是MySQL的一个替代品。使用下面的命令安装:

apt-get install -y mariadb-server mariadb-client

在安装过程中会要求你为MariaDB root用户设置一个密码。输入密码后按回车。记住,MariaDB root用户是数据库的管理员,与Linux的root用户是不同的。

再次输入密码并回车。

查看MariaDB版本

mysql --version

运行安全脚本

mysql_secure_installation

输入MariaDB root用户密码。第一个选择n. 然后你可以一路按回车键来回答其他所有的问题。 MariaDB数据库安装完成。

安装PHP

PHP是PHP: Hypertext Preprocessor的递归缩写,它是一个通用的开源的服务端脚本语言。输入下面的命令安装:

apt-get install php-fpm php-mysql php-common php-gd php-json php-cli php-curl php-mbstring

配置Nginx

用你最喜欢的命令行文本编辑器打开/etc/nginx/nginx.conf文件,我用的是vi文本编辑器。

vi /etc/nginx/nginx.conf

第一行user nginx; 将nginx替换为www-data

在这个文件中为找到worker_processes,为它指定一个值,这个值就是服务器CPU的数量。使用下面的命令查看服务器CPU的数量:

lscpu

我的服务器只有一个CPU,所以我将worker_processes的值设为1。

worker_processes 1;

修改/etc/nginx/conf.d/default.conf文件

vi /etc/nginx/conf.d/default.conf

删除原内容,将下面的内容添加到文件中。

server {
listen 80;
server_name debian.local;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ =404;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

location = /50x.html {
root /var/www/html;
}

location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

其中,root /var/www/html; 表示网站的根目录,server_name debian.local 表示Server FQDN. 保存文件并退出文本编辑器。 重启Nginx:

service nginx restart

测试nginx的配置

输入下面的命令以查看nginx的配置中有没有语法错误:

nginx -t

如果没有语法错误,那么命令输出结果如下:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

测试PHP

在网站的根目录下面创建一个testphp.php文件。

vi /var/www/html/testphp.php

在文件中添加如下内容

<?php
  phpinfo();
?>

保存文件后退出。在浏览器地址栏输入http://server-ip/testphp.php。将server-ip替换成Debian服务器的IP地址。testphp.php文件中的phpinfo()函数将在浏览器中显示服务器PHP的信息,比如PHP版本,build date。 LNMP安装完成。

关于Wordpress

WordPress是一个免费自由开源的博客平台。在全球流量前1000万的网站中,超过18.9%使用WordPress来搭建网站。这使得WordPress成为最流行的博客系统。

下载并设置WordPress

安装好LEMP后,通过SSH登录Debian 8 。然后输入下面的命令下载WordPress:

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

下载完后,解压安装包:

tar -xzvf latest.tar.gz

解压后,在用户的home目录会生成一个wordpress目录。

为WordPress创建一个数据库和用户

首先输入下面的命令以root用户登录MySQL shell,注意这个root用户是MySQL数据库的root用户,不是Debian系统上的root用户。

mysql -u root -p

这篇教程将创建一个名为wordpress的数据库,你也可以将数据库命名为其他名字,比如wp。在MySQL shell中输入下面的命令,注意不要漏掉分号。如果你漏掉了分号,那么可以在下一行添加分号,再按Enter键。

create database wordpress;

然后为新建的数据库创建一个新的用户。这篇教程创建的用户是wpuser。

create user [email protected];

为新用户设置密码:

set password for [email protected]= password("dbpassword");

赋予用户所有的权限,否则wordpress的安装程序不能启动。

grant all privileges on wordpress.* to [email protected] identified by 'dbpassword';

刷新MySQL

flush privileges;

退出MySQL shell

exit

设置WordPress

我们需要把WordPress的样本配置文件的内容复制到一个新的文件中,然后在新文件中编辑内容。

cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php

用nano文本编辑器打开新文件wp-config.php,你也可以用vim文本编辑器。

nano ~/wordpress/wp-config.php

在wp-config.php文件中找到如下内容,根据之前的自己的设置修改文件中的数据库名、用户名和密码。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wpuser');

/** MySQL database password */
define('DB_PASSWORD', 'dbpassword');

保存文件后退出nano文本编辑器。

复制文件

将wordpress目录下的所有文件复制到网站根目录:

cp -r ~/wordpress/* /var/www/html/

(如果没有这个文件夹,请在目录下创建)

最后我们需要将网站根目录的所有者更改为nginx用户,否则在wordpress安装主题和插件时会要求你输入FTP用户名和密码。www-data是nginx用户,我们需要将当前用户添加到www-data组中,使当前用户也可以对网站根目录进行读写。输入下面的命令

chown www-data:www-data /var/www/html/ -R

usermod -a -G www-data www-data

newgrp www-data

安装WordPress

然后在浏览器的地址栏输入 ip/wp-admin/install.php,ip是Debian VPS的IP地址。填写好弹出来的表单。 填写好表单后,wordpress就安装好了。我们现在可以在浏览器地址栏输入Debian VPS的IP地址来访问我们的网站了。