如何在 FreeBSD 10.1 服务器上使用 Nginx 安装 WordPress

介绍

WordPress 是世界上最受欢迎的内容管理系统(CMS)和博客平台. 使用 WordPress,您可以快速配置和定制您的网站,允许您轻松添加内容和调整视觉元素。

在本指南中,我们将使用 Nginx 在 FreeBSD 10.1 机器上安装 WordPress. Nginx 是一个强大的 Web 服务器,在处理大量同时连接方面具有高效性。

<$>[注] 注: 截至 2022 年 7 月 1 日,DigitalOcean 不再支持通过控制面板或 API 创建新的 FreeBSD Droplets。

前提和目标

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

我们将将本指南中的组件添加到配置的FEMP(FreeBSD, Nginx,MySQL和PHP)堆栈中,您可以学习如何在您的FreeBSD 10.1服务器上设置Nginx,MySQL和PHP。

一旦您在您的服务器上安装并配置了 Nginx、MySQL 和 PHP,您可以继续使用本指南,本指南的目标是在我们的 FreeBSD 服务器上安装最新版本的 WordPress。

有一个现有的WordPress包可以通过FreeBSD的pkg命令安装,但它目前依赖PHP版本5.4,从现在开始只会收到安全更新。

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

安装 WordPress 所需的额外的 PHP 扩展

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

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

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

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

安装完成后,如果您正在使用默认的 tcsh 壳,请启动重新安装,以便壳能够找到您的新文件:

1rehash

我们已经安装的所有软件包都是 PHP 扩展程序. 为了使我们的 PHP-FPM 实例能够使用这些新的扩展程序,我们需要重新启动这个过程:

1sudo service php-fpm restart

一旦完成,我们可以开始配置我们的数据库。

创建和配置MySQL数据库

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

首先,您需要使用mysql命令来验证您的数据库系统作为管理用户:

1mysql -u root -p

您将被提示在前面指南中配置的MySQL root用户密码(在运行mysql_secure_installation脚本时)。

我们要做的第一件事是为我们的WordPress实例创建一个数据库,你可以称之为任何你想要的,但我们将使用这个指南的数据库名称WordPress,因为它是语义和容易记住的:

1CREATE DATABASE wordpress;

如果您遇到上述命令的问题,请确保您在语句的末尾有一个半色(;)。

在我们创建数据库后,下一步是创建一个专用用户,我们将使用它来访问数据库. 建议您为每个存储 MySQL 数据的应用程序创建和使用单独的 MySQL 用户。

对于本指南,我们将呼叫我们的新用户wordpressuser并配置访问限制,以便它仅适用于来自服务器本身的连接。

1CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

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

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

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

我们的新用户现在可以访问我们配置的数据库. 为了让当前正在运行的MySQL实例知道这些新变化,我们应该清除特权表:

1FLUSH PRIVILEGES;

最后,我们可以退出MySQL提示,通过键入返回我们的常规壳环境:

1exit

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

下载和配置WordPress

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

WordPress 团队通过始终将最新版本包装到他们的网站上的/latest.tar.gz的档案中来方便这一点,我们可以使用 FreeBSD 的fetch工具下载到我们的主目录:

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

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

1tar xzvf latest.tar.gz

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

1rm latest.tar.gz
2cd wordpress

内部有一个样本配置文件,我们可以用作我们的安装模板。 复制该文件到‘wp-config.php’文件名,将被WordPress读取:

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

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

1vi wp-config.php

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

 1. . .
 2
 3/** The name of the database for WordPress */
 4define('DB_NAME', 'wordpress');
 5
 6/** MySQL database username */
 7define('DB_USER', 'wordpressuser');
 8
 9/** MySQL database password */
10define('DB_PASSWORD', 'password');
11
12. . .

当您完成更改这些值后,保存并关闭文件。

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

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

接下来,我们需要调整我们的WordPress文件的所有者,以便我们的Web服务器在适当的情况下进行更改。

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

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

配置 Nginx

在我们最后的指南中,我们设置了 Nginx 来服务默认的 Nginx 网页,并将其配置为将 PHP 请求传递到我们的 PHP-FPM 实例。

打开sudo特权的 Nginx 配置文件,进行我们的更改:

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

如果您遵循上一个指南的指示,您的文件应该看起来类似于这个(为了澄清,我们已删除下面的评论):

 1user www;
 2worker_processes 2;
 3error_log /var/log/nginx/error.log info;
 4
 5events {
 6    worker_connections 1024;
 7}
 8
 9http {
10    include mime.types;
11    default_type application/octet-stream;
12
13    access_log /var/log/nginx/access.log;
14
15    sendfile on;
16    keepalive_timeout 65;
17
18    server {
19        listen 80;
20        server_name example.com www.example.com;
21        root /usr/local/www/nginx;
22        index index.php index.html index.htm;
23
24        location / {
25            try_files $uri/ $uri/ =404;
26        }
27
28        error_page 500 502 503 504  /50x.html;
29        location = /50x.html {
30            root /usr/local/www/nginx-dist;
31        }
32
33        location ~ \.php$ {
34                try_files $uri =404;
35                fastcgi_split_path_info ^(.+\.php)(/.+)$;
36                fastcgi_pass unix:/var/run/php-fpm.sock;
37                fastcgi_index index.php;
38                fastcgi_param SCRIPT_FILENAME $request_filename;
39                include fastcgi_params;
40        }
41    }
42}

我们将不得不进行两次调整,以确保我们的WordPress正常工作。

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

1server {
2
3    . . .
4
5    root /usr/local/www/wordpress;
6
7    . . .
8
9}

目前,配置告诉 Nginx 先尝试找到请求作为文件. 如果它找不到匹配的文件,它会尝试找到匹配请求的目录. 如果这不会产生任何结果, Nginx 会发出一个 404 错误,表明该资源无法找到。

我们需要修改这一点,以便而不是以404错误结束,请求被重写为index.php文件。原始请求和参数将被传输为查询参数。

 1server {
 2
 3    . . .
 4
 5    location / {
 6        try_files $uri $uri/ /index.php?q=$uri&$args;
 7    }
 8
 9    . . .
10
11}

完成后,配置文件应该看起来像这样:

 1user www;
 2worker_processes 2;
 3error_log /var/log/nginx/error.log info;
 4
 5events {
 6    worker_connections 1024;
 7}
 8
 9http {
10    include mime.types;
11    default_type application/octet-stream;
12
13    access_log /var/log/nginx/access.log;
14
15    sendfile on;
16    keepalive_timeout 65;
17
18    server {
19        listen 80;
20        server_name example.com www.example.com;
21        root /usr/local/www/wordpress;
22        index index.php index.html index.htm;
23
24        location / {
25            try_files $uri $uri/ /index.php?q=$uri&$args;
26        }
27
28        error_page 500 502 503 504  /50x.html;
29        location = /50x.html {
30            root /usr/local/www/nginx-dist;
31        }
32
33        location ~ \.php$ {
34                try_files $uri =404;
35                fastcgi_split_path_info ^(.+\.php)(/.+)$;
36                fastcgi_pass unix:/var/run/php-fpm.sock;
37                fastcgi_index index.php;
38                fastcgi_param SCRIPT_FILENAME $request_filename;
39                include fastcgi_params;
40        }
41    }
42}

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

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

1sudo nginx -t

如果没有发现任何错误,请重新启动服务:

1sudo service nginx restart

通过 Web 界面完成安装

我们的WordPress安装现在完全配置在服务器端,我们可以使用Web浏览器完成剩余的过程。

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

1http://example.com

WordPress 會先問你要使用哪種語言:

WordPress select language

进行选择后,您将被带到初始配置页面来设置您的WordPress安装:

WordPress installation

填写您的网站的名称,并选择您希望使用的用户名来管理该网站. 您将需要选择并确认您的网站的密码,并填写一个电子邮件地址,在那里您可以被访问。

当你已经做出了你的选择,点击页面底部的安装WordPress按钮,你将被要求使用你刚刚选择的凭证登录网站。

登录后,您将被介绍为您的新的WordPress安装的管理面板:

WordPress admin interface

您可以使用此界面发布新内容,修改您的网站的外观,并安装和配置插件以利用额外的功能。

结论

你现在有一个新的WordPress安装和运行支持 Nginx,MySQL和PHP。WordPress是令人难以置信的强大,允许你根据你的偏好显示许多不同类型的内容。

Published At
Categories with 技术
comments powered by Disqus