Ubuntu22.04安装WordPress教程

Ubuntu22.04安装LEMP堆栈(Nginx + MariaDB + PHP)教程
Ubuntu22.04安装WordPress教程(利用nginx环境和MariaDB数据库,安装使用WordPress)

本教程将展示如何在 Ubuntu22.04 上安装 LEMP 堆栈。
一个软件堆栈是捆绑在一起的一组软件工具。
LEMP 代表 Linux、Nginx (Engine-X)、MariaDB/MySQL 和 PHP,所有这些都是开源的,可以免费使用。它是为动态网站和 Web 应用程序提供支持的最常见软件堆栈。
Linux 是操作系统;
Nginx 是 Web 服务器;
MariaDB/MySQL是数据库服务器,
PHP是负责生成动态网页的服务器端脚本语言。

第 1 步:更新软件包
udo apt update && sudo apt upgrade -y

第 2 步:安装 Nginx Web 服务器
Nginx 是一种当前非常流行的高性能 Web 服务器。它也可以用作反向代理和缓存服务器。输入以下命令安装 Nginx Web 服务器。

sudo apt install nginx

安装后,我们可以通过运行以下命令使 Nginx 在启动时自动启动。

sudo systemctl enable nginx

然后使用以下命令启动 Nginx:

sudo systemctl start nginx

检查它的状态。

sudo systemctl status nginx

输出:

“Enabled”表示启用了启动时自动启动,我们可以看到 Nginx 正在运行。您还可以从输出中查看 Nginx 使用了多少 RAM。如果上述命令在运行后没有立即退出。您需要按“q”使其退出。

ubuntu默认是ufw防火墙,可能存在防火墙阻止对TCP端口80的传入请求,需要运行以下命令来打开 TCP 端口 80。

sudo ufw allow http

最后,让(Nginx 用户)成为 Web 目录的所有者。默认情况下,其权限归 root 用户所有。

sudo chown www-data:www-data /usr/share/nginx/html -R

第 3 步:安装 MariaDB 数据库服务器
MariaDB是MySQL的直接替代品。它是由MySQL团队的前成员开发的,他们担心Oracle可能会将MySQL变成一个闭源产品。输入以下命令在 Ubuntu 上安装 MariaDB

sudo apt install mariadb-server mariadb-client

安装后,MariaDB服务器应该会自动启动。使用 systemctl 检查其状态。

sudo systemctl status mariadb

输出:

如果它未运行,请使用以下命令启动它:

sudo systemctl start mariadb

要使 MariaDB 在启动时自动启动,需运行

sudo systemctl enable mariadb

第 4 步:安装 PHP
输入以下命令安装 PHP 和一些常用扩展。

sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-cli php8.1-common php-json p php8.1-readline php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl

WordPress等内容管理系统(CMS)通常需要PHP扩展。例如,如果你的安装缺少 ,那么您的某些 WordPress 网站页面可能是空白的,可以在 Nginx 错误日志中找到错误

安装完上述扩展后启动启动 php-fpm。

sudo systemctl start php-fpm

在启动时启用自动启动。

sudo systemctl enable php-fpm

检查状态:

sudo systemctl status php-fpm

若状态为active(running) 即可

第 5 步:创建 Nginx 服务器块
Nginx 服务器块就像 Apache 中的虚拟主机。这里不会使用默认的服务器块,因为它不足以运行 PHP 代码,如果我们直接修改默认文件,会很容易变得乱七八糟。简单起见,这里直接通过运行以下命令删除目录中的符号链接。

sudo rm /etc/nginx/sites-enabled/default

然后使用像 vim 这样的文本编辑器在 /etc/nginx/conf.d/ 目录下创建一个全新的服务器文件。

sudo vim /etc/nginx/conf.d/default.conf

将以下文本粘贴到文件中。以下代码片段将使 Nginx 监听 IPv4 端口 80 和 IPv6 端口 80,并使用 catch-all 服务器名称。
8

server {listen 80;listen [::]:80;server_name _;root /usr/share/nginx/html/;index index.php index.html index.htm index.nginx-debian.html;location / {try_files $uri $uri/ /index.php;}location ~ \.php$ {fastcgi_pass unix:/run/php/php7.4-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;include snippets/fastcgi-php.conf;}# A long browser cache lifetime can speed up repeat visits to your pagelocation ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {access_log        off;log_not_found     off;expires           360d;}# disable access to hidden fileslocation ~ /\.ht {access_log off;log_not_found off;deny all;}
}

保存并关闭文件。然后测试 Nginx 配置。

sudo nginx -t

如果测试成功,需重新加载 Nginx。

sudo systemctl reload nginx

至此,LEMP堆栈安装完毕

环境:ubunutu22.04.2LTS

利用nginx环境和MariaDB数据库,安装使用WordPress
前置条件
本教程需要已经在 Ubuntu 20.04 上设置了 LEMP 堆栈。如果没有,请查看以下教程。
-如何在ubuntu22.04上安装 LEMP堆栈(Nginx,MairaDB,PHP)
完成缺省的安装后,请返回此处继续阅读。

第 1 步:下载 WordPress
更新现有软件

sudo apt update && sudo apt upgrade

在终端中,键入 wget 命令,输入链接 ,下载wordpress

wget https://wordpress.org/latest.zip

随后使用以下命令解压缩下载的wordpress zip文档

sudo apt install unzip
sudo mkdir -p /usr/share/nginx
sudo unzip latest.zip -d /usr/share/nginx/

文档将被提取到 /usr/share/nginx/ 目录中,并创建一个新目录( /usr/share/nginx/wordpress )

第 2 步:为 WordPress 网站创建数据库和用户
使用以下命令以 root 身份登录 MariaDB shell。

sudo mariadb -u root

登录后,使用以下命令为 WordPress 创建数据库。

create database wordpress;

然后输入以下命令为 WordPress 创建数据库用户。此命令还向用户授予 WordPress 数据库的所有权限。将 用户名和密码 替换为你自己要设置的用户名和密码。

grant all privileges on wordpress.* to 用户名@localhost identified by ‘密码’;

刷新权限表以使更改生效,然后退出 MariaDB shell。

flush privileges;
exit;

注:上述代码指令部分全大写或全小写

第 3 步:配置 WordPress
转到WordPress 所在目录。

cd /usr/share/nginx/wordpress/

复制示例配置文件并将其重命名为 :wp-config.php

sudo cp wp-config-sample.php wp-config.php

现在使用文本编辑器(如 vim)编辑新的配置文件。

sudo vim wp-config.php

找到以下行,并将下方中文文本替换为您在上一步中创建的数据库名称、用户名和密码。

/** The name of the database for WordPress */
define('DB_NAME', '这里填你自己创建的数据库名称');/** MySQL database username */
define('DB_USER', '这里是你自己创建的用户名');/** MySQL database password */
define('DB_PASSWORD', '这里是你自己设置的密码');

我们还需要使用以下命令将 Nginx 用户设置为 WordPress 站点目录的所有者。

sudo chown www-data:www-data /usr/share/nginx/wordpress/ -R

第 4 步:为 WordPress 创建 Nginx 服务器块
在目录中创建服务器块文件

sudo vim /etc/nginx/conf.d/wordpress.conf

将以下文本放入文件中

server {listen 80;listen [::]:80;server_name www.wordpress wordpress;root /usr/share/nginx/wordpress/;index index.php index.html index.htm index.nginx-debian.html;location / {try_files $uri $uri/ /index.php;}location ~ ^/wp-json/ {rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;}location ~* /wp-sitemap.*\.xml {try_files $uri $uri/ /index.php$is_args$args;}error_page 404 /404.html;error_page 500 502 503 504 /50x.html;client_max_body_size 20M;location = /50x.html {root /usr/share/nginx/html;}location ~ \.php$ {fastcgi_pass unix:/run/php/php8.1-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;include snippets/fastcgi-php.conf;fastcgi_buffers 1024 4k;fastcgi_buffer_size 128k;# Add headers to serve security related headersadd_header X-Content-Type-Options nosniff;add_header X-XSS-Protection "1; mode=block";add_header X-Permitted-Cross-Domain-Policies none;add_header X-Frame-Options "SAMEORIGIN";}#enable gzip compressiongzip on;gzip_vary on;gzip_min_length 1000;gzip_comp_level 5;gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;gzip_proxied any;# A long browser cache lifetime can speed up repeat visits to your pagelocation ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {access_log        off;log_not_found     off;expires           360d;}}

保存并关闭文件。然后测试 Nginx 配置。

sudo nginx -t

如果测试成功,请重新加载 Nginx。

sudo systemctl reload nginx

在浏览器地址栏中如下输入。

localhost/wp-admin/install.php

如果未显示安装向导,则可能需要安装一些 PHP 扩展。

sudo apt install php-imagick php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-json php-cli php-curl php-zip

然后重新加载 PHP-FPM 和 Nginx服务。现在应该显示向导。

sudo systemctl reload php8.1-fpm nginx

第5步:使用安装向导完成安装
如图填写信息创建一个管理员帐户,然后单击页面左下角“安装 WordPress”按钮。

第6步:启用 HTTPS
要加密 HTTP 流量,我们可以通过安装 Let’s Encrypt 颁发的免费 TLS 证书来启用 HTTPS。运行以下命令以在 Ubuntu 22.04上安装 Let’s Encrypt 客户端 (certbot)。

sudo apt install certbot python3-certbot-nginx

并运行此命令以获取并安装 TLS 证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d domainname1,domainname2

–nginx:使用 Nginx 插件。
–agree-tos:同意服务条款。
–redirect:强制 HTTPS by 301 重定向。
–hsts:将 Strict-Transport-Security 标头添加到每个 HTTP 响应中。强制浏览器始终对域使用 TLS。防御 SSL/TLS 剥离。
–staple-ocsp:启用 OCSP 装订。有效的 OCSP 响应将装订到服务器在 TLS 期间提供的证书中。
–email:用于注册和恢复联系人的电子邮件。
-d 后跟一个域名列表,用逗号分隔。最多可以添加 100 个域名。
重新加载WordPress设置向导,即可看到HTTP自动重定向到HTTPS连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770842.shtml

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

相关文章

华为全套企业管理资料合集(21专题)

华为全套企业管理资料合集-知识星球下载 1.绩效考核 华为内训绝密资料:绩效管理与绩效考核.ppt 华为绩效管理与绩效考核制度.docx 华为公司实用性各种绩效图表汇总.doc 华为公司考勤管理制度.doc 华为IPD模式中跨部门团队成员的考核激励制度.doc 2.企业管理 华为公司人力资源…

NetCore itext7 创建、编辑PDF插入表格、图片、文字(三)

NetCore 创建、编辑PDF插入表格、图片、文字 NetCore 创建、编辑PDF插入表格、图片、文字(二) NetCore 创建、编辑PDF插入表格、图片、文字(三) 直接上代码 nuget引入 itext7 using System; using System.IO;using iText.IO.Image; using iText.Kernel.Colors; // 导入颜色…

【Spring】IoCDI详解

1. IoC详解 前面提到过IoC就是将对象的控制权交由Spring的IoC容器进行管理,由Spring的IoC容器创建和销毁bean,那么既然涉及到容器,就一定包含以下两方面功能: bean的存储bean的获取 1.1 类注解 Spring框架为了更好地服务应用程…

7-30 三天打鱼两天晒网

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”? 输入格式: 输入在一行中给出一个不超过1000的正整数N。 输出格式: 在一行中输…

视频中有无声音的检测

最近遇到一个烦心的事,晚上车停在路边车窗被砸了,行车记录仪正好没安装好,没有拍到,需要对视频声音进行分析确定被砸时间,但我的行车记录仪是每一分钟拍一个视频,一晚上的视频非常多,听起来非常…

树梅派Raspberry Pi OS(Debian)源码交叉编译升级内核参数PAGESIZE

树梅派Raspberry Pi OS(Debian)源码交叉编译升级内核参数PAGESIZE 环境: device: Raspberry Pi 3 Model B Rev 1.2 os: 2024-03-15-raspios-bookworm-arm64 (Debian GNU/Linux 12 bookworm aarch64) kernel: 6.6.20rpt-rpi-v8 arch: aarch64 编译机: ubuntu 22.0…

高效物联网连接技术创新:ECWAN边缘协同自组网的未来——基于ChirpLAN窄带扩频技术的无线混合组网

物联网是指将各种物理设备通过互联网进行连接和通信的技术。它是一个庞大的网络,由传感器、设备、网络和云服务组成,旨在实现对物体的远程监测、控制和数据采集。 基于ChirpLAN窄带扩频技术的无线混合组网协议ChirpLAN,ChirpLAN是基于其自有的…

每天学习一个Linux命令之hostname

每天学习一个Linux命令之hostname 简介 hostname命令用于显示或设置系统的主机名。主机名是在网络环境中使用的标识符,可用于识别和定位服务器或设备。 基本语法 hostname [选项] [新主机名]可用选项 hostname命令有一些常用的选项,以下是它们的详细…

Itextpdf电子签章

印章 印章是我国特有的历史文化产物,古代主要用作身份凭证和行驶职权的工具。它的起源是由于社会生活的实际需要。早在商周时代,印章就已经产生。如今的印章已成为一种独特的,融实用性和艺术性为一体的艺术瑰宝。传统的印章容易被坏人、小人…

久菜盒子|毕业设计|金融|DCC-GARCH模型

在R语言中,提到“DCC(1,1)”通常是指使用Dynamic Conditional Correlation (DCC)模型对一组金融资产收益率之间的动态相关性进行建模。DCC模型是GARCH族模型的一个变种,特别适用于处理多元时间序列数据中的条件相关结构。它由Robert Engle等人提出&#…

深度学习Trick

Vscode查看文件目录 cmdshiftp选择->查看:将焦点置于辅助侧栏 View: Focus into Secondary Side Bar把主边栏的大纲拖入 快捷查看卷积过程,利用 torchinfo 在 model 下打断点F5 运行调试,F10 运行下一步在调试控制台输入from torchinfo…

Scrapy爬虫开发实验

什么是Scrapy? Scrapy是一个基于Python的强大的开源网络爬虫框架,用于从网站上抓取信息。它提供了广泛的功能,使得爬取和分析数据变得相对容易。Scrapy的特点包括: 强大的数据提取工具,支持XPath和CSS选择器。简化的…

vmware虚拟机下ubuntu扩大磁盘容量

1、扩容: 可以直接在ubuntu setting界面里直接扩容,也可通过vmware命令,如下: vmware提供一个命令行工具,vmware-vdiskmanager.exe,位于vmware的安装目录下,比如 C:/Program Files/VMware/VMwar…

http模块 获取http请求报文中的路径 与 查询字符串

虽然request.url已包含属性和查询字符串,但使用不便,若只需其中一个不好提取,于是用到了如下路径和字符串的单独查询方法: 一、获取路径 例如:我在启动谷歌端口时输入http://127.0.0.1:9000 后接了 "/search?k…

编译安装飞桨fastdeploy@FreeBSD(失败)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 🔥160 Text,Vision, Speech和跨模态模型📦开箱即用的部署体验,并实现🔚端到端的推理性能优化。包括 物…

02 React 组件使用

import React, { useState } from react;// 定义一个简单的函数式组件 function Counter() {// 使用 useState hook 来创建一个状态变量 count,并提供修改该状态的函数 setCountconst [count, setCount] useState(0);// 在点击按钮时增加计数器的值const increment…

Gemma开源AI指南

近几个月来,谷歌推出了 Gemini 模型,在人工智能领域掀起了波澜。 现在,谷歌推出了 Gemma,再次引领创新潮流,这是向开源人工智能世界的一次变革性飞跃。 与前代产品不同,Gemma 是一款轻量级、小型模型&…

1升级powershell后才能安装WSL2--最后安装linux--Ubuntu 22.04.3 LTS

视频 https://www.bilibili.com/video/BV1uH4y1W7UX特殊开启–Hyper-V虚拟机 把一下代码保存到【a.bat】的执行文件中,进行Hyper-V虚拟机的安装开启【Windows 批处理文件 (.bat)】 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mu…

鸿蒙Harmony跨模块交互

1. 模块分类介绍 鸿蒙系统的模块一共分为四种,包括HAP两种和共享包两种 HAP(Harmony Ability Package) Entry:项目的入口模块,每个项目都有且只有一个。feature:项目的功能模块,内部模式和En…

(已解决)vue3使用富文本出现样式乱码

我在copy代码到项目里面时候发现我的富文本乱码了 找了一圈不知道是哪里vue3不适配还是怎么,后来发现main.js还需要引入 import VueQuillEditor from vue-quill-editor // require styles 引入样式 import quill/dist/quill.core.css import quill/dist/quill.snow…