如何在 Ubuntu 18.04 上使用 LAMP 安装 WordPress

news/2024/10/5 7:13:59/

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

WordPress 是互联网上最流行的内容管理系统(CMS)。它允许您在 MySQL 后端和 PHP 处理器上设置灵活的博客和网站。WordPress 受到了非常广泛的采用,并且是快速搭建网站的绝佳选择。设置完成后,几乎所有的管理工作都可以通过 Web 前端完成。

在本指南中,您将在 Ubuntu 18.04 服务器上的 LAMP 堆栈(Linux、Apache、MySQL 和 PHP)上设置一个 WordPress 实例。

先决条件

要完成本教程,您需要:

  • 访问具有 sudo 用户的 Ubuntu 18.04 服务器:您将使用具有 sudo 权限的非根用户完成本指南中的步骤。您可以按照我们的 Ubuntu 18.04 初始服务器设置指南创建一个具有 sudo 权限的用户。
  • 安装 LAMP 堆栈:WordPress 需要一个 Web 服务器、一个数据库和 PHP 才能正确运行。设置 LAMP 堆栈(Linux、Apache、MySQL 和 PHP)可以满足所有这些要求。按照本指南安装和配置这些软件。
  • 使用 SSL 保护您的站点:WordPress 提供动态内容并处理用户身份验证和授权。TLS/SSL 是一种技术,它允许您加密站点的流量,使您的连接更加安全。您设置 SSL 的方式将取决于您是否拥有站点的域名。
    • 如果您拥有域名… 保护您的站点的一种方式是使用 Let’s Encrypt,它提供免费的受信任证书。按照我们的 Apache Let’s Encrypt 指南进行设置。
    • 如果您没有域名… 并且您只是用这个配置进行测试或个人使用,您可以使用自签名证书。这提供了相同类型的加密,但没有域验证。按照我们的 Apache 自签名 SSL 指南进行设置。

完成先决条件后,以您的 sudo 用户登录到服务器,并继续执行第 1 步。

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

您将采取的第一步是一个准备工作。即使 MySQL 已经安装,您仍然需要创建一个数据库来管理和存储 WordPress 使用的用户信息。要开始,请通过发出以下命令登录到 MySQL root(管理)帐户:

sudo mysql

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

但是,如果您为您的 root 用户启用了密码验证,您可以运行以下命令,并在提示时输入密码信息:

mysql -u root -p

然后,您将创建一个新的数据库,WordPress 将控制该数据库。您可以随意命名此数据库,但在本指南中,我们将以 wordpress 作为示例。通过编写以下内容为 WordPress 创建数据库:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

接下来,您将创建一个单独的 MySQL 用户帐户,您将专门用于操作新数据库。从管理和安全的角度考虑,创建单一功能的数据库和帐户是一个好主意。在本指南中,我们将使用名称 wordpressuser 作为示例。如果您愿意,可以随意更改此名称。

您可以通过运行以下命令创建此帐户,为其设置密码,然后授予它对您创建的数据库的访问权限。请记住为您的数据库用户选择一个强密码:

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

创建此用户后,刷新权限以确保当前的 MySQL 实例知道您所做的最近更改:

FLUSH PRIVILEGES;

退出 MySQL:

EXIT;

现在,您在 MySQL 中有一个专门为 WordPress 创建的数据库和用户帐户。

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

在设置 LAMP 堆栈时,该过程只需要一组最小的扩展来使 PHP 与 MySQL 通信。WordPress 和许多插件利用额外的 PHP 扩展。

首先,更新您的软件包列表:

sudo apt update

接下来,下载并安装一些用于 WordPress 的最受欢迎的 PHP 扩展:

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

在下一节中,您将对 Apache 配置进行一些调整。

重新启动 Apache 以加载这些新扩展。如果您在此处返回以安装其他插件,现在可以重新启动 Apache:

sudo systemctl restart apache2

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

Wordpress 默认使用 .htaccess 文件来管理站点的某些功能,比如固定链接、插件和重定向。Apache web 服务器使用这些 .htaccess 配置文件来创建 Web 服务器要遵循的规则。然而,Apache 默认禁用了 .htaccess 文件的使用,因此您需要更新您网站的 Apache 虚拟主机文件以启用它们。

要启用,打开您网站的虚拟主机文件:

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

一旦您打开了这个文件,您会注意到 .htaccess 文件的使用被禁用了。要允许 .htaccess 文件,您需要在指向您文档根目录的 Directory 块内设置 AllowOverride 指令。在您的配置文件的 VirtualHost 块内添加以下文本块。确保您使用自己的网站根目录来替换下面的示例

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

完成后,保存并关闭文件。如果您使用的是 nano,您可以按 CTRL + X 然后输入 YENTER 来退出。

接下来,启用 mod_rewrite 以便您可以使用 WordPress 的固定链接功能:

sudo a2enmod rewrite

之后,通过测试配置来启用这些更改。但在实施更改之前,检查是否有语法错误:

sudo apache2ctl configtest

输出可能会有类似以下的消息:

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

如果您希望抑制顶部行,可以在 /etc/apache2/apache2.conf 主(全局)Apache 配置文件中添加 ServerName 指令。ServerName 可以是您服务器的域名或 IP 地址。然而,这只是一条消息,不会影响您站点的功能。只要输出包含 Syntax OK,您就可以继续。

重新启动 Apache 以实施更改:

sudo systemctl restart apache2

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

第四步 – 下载 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

然后,复制示例配置文件并将其命名为 wp-config.php,这是 WordPress 实际读取的文件名:

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

最后,创建 upgrade 目录,以便 WordPress 在更新其软件后不会遇到权限问题:

mkdir /tmp/wordpress/wp-content/upgrade

现在,您可以将整个目录的内容复制到您的文档根目录。在源目录的末尾使用一个点表示应该复制目录内的所有内容,包括隐藏文件(比如您创建的 .htaccess 文件)。再次,确保您实际的文档根目录名称替换下面的示例:

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

接下来,您需要调整和配置 WordPress 目录中的项目。

第五步 – 配置 WordPress 目录

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

调整所有权和权限

您需要完成的重要任务之一是设置合理的文件权限和所有权。

首先将所有文件的所有权赋予 www-data 用户和组。这是 Apache web 服务器运行的用户,Apache 需要能够读取和写入 WordPress 文件以便提供网站和执行自动更新。

使用 chown 更新所有权:

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

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

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

这些应该是合理的起始权限设置。一些插件和程序可能需要额外的调整。

设置 WordPress 配置文件

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

当您打开文件时,您首先需要调整一些密钥,以提供安装的安全性。WordPress 提供了一个安全的生成器来生成这些值,这样您就不必自己想出好的值。这些值仅在内部使用,因此在这里使用复杂、安全的值不会影响可用性。

要从 WordPress 密钥生成器获取安全值,请运行以下命令:

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

您将收到类似以下内容的唯一值:


define('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 请勿复制这些值 c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X 请勿复制这些值 {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF 请勿复制这些值 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ 请勿复制这些值 #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf 请勿复制这些值  07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY 请勿复制这些值 C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 请勿复制这些值 t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 请勿复制这些值 1% ^qUswWgn+6&xqHN&%');

这些是配置行,您可以直接粘贴到配置文件中以设置安全密钥。复制您收到的输出。

现在,打开 WordPress 配置文件。确保文件路径与您自己的文档根信息对齐,如下所示:

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

找到包含这些设置的空值的部分。它看起来类似于以下内容:


. . .define('AUTH_KEY',         '在此处放入您的唯一短语');
define('SECURE_AUTH_KEY',  '在此处放入您的唯一短语');
define('LOGGED_IN_KEY',    '在此处放入您的唯一短语');
define('NONCE_KEY',        '在此处放入您的唯一短语');
define('AUTH_SALT',        '在此处放入您的唯一短语');
define('SECURE_AUTH_SALT', '在此处放入您的唯一短语');
define('LOGGED_IN_SALT',   '在此处放入您的唯一短语');
define('NONCE_SALT',       '在此处放入您的唯一短语');. . .

删除这些行,并粘贴从命令行复制的值:


. . .define('AUTH_KEY',         '从命令行复制的值');
define('SECURE_AUTH_KEY',  '从命令行复制的值');
define('LOGGED_IN_KEY',    '从命令行复制的值');
define('NONCE_KEY',        '从命令行复制的值');
define('AUTH_SALT',        '从命令行复制的值');
define('SECURE_AUTH_SALT', '从命令行复制的值');
define('LOGGED_IN_SALT',   '从命令行复制的值');
define('NONCE_SALT',       '从命令行复制的值');. . .

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

另一个更改是设置 WordPress 写入文件系统的方法。由于您已经允许 Web 服务器在需要时进行写入,因此您可以明确地将文件系统方法设置为 “direct”。如果不使用当前设置进行此设置,WordPress 在执行某些操作时会提示输入 FTP 凭据。

此设置可以添加到数据库连接设置之后,或者文件的任何其他位置:


. . .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 地址:

https://server_domain_or_IP

选择您想要使用的语言:

!WordPress 语言选择

接下来,您将被引导至主要设置页面。

为您的 WordPress 网站选择一个名称并选择一个用户名(出于安全考虑,建议不要选择类似 “admin” 这样的用户名)。系统会自动生成一个强密码。请保存此密码或选择另一个强密码。

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

!WordPress 设置安装

当您点击继续后,您将被引导至登录页面:

!WordPress 登录提示

登录后,您将被带到 WordPress 管理面板:

!WordPress 登录提示

从那里,您可以开始使用和定制您的 WordPress 网站。

结论

WordPress 现在应该已经成功安装并准备就绪。一些常见的下一步是选择您的文章的永久链接设置(可以在 设置 > 永久链接 中找到)或选择一个新的主题(在 外观 > 主题 中)。如果这是您第一次使用 WordPress,请稍微探索一下界面,以熟悉您的新 CMS。


http://www.ppmy.cn/news/1534822.html

相关文章

showdoc二次开发

showdoc用的vue版本老&#xff0c;需要安装老版本nodejs&#xff0c;比如node 14.21.3 win32-x64-93_binding.node问题 https://github.com/sass/node-sass/releases 下载 web_src\node_modules\node-sass\vendor\win32-x64-93 下面重命名为binding.node

《软件工程概论》作业一:新冠疫情下软件产品设计

课程说明&#xff1a;《软件工程概论》为浙江科技学院2018级软件工程专业在大二下学期开设的必修课。课程使用《软件工程导论&#xff08;第6版&#xff09;》&#xff08;张海藩等编著&#xff0c;清华大学出版社&#xff09;作为教材。以《软件设计文档国家标准GBT8567-2006》…

Python画笔案例-075 绘制趣味正方形

1、绘制趣味正方形 通过 python 的turtle 库绘制 趣味正方形,如下图: 2、实现代码 绘制趣味正方形,以下为实现代码: """趣味正方形.py画个正方形后,单击它会移动,并且碰到边缘就反弹。这个版本采用画布的move命令让当前线条项目移动实现的。也可以用纯动画…

PASCAL VOC 2012数据集 20类物体,这些物体包括人、动物(如猫、狗、鸟等)、交通工具(如车、船、飞机等)以及家具(如椅子、桌子、沙发等)。

VOC2012数据集是PASCAL VOC挑战赛官方使用的数据集之一&#xff0c;主要包含20类物体&#xff0c;这些物体包括人、动物&#xff08;如猫、狗、鸟等&#xff09;、交通工具&#xff08;如车、船、飞机等&#xff09;以及家具&#xff08;如椅子、桌子、沙发等&#xff09;。每个…

十进制转十六进制 ← Python字符串

【知识点】 ● chr() 函数与 ord() 函数示例&#xff1a; >>> ord(0) 48>>> chr(48) 0>>> ord(9) 57>>> chr(57) 9>>> ord(A) 65>>> chr(65) A>>> ord(F) 70>>> chr(70) F ● 巧妙利用字符串的“连…

了解华为计算产品线,昇腾的业务都有哪些?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 随着 ChatGPT 的现象级爆红&#xff0c;它引领了 AI 大模型时代的深刻变革&#xff0c;进而造成 AI 算力资源日益紧缺。与此同时&#xff0c;中美贸易战的持续也使得 AI 算力国产化适配成为必然趋势。 …

Hive数仓操作(七)

一、 Hive动态分区表 1. 动态分区与静态分区的区别 分区定义&#xff1a; 静态分区&#xff1a;在插入数据时&#xff0c;需要手动指定分区字段的值。动态分区&#xff1a;分区字段的值是根据数据中的某个字段自动生成的&#xff0c;用户只需指定分区字段的类型。 数据加载方…

基于SSM的定制衣服系统的设计与实现(定制衣服管理平台的设计与开发、智慧服装定制系统的设计与实现、定制衣服管理系统的设计与实现(源码+定制+参考文档)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…