介绍
WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您轻松地在PHP处理的MySQL后端上设置灵活的博客和网站。WordPress已经见过令人难以置信的采用,是快速启动和运行网站的绝佳选择。
在本指南中,我们将专注于在Ubuntu 16.04服务器上建立一个WordPress实例(Linux,Apache,MySQL和PHP)。
前提条件
要完成本教程,您将需要访问Ubuntu 16.04服务器。
您需要完成以下任务,才能开始本指南:
- ** 在您的服务器上创建
sudo
用户** : 我们将使用具有 " sudo " 特权的非根本用户完成本指南的步骤。 您可以遵循我们的 [Ubuntu 16.04 初始服务器设置指南] (https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-16-04) 来创建拥有"sudo"权限的用户. - ** 安装一个 LAMP 堆栈** :WordPress需要一个网络服务器,一个数据库,以及PHP,以便正确运行. 建立LAMP堆栈(Linux,Apache,MySQL,和PHP)可以满足所有这些要求. 遵循本指南安装并配置此软件.
- ** 用 SSL 保护您的网站 ** : WordPress服务于动态内容并处理用户认证和授权. TLS/SSL 是允许您从您的站点加密流量的技术,以使您的连接安全. 您设置 SSL 的方式将取决于您是否拥有您的网站的域名 。
- ** 如果您有域名... ** 保护您网站最简单的方式是使用Let's Encrypt,它提供了免费的,可信赖的证书. 跟着我们让我们为Apache加密指南来设置这个.
- ** 如果您没有域名...** 而您只是使用此配置进行测试或个人使用,您可以使用自签名的证书取而代之. 这提供了同类型的加密,但没有域验证. 遵循我们[自签的 SSL 指南 Apache (https://andsky.com/tech/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04) 设置 。 (英语)
当你完成了设置步骤后,登录你的服务器作为你的sudo
用户,并继续下方。
步骤 1:为 WordPress 创建 MySQL 数据库和用户
我們將採取的第一步是準備。WordPress使用MySQL來管理和儲存網站和用戶資訊.我們已經安裝了MySQL,但我們需要為WordPress建立一個資料庫和使用者。
要开始,请通过发出此命令登录MySQL root(管理)帐户:
1mysql -u root -p
您将被提示为您在安装软件时为 MySQL 根帐户设置的密码。
首先,我们可以创建一个单独的数据库,WordPress可以控制它,你可以称之为任何你想要的,但我们将在本指南中使用WordPress
,以保持简单。
1CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
<$>[注] 注: 每个MySQL语句必须以半列(;)结束。
接下来,我们将创建一个单独的MySQL用户帐户,我们将专门用于在我们的新数据库上运行。创建一个功能的数据库和帐户从管理和安全的角度来说是一个好主意。
我们将创建此帐户,设置密码,并授予访问我们创建的数据库。我们可以通过键入以下命令来做到这一点。
1GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
你现在有一个数据库和用户帐户,每一个都是专门为WordPress创建的,我们需要清除权限,以便当前的MySQL实例知道我们最近所做的更改:
1FLUSH PRIVILEGES;
通过键入离开MySQL:
1EXIT;
步骤 2:安装额外的PHP扩展
当我们设置LAMP堆栈时,我们只需要一组非常小的扩展来让PHP与MySQL进行通信。
我们可以通过键入下载并安装一些最流行的PHP扩展来使用WordPress:
1sudo apt-get update
2sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
<$>[注]
[标签注]
每个WordPress插件都有自己的要求。 有些可能需要安装额外的PHP包。 检查您的插件文档以了解其PHP要求。 如果它们可用,可以安装apt-get
如上所示。
<$>
我们将在下一节中重新启动Apache,以利用这些新扩展,如果你返回这里来安装额外的插件,你可以通过键入来重新启动Apache:
1sudo systemctl restart apache2
步骤 3:调整Apache的配置以允许.htaccess 重写和重写
接下来,我们将对我们的Apache配置做一些小调整,目前,htaccess
文件的使用已被禁用。WordPress和许多WordPress插件广泛地使用这些文件来对网页服务器的行为进行目录调整。
此外,我们将启用mod_rewrite
,这将是必要的,以便让WordPress permalinks正确运作。
允许.htaccess 转移
打开主 Apache 配置文件以进行我们的第一个更改:
1sudo nano /etc/apache2/apache2.conf
要允许.htaccess 文件,我们需要在指向我们的文档根的目录
块中设置AllowOverride
指令。
1[label /etc/apache2/apache2.conf]
2. . .
3
4<Directory /var/www/html/>
5 AllowOverride All
6</Directory>
7
8. . .
完成后,保存并关闭文件。
启用重写模块
接下来,我们可以启用mod_rewrite
,这样我们就可以利用WordPress的永久链接功能:
1sudo a2enmod rewrite
允许变化
在我们实施所做的更改之前,请检查,以确保我们没有做任何语法错误:
1sudo apache2ctl configtest
输出可能有一个看起来像这样的消息:
1[secondary_label Output]
2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
3Syntax OK
如果您想删除顶部行,只需将ServerName
指令添加到/etc/apache2/apache2.conf
文件中,指向您的服务器的域或IP地址,但这只是一个消息,不会影响我们的网站的功能。
重启 Apache 以执行这些更改:
1sudo systemctl restart apache2
步骤四:下载WordPress
现在我们的服务器软件已配置,我们可以下载并设置WordPress,特别是出于安全原因,我们建议从他们的网站上获取最新的WordPress版本。
转换为可编写的目录,然后通过键入下载压缩版本:
1cd /tmp
2curl -O https://wordpress.org/latest.tar.gz
提取压缩文件来创建WordPress目录结构:
1tar xzvf latest.tar.gz
我们会暂时将这些文件移动到我们的文档根中,在我们之前,我们可以添加一个愚蠢的 .htaccess
文件,并设置其权限,以便它可以用于 WordPress 以后使用。
创建文件并通过键入设置权限:
1touch /tmp/wordpress/.htaccess
2chmod 660 /tmp/wordpress/.htaccess
我们还会将样本配置文件复制到WordPress实际读取的文件名:
1cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
我们还可以创建升级
目录,以便WordPress在试图在软件更新后自行完成此操作时不会遇到权限问题:
1mkdir /tmp/wordpress/wp-content/upgrade
现在,我们可以将整个目录内容复制到我们的文档根中。我们正在使用-a
旗帜来确保我们的权限得到维持。我们正在使用源目录的末尾一个点,表示目录中的所有内容都应该被复制,包括隐藏的文件(如我们创建的.htaccess
文件):
1sudo cp -a /tmp/wordpress/. /var/www/html
步骤 5:设置WordPress目录
在我们进行基于Web的WordPress设置之前,我们需要调整我们的WordPress目录中的某些项目。
调整所有权和许可
我们需要能够像普通用户一样写入这些文件,我们需要Web服务器也可以访问和调整某些文件和目录以便正常工作。
我们将在本指南中使用sammy
作为我们的用户名,但您应该更改以匹配您的sudo
用户的名称。
1sudo chown -R sammy:www-data /var/www/html
接下来,我们将在文档根中的每个目录中设置setgid
位,这会导致在这些目录中创建的新文件继承主目录组(我们刚刚设置为www-data
)而不是创建用户的主要组。
我们可以通过键入我们的WordPress安装中的每个目录设置setgid
点:
1sudo find /var/www/html -type d -exec chmod g+s {} \;
首先,我们会给小组写入wp-content
目录,以便 Web 界面可以对主题和插件进行更改:
1sudo chmod g+w /var/www/html/wp-content
作为此过程的一部分,我们将给网页服务器写入这些两个目录中的所有内容:
1sudo chmod -R g+w /var/www/html/wp-content/themes
2sudo chmod -R g+w /var/www/html/wp-content/plugins
这应该是一个合理的权限设置,以开始,一些插件和程序可能需要额外的调整。
创建WordPress配置文件
现在,我们需要对主 WordPress 配置文件进行一些更改。
当我们打开文件时,我们的第一个业务命令将是调整一些秘密密密钥,为我们的安装提供一些安全性。WordPress为这些值提供一个安全的生成器,因此您不必试图自行提出良好的价值。
要从 WordPress 秘密密密钥生成器中获取安全值,键入:
1curl -s https://api.wordpress.org/secret-key/1.1/salt/
您将获得像这样的独特值:
<$>[警告] 警告! 重要的是每次请求独特值。
1[secondary_label Output]
2define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
3define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
4define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
5define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
6define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
7define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
8define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
9define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
这些是配置行,我们可以直接粘贴到我们的配置文件中,以设置安全密钥。
现在,打开WordPress配置文件:
1nano /var/www/html/wp-config.php
查找包含这些设置的 dummy 值的部分,它将看起来像这样:
1[label /var/www/html/wp-config.php]
2. . .
3
4define('AUTH_KEY', 'put your unique phrase here');
5define('SECURE_AUTH_KEY', 'put your unique phrase here');
6define('LOGGED_IN_KEY', 'put your unique phrase here');
7define('NONCE_KEY', 'put your unique phrase here');
8define('AUTH_SALT', 'put your unique phrase here');
9define('SECURE_AUTH_SALT', 'put your unique phrase here');
10define('LOGGED_IN_SALT', 'put your unique phrase here');
11define('NONCE_SALT', 'put your unique phrase here');
12
13. . .
删除这些行并粘贴您从命令行复制的值:
1[label /var/www/html/wp-config.php]
2. . .
3
4define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
5define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
6define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
7define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
8define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
9define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
10define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
11define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
12
13. . .
接下来,我们需要在文件开始时修改某些数据库连接设置,您需要调整我们在MySQL中配置的数据库名称、数据库用户和相关密码。
我们需要做的另一个变化是设置WordPress应该使用的方法来写到文件系统. 由于我们已经给了Web服务器允许写到它需要的地方,我们可以明确地将文件系统方法设置为直接
。
此设置可在数据库连接设置下方或文件中的任何其他位置添加:
1[label /var/www/html/wp-config.php]
2. . .
3
4define('DB_NAME', 'wordpress');
5
6/** MySQL database username */
7define('DB_USER', 'wordpressuser');
8
9/** MySQL database password */
10define('DB_PASSWORD', 'password');
11
12. . .
13
14define('FS_METHOD', 'direct');
保存并关闭文件,当你完成。
步骤 6:通过 Web 界面完成安装
现在,服务器配置已经完成,我们可以通过Web界面完成安装。
在您的网页浏览器中,导航到您的服务器的域名或公共IP地址:
1http://server_domain_or_IP
选择您想要使用的语言:
接下来,您将进入主设置页面。
选择您的WordPress网站的名称,并选择一个用户名(不建议为安全目的选择admin
)。
输入您的电子邮件地址,然后选择是否希望阻止搜索引擎索引您的网站:
当您点击前进时,您将被带到一个提示您登录的页面:
一旦您登录,您将被带到WordPress管理仪表板:
升级WordPress
随着 WordPress 升级变得可用,您将无法通过使用当前权限的界面来安装它们。
我们在这里选择的权限旨在为升级之间99%的次数提供安全性和可用性之间的良好平衡,但它们对软件自动应用更新来说太限制了。
当一个更新变得可用时,请重新登录您的服务器作为您的sudo
用户. 暂时让 Web 服务器的流程访问整个文档根:
1sudo chown -R www-data /var/www/html
现在,回到WordPress管理面板并应用更新。
完成后,再次锁定权限以确保安全:
1sudo chown -R sammy /var/www/html
这应该只在应用升级到WordPress本身时是必要的。
结论
WordPress 应该安装并准备好使用! 下一步的一些常见步骤是为您的帖子选择 permalinks 设置(可以在设置 > Permalinks
中找到)或选择一个新主题(在外观 > 主题
中)。