如何在Ubuntu 16.04与LAMP安装WordPress

介绍

WordPress是互联网上最流行的CMS(内容管理系统)。 它允许您轻松地在PHP处理的MySQL后端设置灵活的博客和网站。 WordPress已经看到令人难以置信的采用,是一个伟大的选择,使网站快速运行。 安装后,几乎所有的管理都可以通过web前端完成。

在本指南中,我们将重点介绍在Ubuntu 16.04服务器上的LAMP(Linux,Apache,MySQL和PHP)上设置WordPress实例。

先决条件

为了完成本教程,您将需要访问Ubuntu 16.04服务器。

在开始本指南之前,您需要执行以下任务:

  • 创建一个sudo服务器上的用户 :我们将用非root用户来完成本指南中的步骤sudo特权。 您可以创建一个用户sudo按照我们的权限的Ubuntu 16.04服务器初始设置指南
  • 安装LAMP :WordPress会需要一个Web服务器,数据库和PHP才能正常工作。 设置LAMP(Linux,Apache,MySQL和PHP)满足所有这些要求。 按照本指南安装和配置这个软件。
  • 与SSL安全网站 :WordPress的提供动态内容和处理用户身份验证和授权。 TLS / SSL是一种允许您加密来自您网站的流量以使您的连接安全的技术。 设置SSL的方式取决于您是否拥有网站的域名。
    • 如果你有一个域名......,以确保您的网站的最简单的方法是让我们的加密,它提供免费的,受信任的证书。 按照我们让我们的加密指南为Apache设置此。
    • 如果你没有一个域...你只是使用测试或个人使用此配置,您可以使用自签名证书来代替。 这提供了相同类型的加密,但没有域验证。 按照我们的自签名的SSL指南Apache才能完成设置。

当您完成安装步骤,登录到你的服务器作为你的sudo用户,并在下面继续。

第1步:为WordPress创建MySQL数据库和用户

我们将采取的第一步是准备。 WordPress使用MySQL来管理和存储网站和用户信息。 我们已经安装了MySQL,但是我们需要为WordPress创建一个数据库和一个用户。

要开始,请通过发出以下命令登录MySQL根(管理)帐户:

mysql -u root -p

在安装软件时,将提示您输入为MySQL root帐户设置的密码。

首先,我们可以创建一个单独的数据库,WordPress可以控制。 您可以拨打这个不管你想,但我们将使用wordpress本指南中保持简单。 您可以通过键入以下内容为WordPress创建数据库:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

注意:每个MySQL的语句必须以分号(;)结束。 检查以确保这是存在的,如果你遇到任何问题。

接下来,我们将创建一个单独的MySQL用户帐户,我们将专门使用它来操作我们的新数据库。 从管理和安全的角度来看,创建单功能数据库和帐户是一个好主意。 我们将使用名称wordpressuser本指南的 如果你愿意,随时改变这个。

我们将创建此帐户,设置密码,并授予对我们创建的数据库的访问权限。 我们可以通过键入以下命令来执行此操作。 记住在这里为您的数据库用户选择一个强密码:

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

您现在有一个数据库和用户帐户,每个专门为WordPress。 我们需要刷新权限,以便MySQL的当前实例了解我们最近所做的更改:

FLUSH PRIVILEGES;

通过键入以下命令退出MySQL:

EXIT;

第2步:安装其他PHP扩展

当设置我们的LAMP时,我们只需要一个非常小的扩展集,以使PHP与MySQL通信。 WordPress和其许多插件使用额外的PHP扩展。

我们可以下载并安装一些最流行的PHP扩展,使用WordPress通过键入:

sudo apt-get update
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

注意
每个WordPress插件都有自己的一套要求。 有些可能需要安装额外的PHP包。 检查您的插件文档以发现其PHP要求。 如果它们是可用的,它们可以被安装apt-get正如上面展示。

我们将在下一节重新启动Apache以利用这些新扩展。 如果您要返回此处安装其他插件,可以键入以下命令立即重新启动Apache:

sudo systemctl restart apache2

第3步:调整Apache的配置以允许.htaccess覆盖和重写

接下来,我们将对Apache配置进行一些细微的调整。 目前,使用.htaccess文件被禁用。 WordPress和许多WordPress插件广泛地使用这些文件进行目录调整到Web服务器的行为。

此外,我们将启用mod_rewrite ,这将为了得到WordPress的固定链接到正常工作是必要的。

启用.htaccess覆盖

打开主Apache配置文件进行第一次更改:

sudo nano /etc/apache2/apache2.conf

要允许.htaccess文件,我们需要设置AllowOverride一个内指令Directory块指向我们的文档根目录。 在文件底部,添加以下块:

/etc/apache2/apache2.conf
. . .

<Directory /var/www/html/>
    AllowOverride All
</Directory>

. . .

完成后,保存并关闭文件。

启用改写模块

接下来,我们可以启用mod_rewrite ,使我们可以利用WordPress的永久链接功能:

sudo a2enmod rewrite

启用更改

在我们实现我们所做的更改之前,请检查以确保我们没有发生任何语法错误:

sudo apache2ctl configtest

输出可能有一条如下所示的消息:

OutputAH00558: 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
Syntax OK

如果你想压制顶线,只需添加一个ServerName指令到/etc/apache2/apache2.conf指向您的服务器的域或IP地址的文件。 这只是一个消息,但不影响我们的网站的功能。 只要输出包含Syntax OK ,你已经准备好继续。

重新启动Apache以实现更改:

sudo systemctl restart apache2

第4步:下载WordPress

现在我们的服务器软件已配置,我们可以下载并设置WordPress。 出于安全原因,总是建议从他们的网站获取最新版本的WordPress。

切换到可写目录,然后键入以下内容下载压缩版本:

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

解压缩压缩文件以创建WordPress目录结构:

tar xzvf latest.tar.gz

我们将会立即将这些文件移动到我们的文档根。 我们这样做之前,我们可以添加一个虚拟.htaccess文件,并设置其权限,使这将可为WordPress以后使用。

创建文件并通过键入以下内容设置权限:

touch /tmp/wordpress/.htaccess
chmod 660 /tmp/wordpress/.htaccess

我们还会将示例配置文件复制到WordPress实际读取的文件名:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

我们也可以创建upgrade的目录,让试图做到这一点对自己的更新其软件时之后WordPress会不会碰到权限问题:

mkdir /tmp/wordpress/upgrade

现在,我们可以将目录的全部内容复制到我们的文档根目录中。 我们使用-a标志,以确保我们的权限得以维持。 我们正在利用我们的源目录的结束点,表明该目录中的一切都应该被复制,包括隐藏文件(如.htaccess我们创建文件):

sudo cp -a /tmp/wordpress/. /var/www/html

第5步:配置WordPress目录

在我们进行基于Web的WordPress安装之前,我们需要调整WordPress目录中的一些项目。

调整所有权和权限

我们需要完成的一件大事是设置合理的文件权限和所有权。 我们需要能够以普通用户身份写入这些文件,并且我们需要Web服务器也能够访问和调整某些文件和目录,以便正常运行。

我们首先将文档根目录中的所有文件的所有权分配给我们的用户名。 我们将使用sammy作为我们本指南中的用户名,但你应该改变这种以匹配无论你的sudo用户被调用。 我们将指派组所有权的www-data组:

sudo chown -R sammy:www-data /var/www/html

接下来,我们将设置setgid每个文档根目录中的目录位。 这将导致这些目录中创建继承该组的父目录(我们刚刚成立的新文件www-data代替)的创建用户的主组。 这只是确保每当我们在命令行上的目录中创建一个文件时,Web服务器仍然具有组所有权。

我们可以设置setgid对打字在我们的WordPress安装的每个目录位:

sudo find /var/www/html -type d -exec chmod g+s {} \;

还有一些其他细粒度的权限,我们会调整。 首先,我们给组写访问wp-content目录,以便Web界面可以使主题和插件的变化:

sudo chmod g+w /var/www/html/wp-content

作为此过程的一部分,我们将给Web服务器写入这两个目录中的所有内容的访问权限:

sudo chmod -R g+w /var/www/html/themes
sudo chmod -R g+w /var/www/html/plugins

这应该是一个合理的权限设置开始。 某些插件和过程可能需要进行额外的调整。

设置WordPress配置文件

现在,我们需要对主要的WordPress配置文件进行一些更改。

当我们打开文件时,我们的第一个业务订单将是调整一些密钥,为我们的安装提供一些安全性。 WordPress为这些值提供了一个安全的生成器,所以你不必试图提出自己的好的值。 这些仅在内部使用,因此它不会伤害在这里有复杂,安全的值的可用性。

要从WordPress秘密密钥生成器获取安全值,请键入:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

你会得到看起来像这样的唯一值:

警告!您所要求的每一次独特的价值观是很重要的。 不要复制下面所示的值!

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 /var/www/html/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');

. . .

接下来,我们需要在文件开头修改一些数据库连接设置。 您需要调整数据库名称,数据库用户和我们在MySQL中配置的关联密码。

我们需要做的另一个更改是设置WordPress应该用来写入文件系统的方法。 由于我们已经赋予web服务器在需要的地方写入权限,我们可以显式地将文件系统方法设置为“direct”。 未能使用我们当前的设置设置这将导致WordPress提示FTP凭据时,我们执行一些操作。

此设置可以添加到数据库连接设置下面或文件中的任何其他位置:

/var/www/html/wp-config.php
. . .

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

. . .

define('FS_METHOD', 'direct');

保存并在完成后关闭文件。

第6步:通过Web界面完成安装

现在服务器配置完成后,我们可以通过Web界面完成安装。

在Web浏览器中,导航到您的服务器的域名或公共IP地址:

http://server_domain_or_IP

选择您要使用的语言:

WordPress语言选择

接下来,您将进入主设置页面。

选择您的WordPress网站的名称,并选择一个用户名(为安全起见,建议不要选择类似“admin”的东西)。 将自动生成强密码。 保存此密码或选择其他强密码。

输入您的电子邮件地址,并选择是否要阻止搜索引擎将您的网站编入索引:

WordPress安装安装

当您点击提前,您将被带到一个页面,提示您登录:

WordPress登录提示

一旦登录,您将被带到WordPress管理仪表板:

WordPress登录提示

升级WordPress

由于WordPress升级可用,您将无法通过当前权限通过界面安装他们。

我们在这里选择的权限旨在提供在升级之间的99%的时间的安全性和可用性之间的良好平衡。 但是,它们对软件自动应用更新有点过于限制。

当更新可用时,重新登录到您的服务器作为sudo用户。 临时授予Web服务器进程对整个文档根目录的访问权限:

sudo chown -R www-data /var/www/html

现在,返回WordPress管理面板并应用更新。

完成后,请再次锁定权限以确保安全:

sudo chown -R sammy /var/www/html

这应该只有在应用升级到WordPress本身时是必要的。

结论

WordPress应该安装并准备使用! 一些常见的下一步是选择固定链接设置您的文章(中可以找到Settings > Permalinks或选择一个新的主题(在) Appearance > Themes )。 如果这是你第一次使用WordPress,探索接口一点,以熟悉你的新CMS。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏