ubuntu环境下部署LNMP集成环境超详细图文教程

news2024/9/20 10:39:44

ubuntu系统下安装LNMP集成环境

一、Nginx安装

二、安装及配置MySQL数据库

修改密码

三、安装PHP

四、配置Nginx服务

​编辑五、配置PHP


 

  • 本文使用的Ubuntu版本为20.04。

php开发中集成环境的安装是必不可少的技能。

而LNMP代表的是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

今天就给大家分享下LNMP的安装步骤。

一、Nginx安装

  • 在安装 Nginx 前先执行下更新命令
sudo apt-get update

749e41a87a6b496aae737b768ad47473.png

  • 接下来开始安装Nginx
sudo apt-get install nginx

113eeae6a7a84c919153d7bd9def452f.png

📢 提示:如下是我在安装过程中出现过的问题及解决方案,供如果出现同样问题的你们参考。

  1. 如下,提示我权限不够。
    E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (13: 权限不够)
    E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),请查看您是否正以 root 用户运行?
  2. 只需登录root用户即可。
lxy@lxy-virtual-machine:~$ apt-get install nginx
E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (13: 权限不够)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),请查看您是否正以 root 用户运行?
lxy@lxy-virtual-machine:~$ sudo passwd root
新的 密码: 
重新输入新的 密码: 
passwd:已成功更新密码
lxy@lxy-virtual-machine:~$ su root
密码: 
root@lxy-virtual-machine:/home/lxy# apt-get install nginx
  • 开启Nginx服务

ab406a34ccc047eaa008ba0744743808.png

  • 查看Nginx版本
sudo nginx -v

db509f242e944d3b85000f05b4b10fcb.png

  •  安装执行完成后打开浏览器输入:http://localhost/ ,检验是否安装成功,出现如下提示代表安装成功。

d04a97c96eeb4affae88a4bc0273fb73.png

二、安装及配置MySQL数据库

MySQL是一个关系型数据库管理系统。本步骤将指导如何在ECS实例上安装并配置MySQL服务。

1、安装MySQL数据库。

sudo apt install mysql-server
sudo apt install mysql-client

f2b989a700d947868d66d9215dffafdb.png

fd9aada2bacf4345b36123d031550863.png

📢 提示:如下是我在安装过程中出现过的问题及解决方案,供如果出现同样问题的你们参考。

  1. 如下提示 锁正由进程 31837(dpkg)持有。
    lxy@lxy-virtual-machine:~$ sudo apt-get install mysql-server
    E: 无法获得锁 /var/lib/dpkg/lock。锁正由进程 31837(dpkg)持有
    N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
    E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

    解决措施如下:

    sudo rm /var/lib/dpkg/lock-frontend
  2. 如下又提示 锁正由进程 7506(unattended-upgr)持有。
    lxy@lxy-virtual-machine:~$ sudo apt-get install mysql-server
    E: 无法获得锁 /var/lib/dpkg/lock。锁正由进程 7506(unattended-upgr)持有
    N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
    E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

    解决措施如下 :

    sudo apt remove unattended-upgrades
  3. 完成,输入下载代码即可成功安装。
    sudo apt-get install mysql-server

     

f4ce8cb1380241f7afb08dee5763bfae.png

  • 执行如下命令,检查MySQL服务是否正常运行。
sudo service mysql start
sudo service mysql status

如下图所示说明MySQL处于运行状态。 

64dbf2d1eec641538799b9a8afaba284.png

  • 检查MySQL是否安装成功。
mysql

返回如下结果,表示MYSQL安装成功。

74d43a293cad449b89e5315af7c90267.png

执行 quit 或者 exit 命令,则可以退出MYSQL。

  •  查看MYSQL版本
mysql -v

24f0a29260d642798cbd6ebd193db2fb.png

修改密码

  • 使用如下代码,在root情况下执行如下命令,可成功登录MYSQL。
mysql -uroot -p

输入 root 用户新密码并按Enter键。返回下图结果,表示已成功登陆MYSQL。

91c896d5764f4d958bcc8d232efb5470.png

  • 切换到普通用户下,发现报错。

f685f244a43a4268bb5bf59a61caabb2.png

4bbd928d901f4311b096ffa98625352a.png

  • 解决方法
  1. 利用sudo权限登录MySQL,代码如下:
    sudo mysql -u root

    6f281e98a075444e8e2e08c58d2c87f7.png

  2. 使用mysql数据库。
    USE mysql;

    4f77d70c438147e6b855d3f8f7b0d6a4.png

  3. 添加修改密码代码(下面仅供参考,可自定义)。
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

    4411c470a63942349d1d6db2b14abaa1.png

  4. 通过以下命令使设置生效。
    FLUSH PRIVILEGES;

    559caa29ffcd499c864946e5117310a4.png

  5. 退出mysql模式,输入下方代码,发现可以使用刚才设置的密码登录MySQL。
    mysql -u root -p

    e924810cc44a42dcaa5fd0f799063b3d.png

三、安装PHP

PHP是一种广泛使用的通用开源脚本语言,适合于Web网站开发,它可以嵌入HTML中。本步骤将指导如何在ECS实例上安装并配置PHP服务。

  • 使用如下代码,安装PHP
sudo apt -y install php-fpm

8d558c6a297c46c299a451e4233176a1.png

  • 查看PHP版本,返回如下结果,可以看到PHP版本
php -v

4d8ca8fcab9341ffadcc86aca83351ed.png

四、配置Nginx服务

本步骤将指导如何修改Nginx默认的配置文件,添加 Nginx 对 PHP 的支持。

  • 打开Nginx默认的配置文件。
vim /etc/nginx/sites-enabled/default

6aac87f2aa354fbb88818b27b0169d06.png

  • 修改Nginx配置文件。
  1. 在server{}内,找到index开头的配置行,在该行中添加index.php。25d6b202e1c54f00a1b0ff517a4efcd0.png
  2.  在server{}内找到 location ~ \.php$ {},去除以下配置行的注释符号#,并将php7.0-fpm.sock改为php7.2-fpm.sock。09fd6b7b502047879effb60eb3b01d46.png
  3. 按Esc退出编辑模式,然后输入 :wq 并按Enter键,保存并退出文件。
  • 重启Nginx服务。
sudo systemctl restart nginx.service

a97e706cd9834cfda837114f3dcffb2b.png
五、配置PHP

  • 在Nginx网站根目录中,新建 phpinfo.php 文件。
sudo vi /var/www/html/phpinfo.php
  • 添加以下配置信息。
<?php echo phpinfo(); ?>

7ae5b8f010084f5e80b4732f81dc46ca.png

  • 按Esc退出编辑模式,然后输入 :wq 并按Enter键,保存并退出文件。
  • 启动PHP。(php7.4-fpm 是我这的版本号,你们根据自己的版本号进行修改)
sudo systemctl start php7.4-fpm

6fb31bc8fa714c42b1985b2032a4f2c3.png
5、在本地浏览器中打开新页签,在地址栏中访问 http://localhost/phpinfo.php。

返回如下页面,表示PHP语言环境安装成功。

f07c3d77ae994c50a83b860ecacff3be.png

 

 

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

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

相关文章

李沐--动手学深度学习 ResNet

1.理论 2.残差块 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l#ResNet沿用了VGG完整的3*3卷积层设计.残差块的实现如下&#xff1a; #此代码生成两种类型的网络&#xff1a; #一种是当use_1x1convFalse时&#xff0…

96.SAP MII功能详解(09)Workbench-Transaction Debugging

目录 1.About Transaction Debugging Use Features Activities 2.How to Debug Start Debugging Create Breakpoint Watch Variables Debugging logs 1.About Transaction Debugging Use You use this function to monitor and manipulate a transaction while it …

java框架第一课(mybatis认识)

一.关于mybatis 1.mybatis的背景 mybatis原来 是Apache的一个开源项目iBatis,2010年6月这个项目由ApacheSoftware Foundation 迁移到了 Google Code&#xff0c;并改名为mybatis。 2.mybitis的介绍 (1)MyBatis 是一款优秀的持久层框架(在与数据库交互,数据访问层,数据持久层)。…

深入学习SQL优化的第四天

目录 高级查询与连接 1731 每 位 经 理 的 下 属 员 工 数 量 1789 员 工 的 直 属 部 门 610 判 断 三 角 形 180 连 续 出 现 的 数 字 1164 指 定 日 期 的 产 品 价 格 1204 最 后 一 个 能 进 入 巴 士 的 人 1907 按 分 类 统 计 薪 水 子查询 1978 上…

机器学习入门(Datawhale X 李宏毅苹果书 AI夏令营-Task1)

&#x1f4dd;本文介绍 本文为作者初探机器学习&#xff0c;读苹果书写下的笔记。 &#x1f44b;作者简介&#xff1a;一个正在积极探索的本科生 &#x1f4f1;联系方式&#xff1a;943641266(QQ) &#x1f6aa;Github地址&#xff1a;https://github.com/sankexilianhua &…

AcWing854. Floyd求最短路

注意&#xff1a;Floyd是求图里面任意两个点x&#xff0c;y之间的最短距离 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 210, INF 1e9;int n, m, Q; int d[N][N];void floyd() { //枚举1~k个中间节点&a…

书生.浦江大模型实战训练营——(十三)茴香豆:企业级知识库问答工具

最近在学习书生.浦江大模型实战训练营&#xff0c;所有课程都免费&#xff0c;以关卡的形式学习&#xff0c;也比较有意思&#xff0c;提供免费的算力实战&#xff0c;真的很不错&#xff08;无广&#xff09;&#xff01;欢迎大家一起学习&#xff0c;打开LLM探索大门&#xf…

国货之光|暴雨信创服务器亮相北京科博会

8月13-16日&#xff0c;由北京市人民政府主办的第二十六届中国北京国际科技产业博览会&#xff08;简称北京科博会&#xff09;在北京国际会议中心成功举办。作为汇聚全球科技创新成果与智慧交流的高端盛会&#xff0c;北京科博会是推动创新发展成果展示的重要舞台。 青海科技展…

html2canvas ios慎用和createImageBitmap ios慎用

好好好&#xff0c;排查几天&#xff0c;原来是你 小本本记下了[翻白眼][翻白眼][翻白眼] ​html2canvas ios慎用&#xff0c;用了记得设置字体 ​2. createImageBitmap ios慎用&#xff0c;14及以下不兼容&#xff0c;建议更换api

Vue3基础2

1.Hooks 就是进行数据的封装&#xff0c;同一种类型的 数据 方法 计算属性 &#xff0c;放在一起 命名规范 use功能名称.ts 或.js 创建一个文件夹 hooks 1.useDog.ts import { reactive,onMounted } from "vue"; import axios from "axios";export def…

Golang | Leetcode Golang题解之第375题猜数字大小II

题目&#xff1a; 题解&#xff1a; func getMoneyAmount(n int) int {f : make([][]int, n1)for i : range f {f[i] make([]int, n1)}for i : n - 1; i > 1; i-- {for j : i 1; j < n; j {f[i][j] j f[i][j-1]for k : i; k < j; k {cost : k max(f[i][k-1], f[…

Linux命令:创建新的目录的工具mkdir命令详解

目录 一、概述 二、语法 1、基本语法 2、常用选项 3、获取帮助 三、示例 1. 创建单个目录 2. 创建多个目录 3. 使用 -p 选项创建多级目录 4. 设置目录权限 5. 显示创建目录的信息 &#xff08;1&#xff09;一般目录创建 &#xff08;2&#xff09;复杂目录创建 …

大数据技术之Flume 企业开发案例——负载均衡和故障转移(6)

目录 负载均衡和故障转移 1&#xff09;案例需求 2&#xff09;需求分析 3&#xff09;实现步骤 负载均衡和故障转移 1&#xff09;案例需求 使用 Flume1 监控一个端口&#xff0c;其 sink 组中的 sink 分别对接 Flume2 和 Flume3&#xff0c;采用 FailoverSinkProcessor…

裁员后的逆袭:程序员变外卖小哥,AI绘画成就全新职业生涯

一、初代程序员的困境 曾几何时&#xff0c;我是一名初代程序员&#xff0c;投身于互联网行业&#xff0c;为我国信息化建设贡献自己的力量。然而&#xff0c;随着年龄的增长和行业竞争的加剧&#xff0c;我不可避免地遭遇了裁员。面对突如其来的变故&#xff0c;我不得不重新审…

Nginx反向代理B

http协议反向代理 反向代理配置参数 proxy_pass; #用来设置将客户端请求转发给的后端服务器的主机 #可以是主机名(将转发至后端服务做为主机头首部)、IP地址&#xff1a;端口的方式 #也可以代理到预先设置的主机群组&#xff0c;需要模块ngx_http_upstream_module支持 #示例:…

机械学习—零基础学习日志(如何理解概率论9)

大数定律与中心定律 来看一道习题&#xff1a; 这个题目看看&#xff0c;应该是什么呢~下一章来看看解析~ 《概率论与数理统计期末不挂科|考研零基础入门4小时完整版&#xff08;王志超&#xff09;》学习笔记 王志超老师 &#xff08;UP主&#xff09;

构造,CF 1290B - Irreducible Anagrams

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1290B - Irreducible Anagrams 二、解题报告 1、思路分析 首先根据样例特…

系统编程-消息队列

消息队列 目录 消息队列 引入 一、消息队列的特点 二、使用指令查看消息队列 三、使用消息队列进行通信的步骤 1、获取键值 2、创建或获取消息队列 id 3、使用消息队列进行数据的传输 4、msgrcv -- 从消息队列中读取数据 5、消息队列的多种操作函数 引入 -- 进程间…

一、undo log、Buffer Pool、WAL、redo log

目录 1、undo log2、Buffer Pool3、WAL4、redo log5、总结6、问题 1、undo log undo log日志是一种用于撤销回退的逻辑日志&#xff0c;在事务未提交前会记录相反的操作到undo log&#xff0c;当事务回滚&#xff0c;使用undo log 进行回滚&#xff0c;保证了事务的原子性。MV…

Golang 深入理解 GC

垃圾是指程序向堆栈申请的内存空间&#xff0c;随着程序的运行已经不再使用这些内存空间&#xff0c;这时如果不释放他们就会造成垃圾也就是内存泄漏。 垃圾回收 (Garbage Collection&#xff0c;GC) 是编程语言中提供的自动的内存管理机制&#xff0c;自动释放不需要的内存对象…