如何在Ubuntu 18.04上安装带有LAMP的WordPress

2018-07-26 18:02:33 浏览数 (1)

介绍

WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您使用PHP在MySQL后端上设置博客和网站。WordPress已经被大量采用,是一个快速启动和运行网站的绝佳选择。设置完成后,几乎所有管理都可以通过Web前端完成。

在本指南中,我们将专注于在Ubuntu 18.04服务器上的LAMP环境(Linux,Apache,MySQL和PHP)上设置WordPress实例。关于如何配置LAMP环境可以参考腾讯云社区的Ubuntu配置lamp环境的教程。

准备

要完成本教程,您需要访问Ubuntu 18.04服务器。

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

  • 在服务器上创建用户:我们将使用具有sudo权限的非root用户完成本指南中的步骤。
  • 安装LAMP:WordPress需要一个Web服务器,一个数据库和PHP才能正常运行。设置LAMP环境(Linux,Apache,MySQL和PHP)可满足所有这些要求。
  • 使用SSL保护您的网站:WordPress提供动态内容并处理用户身份验证和授权。

如果您有域名:可以参考腾讯云SSL 证书部署过程。

如果您没有域名:并且您只是使用此配置进行测试或个人使用,则可以使用自签名证书,可以参考腾讯云社区为Apache创建自签名SSL证书的教程进行配置。

完成设置步骤后,以sudo用户身份登录服务器并继续执行下面的操作。

第一步,为WordPress创建MySQL数据库和用户

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

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

代码语言:txt复制
$ mysql -u root -p

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

首先,我们可以创建一个WordPress将控制的单独数据库。输入以下命令为WordPress创建数据库:

代码语言:txt复制
mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

注意:每个MySQL语句必须以分号(;)结尾。

接下来,我们将创建一个单独的MySQL用户帐户,将专门用于操作我们的新数据库。从管理和安全角度来看,创建单功能数据库和帐户是一个好主意。我们将在本指南中使用名称wordpressuser。我们将创建帐户,设置密码并授予对我们创建的数据库的访问权限。我们可以通过输入以下命令来完成此操作。请记住为您的数据库用户选择一个强密码:

代码语言:txt复制
mysql>  GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

您现在需要刷新权限,以便MySQL的当前实例知道我们最近做出的更改:

代码语言:txt复制
mysql> FLUSH PRIVILEGES;

输入以下内容退出MySQL:

代码语言:txt复制
mysql>  EXIT;

第二步,安装其他PHP扩展

在设置LAMP环境,我们只需要一组非常小的扩展让PHP与MySQL通信。WordPress及其许多插件利用了额外的PHP扩展。

我们可以通过输入以下命令下载并安装一些最流行的PHP扩展与WordPress一起使用:

代码语言:txt复制
$ sudo apt update
$ sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

注意:每个WordPress插件都有自己的要求。有些可能需要安装其他PHP包。

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

代码语言:txt复制
$ sudo systemctl restart apache2

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

接下来,我们将对Apache配置进行一些小的调整。根据必备教程,您应该在/etc/apache2/sites-available/目录中拥有站点的配置文件。我们将/etc/apache2/sites-available/wordpress.conf在此处使用,但您应该在适当的位置将路径替换为配置文件。

此外,我们将使用/var/www/wordpress作为我们的WordPress安装的根目录。您应该使用自己配置中指定的Web根目录。

注意:您可能正在使用000-default.conf的默认配置(/var/www/html作为您的Web根目录)。如果您并不打算在此服务器上托管一个网站,最好将必要的配置拆分为逻辑块,每个站点一个文件。

启用.htaccess覆盖

目前,.htaccess禁用文件的使用。而WordPress和许多WordPress插件需要广泛使用这些文件,以便对Web服务器的行为进行目录内调整。

打开您网站的Apache配置文件:

代码语言:txt复制
$ sudo nano /etc/apache2/sites-available/wordpress.conf

要允许.htaccess文件生效,我们需要AllowOverrideDirectory向我们的文档根目录的块中设置指令。在配置文件的块VirtualHost中添加以下文本块,确保使用正确的Web根目录:

/etc/apache2/sites-available/wordpress.conf

代码语言:txt复制
<Directory /var/www/wordpress/>
    AllowOverride All
</Directory>

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

启用重写模块

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

代码语言:txt复制
$ sudo a2enmod rewrite

启用更改

在我们应用我们所做的更改之前,请检查任何语法错误:

代码语言:txt复制
$ sudo apache2ctl configtest

输出可能如下所示:

代码语言:txt复制
AH00558: 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

如果你想取消顶行,只需在你的主(全局)Apache配置文件/etc/apache2/apache2.conf中添加一个ServerName指令即可。ServerName可以成为你的服务器的域名或IP地址。

重启Apache以实现更改:

代码语言:txt复制
$ sudo systemctl restart apache2

接下来,我们将下载并设置WordPress本身。

第四步,下载WordPress

现在我们的服务器软件已经配置好了,我们可以下载并设置WordPress。出于安全原因,我们始终建议从其站点获取最新版本的WordPress。

转换为可写目录,然后键入以下命令下载压缩版本:

代码语言:txt复制
$ cd /tmp
$ curl -O https://wordpress.org/latest.tar.gz

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

代码语言:txt复制
$ tar xzvf latest.tar.gz

我们暂时将这些文件移动到我们的文档根目录中。在我们开始之前,我们可以添加一个虚拟.htaccess文件,以便以后可以使用WordPress。

键入以下命令创建文件:

代码语言:txt复制
$ touch /tmp/wordpress/.htaccess

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

代码语言:txt复制
$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

我们还可以创建upgrade目录,以便WordPress在更新其软件后尝试自行执行此操作时不会遇到权限问题:

代码语言:txt复制
$ mkdir /tmp/wordpress/wp-content/upgrade

现在,我们可以将目录的全部内容复制到我们的文档根目录中。我们在源目录的末尾使用一个点来表示应该复制目录中的所有内容,包括隐藏文件(比如.htaccess我们创建的文件):

代码语言:txt复制
$ sudo cp -a /tmp/wordpress/. /var/www/wordpress

第五步,配置WordPress目录

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

调整所有权和权限

我们需要建立合理的文件权限和所有权。

我们首先将文件的所有权授予www-data用户和组。因为这是Apache Web服务器运行的用户,Apache需要能够读取和写入WordPress文件才能为网站提供服务并执行自动更新。

chown更新所有权:

代码语言:txt复制
$ sudo chown -R www-data:www-data /var/www/wordpress

接下来,我们将运行两个find命令来设置WordPress目录和文件的正确权限:

代码语言:txt复制
$ sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
$ sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;

设置WordPress配置文件

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

当我们打开文件时,我们的第一个业务订单是调整一些密钥来为我们的安装提供一些安全性。WordPress为这些值提供了一个安全的生成器。要从WordPress密钥生成器中获取安全值,请输入:

代码语言:txt复制
$ curl -s https://api.wordpress.org/secret-key/1.1/salt/

您将获得像这样的唯一值:

警告!每次请求的唯一值非常重要。请不要复制下面所示的值!

代码语言:txt复制
define('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配置文件:

代码语言:txt复制
$ sudo nano /var/www/wordpress/wp-config.php

找到包含这些设置的虚拟值的部分:

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

代码语言:txt复制
. . .

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/wordpress/wp-config.php

代码语言:txt复制
. . .

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/wordpress/wp-config.php

代码语言:txt复制
. . .

define('DB_NAME', 'wordpress');

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

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

. . .

define('FS_METHOD', 'direct');

完成后保存并关闭文件。

第六步,通过Web界面完成安装

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

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

代码语言:txt复制
https://server_domain_or_IP

选择您要使用的语言:

选择语言选择语言

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

选择WordPress网站的名称并选择用户名(出于安全考虑,建议不要选择类似“admin”的密码)。自动生成强密码。保存此密码或选择其他强密码。

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

主设置页面主设置页面

当您单击下一步时,您将进入一个提示您登录的页面:

登陆界面登陆界面

登录后,您将进入WordPress管理页面:

管理页面管理页面

结论

WordPress安装完成可以立即使用了,腾讯云实验室提供基于 Ubuntu LNMP 搭建 WordPress 个人博客的相关教程,如果您使用其他的系统,可以访问腾讯云查看基于 CentOS 搭建 WordPress 个人博客和基于 Windows 搭建 WordPress其他教程。


参考文献:《How To Configure a FreeIPA Client on CentOS 7》

0 人点赞