如何在 Ubuntu 22.04 上使用 LAMP 栈安装 WordPress

介绍

WordPress是一个流行的开源内容管理系统(CMS),允许用户在他们的网站上创建,定制和管理内容. CMS 提供了构建网站的基本基础设施,这对可能没有从头开始构建和编码自己的网站的用户有用。 WordPress CMS 拥有许多定制工具,如管理仪表板,具有易于使用的界面,以创建新网页,添加媒体等。

有许多不同的方法来访问WordPress,但一些设置流程比其他更复杂。本教程面向那些希望通过命令行在未经管理的云服务器上安装和管理WordPress实例的人。

本教程将使用LAMP(L inux, A pache, M ySQL和 P HP)堆栈,这是支持WordPress的服务器架构的一个选项,通过提供Linux操作系统,ApacheWeb服务器,MySQL数据库和PHP编程语言。

作为开源软件,WordPress可以免费下载和安装,但要在网络上可用,您可能需要购买云基础设施和域名。

<$>[info] 如果你想访问一个已准备好的WordPress安装, DigitalOcean Marketplace提供一个单击的应用程序让你开始使用WordPress通过安装时旋转你的服务器。

前提条件

要完成本教程,您将需要:

  • 如果您有域名, 您可以使用提供免费可信证书的Let ' s Enterpress来保护您的站点 。 遵循我们的 Apache 加密指南( https://andsky.com/tech/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-22-04 ) 设置此功能 。
  • 如果您没有域而只是使用此配置进行测试或个人使用,则可以使用自签名的证书取而代之. 这提供了同类型的加密,但没有域验证. 遵循我们[自签的 SSL 指南 Apache (https://andsky.com/tech/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-22-04) 设置 。 (英语)

当您完成安装时,作为您的sudo用户登录您的服务器,并继续到第一步。

步骤 1 — 创建一个MySQL数据库和用户为WordPress

WordPress 使用 MySQL 来管理和存储网站和用户信息. 你已经安装了 MySQL,但需要为 WordPress 创建一个数据库和用户来使用。

要开始,请通过发出以下命令登录MySQL root(管理)帐户(请注意,这不是您的服务器的 root 用户):

1sudo mysql

<$>[注] 注: 如果您通过遵循先决条件中列出的教程来安装MySQL,您可能已启用了您的 root MySQL用户的密码身份验证。

1mysql -u root -p

美元

在数据库中,创建一个专门的 WordPress 数据库来控制它,你可以随心所欲地称呼它,但我们将在本指南中使用名称 wordpress

1CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

<$>[注] 注: 每一个MySQL语句都必须以半列(;)结束。

接下来,你将创建一个单独的MySQL用户帐户,你将使用它来操作你的新数据库。创建特定的数据库和帐户可以支持你从管理和安全的角度。我们将在本指南中使用名称 wordpressuser ,但您可以自由使用任何您喜欢的名称。

您可以通过运行以下命令创建此用户,请记住在这里为您的数据库用户选择一个强有力的密码,我们有密码:

1CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

接下来,让数据库知道您的wordpress用户应该可以完全访问您设置的数据库:

1GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

你现在有一个数据库和用户帐户,每一个都是专门为WordPress创建的,你需要清除权限,以便当前的MySQL实例知道最近的更改:

1FLUSH PRIVILEGES;

退出MySQL,写下以下内容:

1EXIT;

在下一步中,您将为您的服务器下载PHP扩展程序,为WordPress插件奠定一些基础。

第2步:安装额外的PHP扩展

当我们设置LAMP堆栈时,我们只需要一组非常小的扩展来让PHP与MySQL进行通信。

您可以下载并安装一些最流行的PHP扩展,用于WordPress,但首先使用APT包管理工具来更新您的本地包索引:

1sudo apt update

然后您可以为 WordPress 安装各种 PHP 扩展:

1sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

这将为您在WordPress网站上安装额外的插件奠定基础。

<$>[注] 注: 每个WordPress插件都有自己的要求。有些可能需要安装额外的PHP包。检查您的插件文档以了解其PHP要求。

您需要重新启动Apache来加载这些新扩展. 在下一节中,您将对Apache的配置进行更多的调整,因此您可以等到那时,或者现在重新启动以完成PHP扩展过程:

1sudo systemctl restart apache2

重新启动后,或者如果您选择等待,您可以继续到下一节开始对 Apache 配置进行调整。

步骤 3 — 调整 Apache 配置以允许.htaccess 重写和重写

接下来,你会对你的Apache配置做一些小调整,基于前提教程,你应该在/etc/apache2/sites-available/目录中为你的网站配置文件。

在本指南中,我们将使用 /etc/apache2/sites-available/wordpress.conf 作为一个例子,但您应该在适当的情况下更换到现有配置文件的路径。 此外,我们将使用 /var/www/wordpress 作为我们 WordPress 安装的根目录。 您应该使用在自己的配置中指定的 Web 根。 如果您遵循我们的 LAMP 教程,这可能是您的域名而不是 `wordpress’ 在这两种情况下。

<$>[注] 注: 您可能正在使用000-default.conf的默认配置(使用/var/www/html作为您的网页根)。

当您的路径被确定时,您可以继续使用 .htaccess,以便Apache可以在每个目录的基础上处理配置更改。

允许.htaccess 转移

目前,使用.htaccess 文件已被禁用. WordPress 和许多 WordPress 插件广泛地使用这些文件来调整网页服务器的行为。

使用您喜爱的文本编辑器打开您的网站的Apache配置文件. 在这里,我们将使用nano:

1sudo nano /etc/apache2/sites-available/wordpress.conf

要允许.htaccess 文件,您需要在指向文档根的目录块中设置AllowOverride指令,在配置文件中添加VirtualHost块内的下列内容,确保使用正确的 Web 根目录:

1[label /etc/apache2/sites-available/wordpress.conf]
2<VirtualHost *:80>
3. . .
4    <Directory /var/www/wordpress/>
5        AllowOverride All
6    </Directory>
7. . .
8</VirtualHost>

完成后,保存并关闭文件. 在nano中,您可以通过同时按CTRLX,然后按YENTER

允许重写模块

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

1sudo a2enmod rewrite

这允许您为您的帖子提供更多可读的人际连接,例如以下两个例子:

1http://example.com/2012/post-name/
2http://example.com/2012/12/30/post-name

a2enmod命令呼叫一个启用 Apache 配置中指定的模块的脚本。

允许变化

在实施所做的更改之前,请通过运行以下测试来确保未出现任何语法错误:

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指令添加到您的主要(全球)Apache配置文件中,在/etc/apache2/apache2.confServerName可以是您的服务器的域名或IP地址,但这只是一个警告消息,并且不会影响您的网站的功能。

重新启动Apache以实现更改,即使您在本教程中早些时候重新启动了,也请确保现在重新启动:

1sudo systemctl restart apache2

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

第4步:下载WordPress

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

首先,更改到可编写的目录(我们建议一个临时的目录,如 /tmp):

1cd /tmp

然后用以下curl命令下载压缩版本:

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

提取压缩文件来创建WordPress目录结构:

1tar xzvf latest.tar.gz

在这样做之前,你可以添加一个愚蠢的 .htaccess 文件,这样它就可用于 WordPress 以后使用。

创建文件,运行如下:

1touch /tmp/wordpress/.htaccess

您还会将样本配置文件复制到WordPress读到的文件名:

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

此外,创建升级目录,以便WordPress在试图在软件更新后自行完成此操作时不会遇到权限问题:

1mkdir /tmp/wordpress/wp-content/upgrade

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

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

您现在已经准备好配置您的WordPress目录。

步骤 5 – 配置 WordPress 目录

在开始基于Web的WordPress设置之前,您需要调整您的WordPress目录中的某些项目。

调整所有权和许可

另一个重要步骤是为 WordPress 使用的文件和目录设置合理的文件权限和所有权。

首先,将所有文件的所有权交给用户和组,这是Apache Web 服务器所运行的用户,Apache 将需要能够阅读和写 WordPress 文件,以便为网站提供服务并执行自动更新。

使用chown命令更新所有权,允许您修改文件所有权. 请确保指向您的服务器的相关目录:

1sudo chown -R www-data:www-data /var/www/wordpress

接下来,运行两个查找命令,为WordPress目录和文件设置正确的权限. 这个第一个查找命令将每个目录设置在/var/www/<>^wordpress目录中,并将每个目录的权限设置为750:

1sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;

它会找到目录中的每个文件,并将其权限设置为640:

1sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

这些权限应该让您有效地与WordPress合作,但请注意,一些插件和程序可能需要额外调整。

设置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配置文件:

1sudo nano /var/www/wordpress/wp-config.php

查找包含这些设置示例值的部分:

 1[label /var/www/wordpress/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/wordpress/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/wordpress/wp-config.php]
 2. . .
 3
 4// ** MySQL settings - You can get this info from your web host ** //
 5/** The name of the database for WordPress */
 6define( 'DB_NAME', 'wordpress' );
 7
 8/** MySQL database username */
 9define( 'DB_USER', 'wordpressuser' );
10
11/** MySQL database password */
12define( 'DB_PASSWORD', 'password' );
13
14/** MySQL hostname */
15define( 'DB_HOST', 'localhost' );
16
17/** Database Charset to use in creating database tables. */
18define( 'DB_CHARSET', 'utf8' );
19
20/** The Database Collate type. Don't change this if in doubt. */
21define( 'DB_COLLATE', '' );
22
23. . .
24
25define('FS_METHOD', 'direct');

保存并关闭文件,当你完成。

步骤 6 – 通过 Web 界面完成安装

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

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

1https://server_domain_or_IP

您将被要求选择您想要使用的语言:

WordPress language selection

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

选择您的WordPress网站的名称,并选择一个用户名. 建议选择一些独特的东西,并避免安全目的的常见用户名admin。 自动生成一个强大的密码。 保存这个密码或选择一个替代的强密码。

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

WordPress setup installation

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

WordPress login prompt

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

WordPress admin dashboard

WordPress admin dashboard

如果这是你的第一次使用WordPress,探索界面来熟悉你的新的CMS。

结论

恭喜,WordPress已安装并准备好使用。

在这一点上,你可能想开始做以下的事情:

  • 选择您的 WordPress 帖子的 permalinks 设置,可以在 设置 > Permalinks 中找到。
  • 在 **外观 > 主题 ** 中选择一个新主题。
  • 在 ** Plugins > Add New** 下安装新的插件来增加您的网站的功能。

您可以参阅其他资源,了解如何在不同的服务器发行版上安装 WordPress,如何自动化您的 WordPress 安装,并通过查看我们的 WordPress 社区标签来扩展您的 WordPress 网站。

Published At
Categories with 技术
comments powered by Disqus