如何在FreeBSD10.1服务器上使用Nginx安装WordPress

来自菜鸟教程
跳转至:导航、​搜索

介绍

WordPress 是世界上最流行的内容管理系统 (CMS) 和博客平台。 使用 WordPress,您可以快速配置和自定义您的网站,从而轻松添加内容和调整视觉元素。

在本指南中,我们将在 FreeBSD 10.1 机器上安装 WordPress,使用 Nginx 来提供我们的内容。 Nginx 是一个强大的 Web 服务器,可以高效地处理大量并发连接。 我们将利用它作为我们将在本指南中设置的 WordPress 安装的基础。

先决条件和目标

为了完成本指南,应该采取一些初步步骤来准备好您的服务器。

我们会将本指南中的组件添加到已配置的 FEMP(FreeBSD、Nginx、MySQL 和 PHP)堆栈中。 您可以使用我们的指南 here 在您的 FreeBSD 10.1 服务器上了解如何在您的 FreeBSD 10.1 服务器上设置 Nginx、MySQL 和 PHP。

在您的服务器上安装和配置 Nginx、MySQL 和 PHP 后,您可以继续阅读本指南。 我们在本指南中的目标是在我们的 FreeBSD 服务器上安装最新版本的 WordPress。

有一个现有的 WordPress 软件包可以通过 FreeBSD 的 pkg 命令安装,但它目前依赖于 PHP 5.4 版,从现在开始只会接收安全更新。 它的总寿命将在 2015 年 9 月结束。

为确保我们的网站建立在能够长期获得支持的基础上,我们将从项目网站下载并安装最新版本的 WordPress,并使用 PHP 5.6 版来处理动态内容。

安装 WordPress 需要的其他 PHP 扩展

当我们在 FEMP 指南中的 FreeBSD 服务器上设置 PHP 时,我们安装了 php56 包和 php56-mysql 包,以便我们的 PHP 实例可以在需要时从 MySQL 数据库中查询数据。

这代表了允许 PHP 用作各种不同应用程序的基础所需的最低配置。 WordPress 将使用 php56-mysql 包,但它还需要一些额外的扩展才能实现其许多核心功能。

幸运的是,这些可以使用 pkg 命令轻松安装。 通过键入以下内容下载并安装所需的扩展:

sudo pkg install php56-xml php56-hash php56-gd php56-curl php56-tokenizer php56-zlib php56-zip

安装完成后,如果您使用默认的 tcsh shell,请启动 rehash 以便 shell 可以找到您的新文件:

rehash

我们安装的所有软件包都是 PHP 扩展。 为了让我们的 PHP-FPM 实例使用这些新扩展,我们必须重新启动该过程:

sudo service php-fpm restart

完成后,我们就可以开始配置我们的数据库了。

创建和配置 MySQL 数据库

WordPress 需要一个 SQL 风格的数据库来存储网站内容和用户数据。 我们在之前的指南中安装了 MySQL,因此我们拥有创建和提供对此类数据库的访问所需的工具。

首先,您需要使用 mysql 命令以管理用户身份向您的数据库系统进行身份验证:

mysql -u root -p

系统将提示您输入您在上一指南中配置的 MySQL root 用户密码(在运行 mysql_secure_installation 脚本时)。 输入正确的密码后,您将进入 MySQL 提示符。

我们要做的第一件事是为我们的 WordPress 实例创建一个数据库。 您可以随意调用它,但我们将在本指南中使用数据库名称 wordpress,因为它具有语义且易于记忆:

CREATE DATABASE wordpress;

如果您在使用上述命令时遇到问题,请确保您的语句末尾有一个分号 (;)。 SQL 查询语言要求所有语句以分号结尾。

创建数据库后,下一步是创建一个专用用户,用于访问数据库。 建议您为在 MySQL 中存储数据的每个应用程序创建和使用单独的 MySQL 用户。 这有助于最大限度地减少安全问题的范围。

对于本指南,我们将调用我们的新用户 wordpressuser 并配置访问限制,使其仅对源自服务器本身的连接有效。 我们还将为用户设置密码:

CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

请记住将上述命令中的 password 组件更改为安全密码。 稍后您将需要记住此值。

我们现在已经创建了 WordPress 安装所需的两个 MySQL 组件。 但是,它们尚未以任何方式连接。 我们需要让我们的新用户访问 WordPress 数据库,以便它可以设置和管理我们网站的数据。 为此,请键入:

GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;

我们的新用户现在可以访问我们配置的数据库。 为了让当前正在运行的 MySQL 实例知道这些新更改,我们应该刷新权限表:

FLUSH PRIVILEGES;

最后,我们可以通过键入以下命令退出 MySQL 提示符以返回到我们的常规 shell 环境:

exit

现在我们已经准备好数据库和用户,我们可以下载和配置实际的 WordPress 文件。

下载和配置 WordPress

我们将从项目网站下载最新版本的 WordPress 以用于我们的安装。 由于可能存在安全更新,因此始终使用最新版本的 WordPress 非常重要。

WordPress 团队始终将最新版本打包到他们网站上 /latest.tar.gz 的存档中,从而使这一切变得容易。 我们可以使用 FreeBSD fetch 实用程序将它下载到我们的主目录中:

cd ~
fetch http://wordpress.org/latest.tar.gz

下载文件后,我们可以使用 tar 命令提取 WordPress 文件和目录结构:

tar xzvf latest.tar.gz

将创建的目录将称为 wordpress。 删除 .tar.gz 存档,然后移动到该目录,以便我们可以开始配置:

rm latest.tar.gz
cd wordpress

在里面,有一个示例配置文件,我们可以将其用作安装模板。 将文件复制到 WordPress 将读取的 wp-config.php 文件名:

cp wp-config-sample.php wp-config.php

现在,我们可以打开文件进行编辑,以便为我们在上一节中设置的 MySQL 数据库和用户配置访问凭据:

vi wp-config.php

在内部,您必须更改三个值,以便 WordPress 正确连接并使用您的 MySQL 系统。 DB_NAME 变量定义了您创建的 MySQL 数据库的名称,DB_USER 应设置为您创建的用户,并且 DB_PASSWORD 应修改为包含您的密码为该用户选择:

. . .

/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

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

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

. . .

修改完这些值后,保存并关闭文件。

接下来,我们可以将 WordPress 安装复制到保存各种站点文件的 /usr/local/www 目录中。 我们将使用 rsync 实用程序,因为它允许我们在移动过程中维护某些文件属性:

sudo rsync -avP ~/wordpress /usr/local/www

接下来,我们需要调整 WordPress 文件的所有者,以便我们的 Web 服务器可以在适当的地方进行更改。 我们的 web 用户和组都称为 www

sudo chown -R www:www /usr/local/www/wordpress

现在您的 WordPress 文件已经配置正确,我们可以修改我们的 Nginx 配置。

配置 Nginx

在上一篇指南中,我们设置 Nginx 以提供默认 Nginx 网页并将其配置为将 PHP 请求传递给我们的 PHP-FPM 实例。 这将我们大部分的方式带到我们需要的 WordPress 配置。

使用 sudo 权限打开 Nginx 配置文件进行更改:

sudo vi /usr/local/etc/nginx/nginx.conf

如果您按照上一个指南中的说明进行操作,您的文件应该与此类似(为清楚起见,我们删除了以下评论):

user  www;
worker_processes  2;
error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  example.com www.example.com;
        root /usr/local/www/nginx;
        index index.php index.html index.htm;

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

        error_page      500 502 503 504  /50x.html;
        location = /50x.html {
            root /usr/local/www/nginx-dist;
        }

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

我们将不得不进行两项调整,以确保我们的 WordPress 能够正常运行。

首先,我们需要调整文档根目录,因为我们的 WordPress 文件位于 /usr/local/www/wordpress 目录中:

server {

    . . .

    root /usr/local/www/wordpress;

    . . .

}

我们需要进行的另一项更改是对 location / 块中的 try_files 指令。 目前,配置告诉 Nginx 首先尝试将请求作为文件查找。 如果它找不到匹配的文件,它会尝试找到与请求匹配的目录。 如果这没有产生任何结果,Nginx 会发出 404 错误,指示找不到资源。

我们需要对此进行修改,以便将请求重写为 index.php 文件,而不是以 404 错误结束。 原始请求和参数将作为查询参数传入。 我们可以通过修改 try_files 指令来配置它,如下所示:

server {

    . . .

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    . . .

}

完成后,配置文件应如下所示:

user  www;
worker_processes  2;
error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  example.com www.example.com;
        root /usr/local/www/wordpress;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        error_page      500 502 503 504  /50x.html;
        location = /50x.html {
            root /usr/local/www/nginx-dist;
        }

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

完成上述修改后,保存并关闭文件。

现在,我们可以重新启动 Nginx 以实现我们的新更改。 首先,仔细检查我们的语法是否正确:

sudo nginx -t

如果没有发现错误,重启服务:

sudo service nginx restart

通过 Web 界面完成安装

我们的 WordPress 安装现在已在服务器端完全配置。 我们可以使用网络浏览器完成剩下的过程。

在您的网络浏览器中,访问您服务器的域名或 IP 地址:

http://example.com

WordPress 将首先询问您希望使用哪种语言:

做出选择后,您将被带到初始配置页面以设置您的 WordPress 安装:

填写您的站点名称,然后选择您要用于管理站点的用户名。 您必须选择并确认您网站的密码,并填写可以联系到您的电子邮件地址。 最后一个选项是选择是否允许搜索引擎索引站点。

做出选择后,单击页面底部的“安装 WordPress”按钮。 系统将要求您使用刚刚选择的凭据登录该站点。

登录后,您将看到新 WordPress 安装的管理面板:

您可以使用此界面发布新内容、修改站点外观以及安装和配置插件以利用附加功能。

结论

您现在有了一个全新的 WordPress 安装并运行由 Nginx、MySQL 和 PHP 支持。 WordPress 非常强大,可让您根据自己的喜好显示许多不同类型的内容。 如果您是 WordPress 新手,您可能希望从查看可选主题和插件开始。