介绍
WordPress 是世界上最流行的 CMS(内容管理系统)。 它使您可以轻松地启动和运行您的网站或博客。 安装后,您可以在一个简单的 Web 界面中管理几乎所有内容。
在本指南中,我们将介绍如何在 Ubuntu 14.04 服务器上安装 WordPress。 对于 Web 服务器组件,我们将使用 nginx,这是一个强大且高效的 Web 服务器,由于其性能能力而被广泛采用。
先决条件
在开始阅读本指南之前,您应该执行一些程序。
首先,您需要一个具有 sudo 权限的非 root 用户。 您可以通过Ubuntu 14.04初始服务器设置指南中的步骤1-4来创建此帐户。
您还需要在服务器上安装和配置 LEMP(Linux 操作系统、Nginx Web 服务器、MySQL 数据库和 PHP 处理)堆栈。 您可以按照我们在 在 Ubuntu 14.04 上安装 LEMP 堆栈的指南学习如何安装和设置必要的组件。
完成上述步骤后,您可以继续。
第一步——为 WordPress 创建一个 MySQL 数据库和用户
开始使用 WordPress 需要做的第一件事是准备我们的数据库。
我们已经安装了 MySQL 数据库软件,但我们还没有为我们的 WordPress 信息创建数据库。 我们还需要创建一个 WordPress 可以用来访问我们将创建的数据库的帐户。
我们应该首先使用我们的 MySQL 管理帐户登录一个交互式会话,如下所示:
mysql -u root -p
安装软件时,系统将提示您输入为 MySQL root 帐户选择的密码。 您将获得一个 MySQL 命令提示符。
现在,我们可以创建一个单独的数据库,供我们的 WordPress 应用程序使用。 名称并不重要,但它可能应该是描述性的,以便您可以轻松识别它。 在本指南中,我们将调用我们的数据库 wordpress
:
创建数据库wordpress ;
注意结束 MySQL 语句的分号 (;)。 每个 MySQL 语句必须以一个结尾,因此请仔细检查您是否遇到问题。
我们现在有一个数据库,所以我们准备创建一个用户帐户。 然后,我们将把数据库的控制权交给这个新用户,以便我们的应用程序可以与数据库进行交互。 这种为每个应用程序创建单独的数据库和用户的系统有助于将我们的数据与 MySQL 存储的其他数据分开,这有利于安全性和数据管理。
对于本指南,我们将选择 wordpressuser
作为我们的帐户名称。 我们将为其分配一个密码 password
以进行身份验证。 当您设置自己的配置时,您应该选择一个更安全的密码:
创建用户wordpressuser @localhost 由“密码”识别;
现在,我们有一个数据库和一个用户,但我们还没有建立两者之间的关系。 我们需要告诉 MySQL,我们的新用户可以访问和控制数据库。 您可以使用以下命令执行此操作:
GRANT ALL PRIVILEGES ON wordpress .* TO wordpressuser @localhost ;
现在一切都应该正确配置。 我们需要将权限刷新到磁盘,以便我们当前的 MySQL 实例知道我们所做的权限更改:
FLUSH PRIVILEGES;
现在,退出 MySQL 提示符:
exit
现在我们回到命令提示符,准备继续。
第二步 — 将 WordPress 下载到您的服务器
接下来,我们需要将实际的 WordPress 内容下载到我们的服务器上。 这可在 WordPress 网站 上找到。
应用程序的最新稳定版本始终具有相同的 URL,这使得这部分变得容易。 我们要将文件下载到用户的主目录:
cd ~ wget http://wordpress.org/latest.tar.gz
我们的应用程序文件已作为压缩归档目录结构下载,存储在名为 latest.tar.gz
的文件中。 我们可以通过键入以下内容来提取内容:
tar xzvf latest.tar.gz
这将创建一个名为 wordpress
的目录,其中包含站点文件。
我们应该借此机会下载一些我们的 WordPress 实例需要的额外组件。 我们可以使用 apt
直接从 Ubuntu 的软件存储库中获取这些:
sudo apt-get update sudo apt-get install php5-gd libssh2-php
这两个包允许您分别使用 SSH 处理图像和安装/更新插件和组件。
第三步——配置 WordPress
我们现在有了文件,所以我们可以开始配置我们的 WordPress 实例。
我们需要修改位于新目录中的主配置文件。 移动到您在上一节中提取的目录:
cd ~/wordpress
在这个目录中,我们有一个名为 wp-config-sample.php
的示例配置文件。 这使得大部分配置细节都是正确的,所以我们可以复制它作为我们配置文件的基础:
cp wp-config-sample.php wp-config.php
当我们打开文件时,我们的首要任务是调整一些密钥,为我们的安装提供一些安全性。 WordPress 为这些值提供了一个安全的生成器,因此您不必自己尝试提出好的值。 这些仅在内部使用,因此在这里使用复杂、安全的值不会损害可用性。
要从 WordPress 密钥生成器中获取安全值,请键入:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
您将获得如下所示的唯一值:
警告
每次都请求唯一值很重要。 NOT 复制下面显示的值!
Outputdefine('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
这些是我们可以直接粘贴到配置文件中以设置安全密钥的配置行。 复制您现在收到的输出。
现在,打开 WordPress 配置文件:
nano wp-config.php
找到包含这些设置的虚拟值的部分。 它看起来像这样:
/var/www/html/wp-config.php
. . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . .
删除这些行并粘贴您从命令行复制的值:
/var/www/html/wp-config.php
. . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . .
该文件现在适合我们的需要; 它只是缺少连接到我们创建的数据库的信息。 我们需要设置的参数是DB_NAME
、DB_USER
、DB_PASSWORD
。
我们可以在这个文件中找到这些参数并将它们设置为使用我们创建的数据库和用户详细信息。 我的文件如下所示:
. . . // ** MySQL 设置 - 您可以从您的虚拟主机获取此信息 ** // /** WordPress 数据库的名称 */ define('DB_NAME', ' wordpress '); /** MySQL 数据库用户名 */ define('DB_USER', ' wordpressuser '); /** MySQL 数据库密码 */ define('DB_PASSWORD', ' password '); . . .
完成上述更改后,保存并关闭文件。
第四步 - 将文件复制到文档根目录
我们对配置文件进行了更改。 下一步是将它们复制到我们的文档根目录,以便我们的 Web 服务器可以找到并提供它们。
我们将使用 rsync
实用程序进行传输。 这具有保留权限、所有权和确保数据完整性的优势。
Ubuntu 14.04上nginx默认文档根目录的位置是/usr/share/nginx/html/
。
但是,我们将在 /var/www/html/
中设置我们的文档根目录,以避免修改由 nginx 包控制的目录位置。 稍后我们将在我们的 nginx 配置中更改它。
我们可以通过键入以下内容来创建新的文档根目录:
sudo mkdir -p /var/www/html
现在,我们可以通过键入以下命令将文件复制到此位置:
sudo rsync -avP ~/wordpress/ /var/www/html/
这将递归地将我们的 ~/wordpress
目录的内容复制到我们的文档根目录中。
接下来,让我们转到文档根目录,以便我们可以调整一些权限:
cd /var/www/html/
现在的目录结构的问题是我们所有的文件都将用户和组所有权分配给我们的普通用户。 这很好,只是我们的 Web 服务器需要能够修改某些目录和文件。
我们可以通过授予我们的 Web 服务器在文件的组所有权下运行的组来授予此权限,而不会暴露太多系统。 然后我们可以根据需要稍微开放组权限。
nginx运行的组是www-data
。 对于用户部分,输入您的用户帐户名称。 我们将在这里使用一个名为 demo
的帐户进行演示:
sudo chown -R演示:www-data /var/www/html/*
这将为我们的文件提供必要的所有权。
在继续之前,我们应该为用户上传创建一个新目录:
mkdir wp-content/uploads
新目录应该已经设置了组写入,但新目录尚未分配 www-data
组所有权。 让我们解决这个问题:
sudo chown -R :www-data /var/www/html/wp-content/uploads
第五步——修改 Nginx 服务器块
我们已经配置了文件和目录。 现在我们需要修改我们的 nginx 配置以正确地提供内容。
我们可以使用默认的 nginx 服务器块作为新服务器块的基础。 像这样复制它:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress
打开我们创建的新文件,以便我们可以进行一些更改:
sudo nano /etc/nginx/sites-available/wordpress
我们将要进行以下更改:
服务器 { 听 80 default_server; 听 [::]:80 default_server ipv6only=on; root <span class="highlight">/var/www/html</span>; index <span class="highlight">index.php</span> index.html index.htm; server_name <span class="highlight">your_domain.com</span>; location / { <span class="highlight">#</span> try_files $uri $uri/ =404; try_files $uri $uri/ <span class="highlight">/index.php?q=$uri&$args</span>; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
}
您应该进行的更改摘要如下:
- 更改
root
指令的值以指向我们在/var/www/html
处的新文档根。 - 修改
index
参数以在其他文件之前查找index.php
文件。 - 将
server_name
指令的值更改为指向您服务器的域名或 IP 地址。 - 调整
location /
块中的try_files
以在请求不完全匹配时向 PHP 发送请求。
其中一些可能已经从您的 LEMP 安装中设置。 完成这些更改后,保存并关闭文件。
我们需要将新文件链接到 sites-enabled
目录才能激活它。 我们可以这样做:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
我们刚刚链接的文件与我们的旧默认文件冲突,因为它从中借了很多东西。 我们需要禁用旧文件:
sudo rm /etc/nginx/sites-enabled/default
现在,重新启动 Web 服务器和 PHP 处理器以启用我们的更改:
sudo service nginx restart sudo service php5-fpm restart
第六步 — 通过 Web 界面完成安装
现在,我们的 WordPress 已准备就绪,我们可以通过 Web 浏览器完成安装。
将浏览器指向服务器的域名或 IP 地址,如下所示:
http://your_domain.com
如果这显示了您旧的默认 nginx 页面,您可能必须在没有缓存的情况下刷新页面。
您将看到基本的 WordPress 欢迎阶段。 选择您的选项(站点名称、用户名、密码和电子邮件),然后单击“安装 WordPress”按钮:
您必须使用刚刚创建的帐户登录:
您将看到您的 WordPress 仪表板,您可以在其中开始自定义设置和创建内容:
结论
您现在应该在 Ubuntu 14.04 的 nginx Web 服务器上启动并运行您的 WordPress 实例。 WordPress 是一个相当灵活的平台,您可以使用它来自定义您的网站。 尝试一些不同的插件、主题等。 找出最适合您的方法。