WordPress+Nginx 安装教程

WordPress 是一个开源的网站建设工具,可以用它来“快速”搭建个人博客,官网等等。它本身是用 php 开发的,本身部署不复杂,主要是需要一些配套的东西才能跑起来,网上的一些教程也是写的不清不楚,本文针对非 php 技术栈人员, phper 勿扰。

我们会分 Windows 和 Linux 两个平台来说明部署过程,由于 WordPress 本身是 php 开发的,与平台无关,所以首先我们从官网下载 WorpPress 源码,目前的最新版是 6.6.2。它是一个压缩包,到这里第一步就结束了。

在正式开始之前,还有一点前置知识需要说明。php 是前端用的后端语言,不同于 go 或 elixir,它不是编译成可执行文件运行并提供网络服务,而是类似于静态文件,但也不完全相同。所以运行 php 服务还需要额外的网络服务器作为静态文件服务。当客户端请求 html 文件时,服务器就直接将文件响应给客户端了,而请求 php 文件时,服务器先调用 php 解释器运行 php 文件,然后将结果响应给客户端,当然这里说的调用也不是直接调用,而是通过 cgi 来调用。这里的服务器可以选择 nginx 或者 apache 都可以。下图是两种请求区别的示意图。

在这里插入图片描述

关于什么是 cgi,什么是 php-cgi 以及 php 的运行原理,推荐阅读这篇文章:彻底明白php中cgi、fastcgi和php-cgi、php-fpm及php运行原理_什么是php-cgi-CSDN博客。建议先看看,作为预备知识了解下,后面会用得上。

接下来我们来看各个平台上面的具体部署过程。服务器的话,我选择的是 nginx,因为刚好有。

Windows+Nginx

在 nginx 的安装目录下新建一个 www 目录,将之前下载的 wordpress 安装包解压到该目录下。然后进入 www 目录,将 wordpress 目录重命名为 wp.test.com 目录。

在这里插入图片描述

注意这些目录并不是一定要按我的来命名,这只是一种习惯,将静态资源放在 www 目录下,将各网站内容放在各自域名的同名目录下。我是在本地测试,所以用了一个假的域名 wp.test.com 。随后我们到 C:\Windows\System32\drivers\etc 目录下找到 hosts 文件,以管理员身份编辑改文件,在最后加上一行内容:

192.168.1.xx wp.test.com

前面的 IP 是你自己电脑的IP地址,不通过域名访问的话,后面也可以配置通过端口访问。到这里 WordPress 就算安装好了,后面就是服务器配置和依赖环境安装了。

还是 nginx 的安装目录,找到 conf/nginx.conf 文件,在最后一个 } 前加上一行配置:

include ../hosts/*.conf;

我们将自定义的代理配置统一放到 nginx 安装目录下的 hosts 目录下,方便管理。在 nginx 目录下手动创建该目录,然后新建 wp.test.com.conf 文件,输入以下内容:

server {listen       80;server_name  wp.test.com;location / {root   www/wp.test.com;index  index.php index.html index.htm;}location ~ \.php$ {root           www/wp.test.com;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}
}

这些依然不是必须的,你可以选择自己的配置习惯,重要的 wp.test.com.conf 文件里的内容。这里我选择监听 80 端口,你可以配置其他端口。两个 location 配置里的 root 都是 WordPress 存放的目录,因为我们放在 nginx 的安装目录下,所以这里使用了相对路径,如果你放在其他地方,使用绝对路径。

第二个 location 里面有一行配置 fastcgi_pass 127.0.0.1:9000; ,这个就是 php-cgi 的监听地址,因为我们到目前为止还没安装过 php,所以先这样配置。

服务器的配置到这里就结束了,接下来我们来安装 php。首先去官网下载 php 安装包,我选择的是 8.2 版本,建议选择 7 以上的版本。

在这里插入图片描述

下载完以后直接找个地方解压就行了,然后进入解压目录,将 php.ini-development 文件拷贝一份,重命名为 php.ini

在这里插入图片描述

打开 php.ini 文件 搜索 mysqli;extension=mysqli 取消注释,它在 939行。否则的话,后面运行 WordPress 安装时会报错。然后是 768 行的 ;extension_dir = "ext" 也把注释取消,然后保存。

在这里插入图片描述

好了,再回到 php 的解压目录,看到有一个叫 php-cgi.exe 的程序,看到这里应该感到无比熟悉了吧,它正是我们用来解析 .php 文件的程序。在该目录下打开 cmd 命令行,输入 .\php-cgi.exe -b 127.0.0.1:9000 运行 php-cgi 程序,它会监听本地的 9000 端口,这正是我们在 nginx 中配置的端口: fastcgi_pass 127.0.0.1:9000; ,nginx 也是用的 fastcgi 来管理 php-cgi 进程。

最后我们还需要一个 MySQL 数据,创建一个叫 wordpress 的库,当然也可以是任意你喜欢的名字。别忘了把 nginx 也运行起来,到这里所有的准备工作就全部结束了。接下来就是著名的5分钟安装 WordPress 流程,说是安装,其实是配置 WordPress。

在浏览器输入 http://wp.test.com/ap-admin/install.php ,如果你没有使用域名,输入 IP+端口访问。第一步是选择语言,拉到最后选择简体中文。

第二步是配置数据库信息,需要输入数据库的库名,用户名和密码。这一步会做两件事:一是在 WordPress 安装目录下生成 wp-config.php 文件,二是建表。网上会有人教你将 wp-config-sample.php 拷贝一份并重命名为 wp-config.php ,然后手动去改配置。千万不要这么做,因为如果 wp-config.php 以存在的话,访问 wp.test.com/ap-admin/install.php 时就会跳过这一步,导致它不会帮你建表,后面的步骤也就出错了。

在这里插入图片描述

点击提交进入下一步,配置管理后台的登录用户名和密码,此外还需要你填写标题,也就是管理后台网页的标题,邮箱也是必填的,要不要被搜索引擎检索就看个人需要了,填完之后点击安装WordPress就可以了。

在这里插入图片描述

点完安装之后,会跳转到安装成功的页面,点击登录,用这里填的用户名和密码就能登录管理后台了。管理后台都在 wp-admin 路径下,管理后台首页长这个样子:

在这里插入图片描述

直接输入域名的话就是我们的网站了。默认的网站是这样的。

在这里插入图片描述

大功告成。至于 WordPress 如何使用就请各位慢慢摸索了。

Linux+nginx

Linux 下的安装过程其实和 Windows 基本一致。只是 nginx 的配置稍有不同,准确来说是只有一个地方不同,就是 nginx 代理配置里面的 fastcgi_pass 这个配置不同。

这个配置配置实际上配置的是 nginx 和 php-cgi 之间通信的方式,这是两个进程,在 Windows 上他们通过 ip 和端口进行网络通信。那么在 Linux 上它们通过 .sock 文件进行进程间通信,所以明白了吧,在 Linux 上面我们需要配置的不再是 ip+端口, 而是一个 .sock 文件的路径,当然还要加上一个 unix: 的前缀。这里给出一个示例:

server {listen       80;server_name  wp.test.com;location / {root   /www/wwwroot/wp.test.com/wordpress;index  index.php index.html index.htm;}location ~ \.php$ {root           /www/wwwroot/wp.test.com/wordpress;fastcgi_pass   unix:/run/php-fpm/www.sock;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}
}

是不是和 Windows 上长得挺像的。整个安装步骤其实是一摸一样的。

  • 首先找个地方解压 WordPress 压缩包。
  • 然后配置 nginx 访问代理。
  • MySQL 上建个库,注意如果你同时为它新建了用户的话,一定要给用户加上建表的权限,因为表是 WordPress 自动给你建的。如果是测试或者怕麻烦的话可以 ALL PRIVILEGES 一把梭。
  • 没有 php 环境的话自己装一个 php 环境。
  • 浏览器访问 http://xxxx.xxxx.com/wp-admin/install.php 填写两个表单,齐活。

在 Linux 上面填写完第一个表单之后可能会遇到一个错误,提示说写入 wp-config.php 失败,这是文件权限问题,根据提示到 WordPress 的安装目录下创建这个文件并写入网页上的内容即可。当然更好的做法是将 WordPress 的所有文件拥有者改成和 php 一致,一般是 www


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

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

相关文章

Centos7安装ZLMediaKit

https://github.com/ZLMediaKit/ZLMediaKit 一 获取代码 git clone https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init git submodule update --init 命令用于初始化和更新 Git 仓库中的子模块(submodules)。这个命令…

安全生产玩手机检测系统 玩手机识别系统 玩手机监测预警系统 使用 Python 和 OpenCV 库实现

在生产作业过程中,员工玩手机是一种极其危险的行为。它会分散员工的注意力,使其无法专注于工作任务。生产现场往往存在各种潜在的危险因素,如机械设备的运转、高空作业、化学品的使用等,一旦员工分心,就很容易忽视这些…

跨浏览器免费书签管理系统

随着互联网信息的爆炸式增长,如何有效管理我们日常浏览中发现的重要网页,成为了每个重度互联网用户的需求。一个跨平台的书签管理网站能够帮助用户在不同设备之间无缝同步和管理书签。本文将分享如何使用 Python 和 SQLite 构建一个简单、易于维护的跨平…

暖水毯/取暖毯语音识别控制芯片IC方案

暖水毯、取暖毯作为现代家居生活的温暖伴侣,其智能化升级已是大势所趋。在暖水毯与取暖毯中融入语音识别控制芯片IC方案,为用户的冬日取暖体验带来了革命性的变革。 一、暖水毯/取暖毯增加语音识别控制芯片方案,让产品能通过对话来调节&…

Ubuntu 24.04 系统上配置 Node.js 运行环境

本文我们重点介绍两种安装 Node.js 的方法。第一种方法使用 NVM (Node VersionManager),这是安装和管理多个 Node.js 版本的最好和最快的方法。第二种方法使用官方包存储库在 Ubuntu 上安装 Node.js,一次只允许安装一个版本。 必备条件 A running Ubun…

qUtf8Printable()和qPrintable()

qUtf8Printable 函数是 Qt 框架中的一个实用函数,其主要作用是将 QString 类型的字符串安全地转换为 const char* 类型的 UTF-8 编码字符串。这个转换过程对于需要将 QString 与那些接受 const char* 参数的 C 风格字符串函数进行交互的场景特别有用。 qUtf8Printa…

3.Java入门笔记--基础语法

1.字面量 概念:计算机用来处理数据的,字面量就是告诉程序员数据在程序中的书写格式 常用数据:整数,小数直接写;字符单引号(A)且只能放一个字符;字符串双引号("Hel…

ROUGE:摘要自动评估软件包

算法解析 ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一组用于自动评估文本摘要质量的指标,主要通过比较机器生成的摘要与一个或多个参考摘要之间的重合程度来衡量。ROUGE 包括多个变体,其中最常用的有 ROUGE-N…

深度解析模型调优与正则化:L1、L2正则化及偏差-方差的权衡

🎯 深度解析模型调优与正则化:L1、L2正则化及偏差-方差的权衡 📖 目录 🌟 模型调优的本质:偏差与方差的权衡🔎 正则化的概念与作用🛠 L1正则化(Lasso回归)详解与实现⚙…

linux 修改主机名和用户名颜色

编译 ~/.bashrc vim ~/.bashrc 如下格式 PS1\[\e[1;31m\]\h:\[\e[0;32m\]\w \[\e[1;34m\]\u\[\e[0m\]\$ PS1${debian_chroot:($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\] if [ -e /lib/terminfo…

QT中中文显示乱码问题

在VS2013中用QT开发GUI应用程序&#xff0c;Qt中显示中文乱码 一&#xff1a; //解决QT中中文显示乱码问题 #pragma execution_character_set("utf-8") 二&#xff1a;在main函数中添加以下代码&#xff1a; #include <QTextCodec>void main() {QTextCod…

MySQL中的增查操作:探索数据的奥秘,开启数据之门

本节&#xff0c;我们继续深入了解MySQL&#xff0c;本章所讲的基础操作&#xff0c;针对的是表的增删查改&#xff01; 一、Create 新增 1.1、语法 INSERT [INTO] table_name[(column [, column] ...)] VALUES(value_list) [, (value_list)] ... value_list: value, [, va…

离线安装bitnami-gitlab8.8.4+汉化

注意&#xff1a; 常规安装gitlab需要联网&#xff0c;而按装bitnami-gitlab无需联网(bitnami-gitlab用于内网环境无法联网时安装gitlab&#xff0c;两者是一个东西只是名字不一样)bitnami-gitlab-8.8.4版本可以汉化成功新用户注册账户无需激活也可以直接登录&#xff0c;因为…

200元运动蓝牙耳机有哪些?爆款测评PK力荐!

在运动场景下&#xff0c;传统的入耳式和半入耳式耳机虽然占据了大部分市场&#xff0c;但并不适合所有人&#xff0c;尤其是在长时间运动中佩戴时&#xff0c;耳道的压迫感往往会导致不适。而骨传导耳机虽然通过不塞入耳道的方式改善了佩戴舒适度&#xff0c;但在音质方面与入…

git-合并连续两次提交(一个功能,备注相同)

前言&#xff1a; 场景是这样&#xff0c;由于我是实现一个功能&#xff0c;先进行了一次commit,然后我发现写的有些小问题&#xff0c;优化了一下功能并且把代码优化了一次&#xff0c;于是又提交了一次。两次的提交都是以相同的备注&#xff08;当然这个无所谓&#xff09;&a…

keras的内部的模块有哪些? (自用便签)

AI回答, 什么时候忘了回来看看

OpenCV高级图形用户界面(11)检查是否有键盘事件发生而不阻塞当前线程函数pollKey()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 轮询已按下的键。 函数 pollKey 无等待地轮询键盘事件。它返回已按下的键的代码或如果没有键自上次调用以来被按下则返回 -1。若要等待按键被按…

如何在分布式环境中实现高可靠性分布式锁

目录 一、简单了解分布式锁 &#xff08;一&#xff09;分布式锁&#xff1a;应对分布式环境的同步挑战 &#xff08;二&#xff09;分布式锁的实现方式 &#xff08;三&#xff09;分布式锁的使用场景 &#xff08;四&#xff09;分布式锁需满足的特点 二、Redis 实现分…

12、论文阅读:利用生成对抗网络实现无监督深度图像增强

Towards Unsupervised Deep Image Enhancement With Generative Adversarial Network 摘要介绍相关工作传统图像增强基于学习的图像增强 论文中提出的方法动机和目标网络架构损失函数1) 质量损失2) 保真损失3&#xff09;身份损失4&#xff09;Total Loss 实验数据集实现细节评…

【机器学习】任务七:聚类算法 (K-means 算法、层次聚类、密度聚类对鸢尾花(Iris)数据进行聚类)

目录 1.基础知识 1.1 K-Means 算法 1.2 层次聚类&#xff08;Hierarchical Clustering&#xff09; 1.3 密度聚类&#xff08;DBSCAN&#xff09; 1.4 距离和相似度度量方法 1.5 总结&#xff1a; 2.K-means 算法对鸢尾花&#xff08;Iris&#xff09;数据进行聚类 2.1…