介绍
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 新手,您可能希望从查看可选主题和插件开始。