介绍
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安装:
填写您的网站的名称,并选择您希望使用的用户名来管理该网站. 您将需要选择并确认您的网站的密码,并填写一个电子邮件地址,在那里您可以被访问。
当你已经做出了你的选择,点击页面底部的安装WordPress
按钮,你将被要求使用你刚刚选择的凭证登录网站。
登录后,您将被介绍为您的新的WordPress安装的管理面板:
您可以使用此界面发布新内容,修改您的网站的外观,并安装和配置插件以利用额外的功能。
结论
你现在有一个新的WordPress安装和运行支持 Nginx,MySQL和PHP。WordPress是令人难以置信的强大,允许你根据你的偏好显示许多不同类型的内容。