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

news2024/10/4 23:28:24

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

介绍

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.coloradmin.cn/o/2188900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python数据可视化--Matplotlib--入门

我生性自由散漫&#xff0c;不喜欢拘束。我谁也不爱&#xff0c;谁也不恨。我没有欺骗这个&#xff0c;追求那个&#xff1b;没有把这个取笑&#xff0c;那个玩弄。我有自己的消遣。 -- 塞万提斯 《堂吉诃德》 Matplotlib介绍 1. Matplotlib 是 Python 中常用的 2D 绘图库&a…

ArkTS语法

一、声明 格式:关键字 变量/常量名 : 类型注释 = 值 变量声明 let count : number = 0; count = 40; 常量声明 const MAX_COUNT : number = 100; 二、数据类型 基本数据类型:string、number、boolean等 引用数据类型:Object、Array、自定义类等 …

【笔记】选择题笔记+数据结构笔记

文章目录 2014 41方法一先序遍历方法二 连通分量是极大连通子图 一个连通图的生成树是一个极小连通子图 无向图的邻接表中&#xff0c;第i个顶点的度为第i个链表中的结点数 邻接表和邻接矩阵对不同的操作各有优势。 最短路径算法: 单源最短路径 已知图G(V,E)&#xff0c;我们…

深入理解Linux内核网络(二):内核与用户进程的协作

内核在协议栈接收处理完输入包以后&#xff0c;要能通知到用户进程&#xff0c;让用户进程能够收到并处理这些数据。进程和内核配合有很多种方案&#xff0c;第一种是同步阻塞的方案&#xff0c;第二种是多路复用方案。本文以epoll为例 部分内容来源于 《深入理解Linux网络》、…

认知杂谈72《别让梦想只是梦!7步跃过现实高墙的终极攻略!》

内容摘要&#xff1a;         梦想的实现是一场与现实的较量&#xff0c;需要坚持和突破。学习路线图对于掌握技能至关重要&#xff0c;如学编程应从基础语法开始&#xff0c;逐步深入。 面对难题&#xff0c;积极搜索、提问和实践是关键。坚持和专注是成功的核心&#…

《Windows PE》4.1.3 IAT函数地址表

IAT&#xff08;Import Address Table&#xff09;表又称为函数地址表&#xff0c;是Windows可执行文件中的一个重要数据结构&#xff0c;用于存储导入函数的实际入口地址。 在可执行文件中&#xff0c;当一个模块需要调用另一个模块中的函数时&#xff0c;通常会使用导入函数…

十、敌人锁定

方法&#xff1a;通过寻找最近的敌人&#xff0c;使玩家的面朝向始终朝向敌人&#xff0c;进行攻击 1、代码 在这个方法中使用的是局部变量&#xff0c;作为临时声明和引用 public void SetActorAttackRotation() {Enemys GameObject.FindGameObjectsWithTag("Enemy&qu…

机器学习-树模型算法

机器学习-树模型算法 一、Bagging1.1 RF1.2 ET 二、Boosting2.1 GBDT2.2 XGB2.3 LGBM 仅个人笔记使用&#xff0c;感谢点赞关注 一、Bagging 1.1 RF 1.2 ET 二、Boosting 2.1 GBDT 2.2 XGB 2.3 LGBM LightGBM&#xff08;Light Gradient Boosting Machine) 基本算法原理…

2024企业网盘排行榜,十大企业网盘深度评测【part 2】

在当今数字化时代&#xff0c;企业网盘已成为提升工作效率、保障数据安全的重要工具。从Box到腾讯企业网盘&#xff0c;再到Egnyte、Amazon Drive、金山文档&#xff08;WPS&#xff09;和Huddle&#xff0c;每款产品都有其独特的功能和应用场景。然而&#xff0c;在众多选择中…

Spring Boot新闻推荐:实时数据处理

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

简单二叉树的构建及遍历

1.主要函数 #include <stdio.h> #include <stdlib.h> #include <string.h>//创建节点结构体 typedef struct node{char data[16];//节点数据struct node *L;//左节点struct node *R;//右结点}tree,*treeptr;//先序方式创建节点 treeptr create() {char buf[…

idea创建springboot模块

1.点击file->新建->model server url&#xff1a;如果倒数第二个java选项没有11&#xff0c;就把这里改为阿里云的 name&#xff1a;模块名字 location&#xff1a;文件存放的位置 其他的根据图片自行填写 2. 3.验证 如果没有iml文件(不影响&#xff0c;可以不弄)&#…

MongoDB聚合操作及索引底层原理

目录 链接:https://note.youdao.com/ynoteshare/index.html?id=50fdb657a9b06950fa255a82555b44a6&type=note&_time=1727951783296 本节课的内容: 聚合操作: 聚合管道操作: ​编辑 $match 进行文档筛选 ​编辑 将筛选和投影结合使用: ​编辑 多条件匹配: …

20241004给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Android12时永不休眠的步骤

20241004给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Android12时永不休眠的步骤 2024/10/4 19:22 1、 Z:\rk3588s4_3588a12\device\rockchip\common\device.mk ifeq ($(strip $(BOARD_HAVE_BLUETOOTH_RTK)), true) include hardware/realtek/rtkbt/rtkbt.mk endif ifeq ($(str…

YouTube音视频合并批处理基于 FFmpeg的

专门针对YouTube高品质分享处理的&#xff0c;将音频和视频合并。 首先下载ffmpeg.exe网上随便下载。 echo off title YouTube 音视频合并 20241004 echo 作者&#xff1a;xiaoshen echo 网站&#xff1a;http://www.xiaoshen.cn/ echo. set /p audio请将【音频】文件拖拽到此…

⌈ 传知代码 ⌋ 将一致性正则化用于弱监督学习

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

什么是 NVIDIA 机密计算?( 上篇 )

什么是机密计算? 文章目录 前言1. 机密计算定义2. 机密计算有何独特之处?3. 机密计算是如何得名的4. 机密计算的工作原理是什么?5. 缩小安全边界6. 机密计算的使用案例7. 机密计算如何发展8. 加速机密计算9. 机密计算的下一步前言 机密计算是一种在计算机处理器的受保护区域…

全网最详细kubernetes中的资源

1、资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务。 所谓的部署服务&#xff0c;其实就是在kubernetes集群中运行一个个的…

csp-j模拟三补题报告

前言 今天题难&#xff0c;排名没进前十 &#xff08;“关于二进制中一的个数的研究与规律”这篇文章正在写&#xff09; 第一题 三个&#xff08;three&#xff09; 我的代码&#xff08;AC&#xff09; #include<bits/stdc.h> #define ll long long using namespac…