LNMP架构部署wordpress个人博客

news/2025/3/4 17:09:23/文章来源:https://www.cnblogs.com/yangfan996/p/18750892

说明

  • LNMP经典网站环境,Linux系统,Nginx网站服务,MySQL数据库(Mariadb),PHP(运行环境)
  • Wordpress PHP代码

建议的搭建顺序

  • MySQL数据库(mariadb)
  • PHP环境 php7.x
  • Nginx直接安装即可

部署数据库

安装数据库

 apt install -y mariadb-server mariadb-client

启动数据库

 systemctl enable --now mariadb

检查

 #检查端口ss -lntup | grep mariadb#检查jinchengps -ef | grep mariadb

数据库初始化(优化)

  #安装后进行即可,进行1次即可mysql_secure_installation#会出现以下提示 照着整就行NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDBSERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andhaven't set the root password yet, you should just press enter here.Enter current password for root (enter for none):   #回车OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobodycan log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.Switch to unix_socket authentication [Y/n] n        #no  ... skipping.You already have your root account protected, so you can safely answer 'n'.Change the root password? [Y/n] Y                   #YNew password: Re-enter new password: Password updated successfully!Reloading privilege tables..... Success!By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem.  This is intended only for testing, and to make the installationgo a bit smoother.  You should remove them before moving into aproduction environment.Remove anonymous users? [Y/n] Y                    #Y ... Success!Normally, root should only be allowed to connect from 'localhost'.  Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] Y              #Y... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess.  This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? [Y/n] Y     #Y- Dropping test database...... Success!- Removing privileges on test database...... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? [Y/n] Y              #Y... Success!Cleaning up...All done!  If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!

进入数据库,创建库,创建用户

 #-u 用户名#-p 密码#使用root登录 #密码为root密码mysql -uroot -p#出现以下提示为进入成功Enter password: Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 39Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> #创建库并检查create tatabase wordpress; #创建一个叫wordpress的库#添加用户并检查grant all on wordpress.* to 'wordpress'@'localhost' identified by 'yangfan996'#上面解析:👆#给予所有all(所有)权限对于wordpress这个库下所有 wordpress用户登录方式为本地登录 用户密码:yangfan996#通过wordpress用户登录测试mysql -uwordpress -pyangfan996

一些删除操作:

1.删除数据库:drop database wordpress;

2.删除用户:drop user 'wordpress'@'localhost'; 刷新权限 flush privileges;

👆22行说明:grent all on wordpress.* to 'wordpress'@'localhost' identified by 'lidao996';

添加用户 设置权限

grent all on wordpress.* to 'wordpress'@'localhost' identified by 'Lidao996'

所有权限对于wordpress库所有表 to‘用户’@‘白名单(本地登录)’ 密码是Lidao996

PHP环境部署

 #安装php#1.生成本地apt缓存apt update#2.安装下面的软件包apt install -y  php8.1-bcmath php8.1-bz2 php8.1-cgi php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-intl   \php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-soap \php8.1-xml php8.1-zip php8.1-apcu php8.1-redis php8.1-snmp#2.检查数量dpkg -l | grep php8.1|wc -l

修改配置文件,检查启动服务

 #1.查看软件包的配置文件dpkg -L php8.1-fpm/etc/php/8.1/fpm/php-fpm.conf #php-fpm主配置文件/etc/php/8.1/fpm/pool.d/etc/php/8.1/fpm/pool.d/www.conf #子配置文件.#2.修改子配置文件vim /etc/php/8.1/fpm/pool.d/www.conf#修改后查看👇egrep '^(user|group|listen)' /etc/php/8.1/fpm/pool.d/www.confuser = www-datagroup = www-datalisten = 127.0.0.1:9000      #主要修改这里listen.owner = www-datalisten.group = www-data#user和group 看后续nginx安装后的用户#3.检查配置文件php-fpm8.1 -t输出为以下👇[14-Sep-2024 10:21:34] NOTICE: PHP message: PHP Warning:  Cannot load module "http" because required module "raphf" is not loaded in Unknown on line 0[14-Sep-2024 10:21:34] NOTICE: configuration file /etc/php/8.1/fpm/php-fpm.conf test is successful用echo $?检查是否错误,没有则返回0#4.启动(重启)dpkg -L php8.1-fpm | grep service#启动php8.1-fpmsystemctl enable  --now php8.1-fpm#查看输出是否有错误echo $?#重启php8.1-fpmsystemctl restart php8.1-fpm

nginx

 #检查是否安装apache#关闭apache2服务apt autoremove apache2 apache2-bin#安装nginxapt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring下载nginx配置文件curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullgpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg#上面命令执行后应该有如下输出:类似的👇pub   rsa2048 2011-08-19 [SC] [expires: 2027-05-24]573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62uid                      nginx signing key <signing-key@nginx.com>echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \| sudo tee /etc/apt/sources.list.d/nginx.listapt update #生成本地apt缓存apt install -y nginx  #下载nginxdpkg -l  | grep nginx  #查看nginx是否安装#3.修改nginx配置文件/etc/nginx/nginx.conf  #主配置文件/etc/nginx/conf.d /etc/nginx/conf.d/default.conf  #子配置文件#3.1修改nginx用户为www-data\grep ^user /etc/nginx/nginx.confuser www-dada#4.修改配置文件cp /etc/nginx/conf.d/default.conf{,.bak} #备份子配置文件vim /etc/nginx/conf.d/default.conf #修改子配置文件cat /etc/nginx/conf.d/default.conf #修改后查看如下👇server {listen       80;server_name  localhost;root /app/code/blog/;location / {index  index.php;}location ~ \.php$ {fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}}#5.检查语法,启动/重启服务nginx -t #检查nginx文件配置参数echo $? #查看输出是否有错systemctl enable --now nginx #启动nginx服务(开机自启)#输出以下👇Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.Executing: /lib/systemd/systemd-sysv-install enable nginx

部署代码(业务)

#1.创建代码目录
mkdir -p /app/code/blog#2.下载代码
#下载网址:https://cn.wordpress.org/download/#下载压缩包
wget https://cn.wordpress.org/latest-zh_CN.zip#3.解压代码移动到网站目录
unzip -t latest-zh_CN.zip #检查安装包完整性 正确输出OK,错误可能输出bad CRC (inflater)
unzip latest-zh_CN.zip  #解压到当前目录
mv wordpress/* /app/code/blog/  #移动wordpress下所有到指定目录(防止因为多出来的wordpress目录而找不到wordpress下文件)#4.设置所属用户
chown -R www-data.www-data /app/code/blog/#5.待补充

放行网页访问(80)端口

5.浏览器搜索域名自动下载域名的文件

原因:可能由于nginx服务没有转发给php服务建议检查nginx子配置文件

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

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

相关文章

Linux用户登录超时设置

1、引言在Linux系统中,用户登录超时设置通常用于增强系统的安全性,防止未经授权的长时间访问。合理的超时设置不仅可以提高系统的安全性,还可以优化用户体验。本文将探讨如何设置Linux终端登录超时,并提出一些优化策略,以确保系统资源得到有效利用,同时降低潜在的安全风险…

构建城市租房时空感知与智能决策平台

在城市化进程不断加速的今天,租房市场作为城市生活的重要组成部分,其健康发展对城市的稳定与繁荣至关重要。“城市租房时空感知与智能决策平台”的建设将利用测绘地理信息技术,为租房市场提供一个全新的视角和决策支持系统。 一、平台建设背景随着城市人口的增长和流动性的增…

从文件到块: 提高 Hugging Face 存储效率

Hugging Face 在 Git LFS 仓库 中存储了超过 30 PB 的模型、数据集和 Spaces。由于 Git 在文件级别进行存储和版本控制,任何文件的修改都需要重新上传整个文件。这在 Hub 上会产生高昂的成本,因为平均每个 Parquet 和 CSV 文件大小在 200-300 MB 之间,Safetensor 文件约 1 G…

Web3 操作系统大揭秘:通用功能打造高效 Web3 生态

在区块链技术飞速发展的今天,RuleOS 作为一款先进的 Web3 操作系统,正逐渐崭露头角,成为推在区块链技术飞速发展的今天,RuleOS 作为一款先进的 Web3 操作系统,正逐渐崭露头角,成为推动行业迈向新高度的关键力量。它以其独特的模块化、紧耦合设计,实现了 Web3 通用应用的…

遥感影像人机协同智能解译系统

在当今信息化时代,遥感技术作为获取地理空间信息的重要手段,其应用范围已经覆盖了农业、林业、城市规划、环境监测等多个领域。随着遥感数据量的激增和人工智能技术的发展,传统的人工解译方式已经难以满足高效率、高精度的需求。因此,遥感影像人机协同智能解译系统的建设显…

Web3世界的乐高工厂:RuleOS如何用插件化生态拼出无限可能?

在数字世界日新月异的今天,Web3作为互联网的新范式正在重塑我们与数字空间的互动方式。在这个去中心化在数字世界日新月异的今天,Web3作为互联网的新范式正在重塑我们与数字空间的互动方式。在这个去中心化的新领域中,一个名为RuleOS的创新平台正如同"乐高工厂"一…

从 0 到 1 搭建 Web3 应用,RuleOS 做对了什么?

在科技飞速发展的当下,区块链技术的兴起为我们带来了全新的变革。其中,Web3 作为区块链技术的重要应用方向,正逐渐走进人们的视野。而在 Web3 的发展进程中,RuleOS 这款创新的 Web3 操作系统脱颖而出,为从 0 到 1 搭建 Web3 应用提供了强大的支持。那么,RuleOS 究竟做对了…

redis基础数据结构——dict

关于哈希: 哈希表是一种提高效率的数据结构,每当我们插入元素时,会根据key的hash值来决定他进入表的哪一槽位。为了保证均匀分布数据,有了下述公式index = hash(key) & (size - 1)在一般情况下,size要求为2的幂。因为原本的公式是hash(key)%size。而使用&的优势是…

No.31 JavaScript--数组

一、定义数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。 两端的方括号是数组的标志。 除了在定义时赋值,数组也可以先定义后赋值。<script>var name = [];name[0] = "m"</script>任何类型的数据,都可以放入…

c# 托管堆和垃圾回收

前言 我们已经理解了clr可以寄宿,然后宿主可以控制了,也就是说外部问题我们已经解决了,那么还有一件重要的事情。 那就是clr 是如何控制托管地的垃圾回收的,为什么有clr就是为了自动垃圾回收嘛,不然为啥不用c++这种是吧。 正文 首先我们要知道内存的分配呢? 在c语音中,内…

flash 钓鱼

访问真实的flash 网站页面,点击查看网页源代码并将所有代码复制下来保存到index.html2.检查并修改源代码链接。搜索href和src,将链接修改为可以访问的形式..新建 flash.js 文件,内容为(其中的 window.location.href 的值修改为 index.html的url地址):window.alert = functio…

Pandas 常用操作 (缺失值处理/排序/字符串处理/Index/Merge/合并)

处理示例:清洗成 -> Code:import pandas as pd# 读取Excel,跳过前面两行空行 studf = pd.read_excel(rstudent_excel.xlsx, skiprows=2) print(studf) # 删除掉全部是空值的列 studf.dropna(axis=columns, how=all, inplace=True) # 删除掉全部是空值的行 studf.dropn…