Linux学习之LNMP环境搭建

news2024/9/27 7:17:55

LNMP是Linux、Nginx、MySQL和PHP的简称。

Linux参数显示

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810uname -r看到内核版本是3.10.0-957.el7.x86_64
在这里插入图片描述

nginx安装

可以参考《Linux学习之CentOS 7源码安装openresty》

安装mariadb数据库

yum install -y mariadb mariadb-server安装mariadb相关组件。
在这里插入图片描述

安装完成如下图:
在这里插入图片描述

/etc/my.cnf文件里边,把下边的内容写到[mysqld]下边:

character_set_server=utf8
init_connect='SET NAMES utf8'

/etc/my.cnf文件里边的整体内容如下:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
character_set_server=utf8
init_connect='SET NAMES utf8'

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

在这里插入图片描述

systemctl start mariadb.service打开mariadb服务,systemctl status mariadb.service查看mariadb服务状态是active (running),正常启动。
在这里插入图片描述

然后输出mysql这个命令按下回车键,之后在mysql提示符输入show variables like '%character_set%';按下回车键,之后就可以看到输出结果。quit可以退出mariadb命令行。
在这里插入图片描述

安装php相关软件

yum install -y php-mysql php-fpm安装php-mysqlphp-fpm
在这里插入图片描述

完成之后如下图:
在这里插入图片描述

systemctl start php-fpm.service打开php-fpm服务,systemctl status php-fpm.service查看php-fpm服务状态是active (running),正常启动。
在这里插入图片描述

Nginx配置

我当前工作目录是/usr/local/openresty,若你现在不是的话,可以使用cd /usr/local/openresty切换工作目录。
在这里插入图片描述

把原有文件内容的两处修改了一下,首先有一处改成了如下所示:

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

其次改成了listen 8084;,因为在天翼云上,808080443端口都需要额外申请才能在安全组里边打开,所以我就把监听端口改成了80848084端口在安全组里边打开。

/usr/local/openresty/nginx/conf/nginx.conf里边的修改后整体内容如下:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8084;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

nginx/sbin/nginx -t检查一下配置文件是正常的。
在这里插入图片描述
要是不正确的话,nginx/sbin/nginx -t会显示什么地方不正确,还会显示test failed
在这里插入图片描述

cat << EOF >> /usr/local/openresty/nginx/html/index.php把下边的内容一次输出,每输入一行按一下Enter,要是不明白这个命令的作用,可以参考《Linux学习之系统默认打开的文件描述符、重定向》标准输出重定向和标准输入重定向结合部分

<?php
phpinfo();
?>
EOF

在这里插入图片描述

systemctl start openresty启动openresty,systemctl status openresty查看到状态是active (running),正常启动。

在这里插入图片描述

验证

因为我这里使用的是公有ip,不方便展示出来,所以我在浏览器展示的是自己主机上私有ip。ip:端口/index.php就可以在浏览器上显示内容。
在这里插入图片描述

此文章为8月Day 27学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。

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

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

相关文章

最简单的电子宣传册制作软件

HI&#xff01;今天给大家分享一款操作起来最简单的制作电子宣传册的软件---FLBOOK&#xff0c;它可支持在线排版编辑、一键套用模板的方式&#xff0c;使新手也能制作出优秀的电子宣传册。 具体如何制作的呢&#xff1f; 1.打开FLBOOK&#xff0c;进入FLBOOK主页 2.打开模板专…

在Jupyter中使用AI写代码,如有神助,太惊艳了

昨晚看到一个可以在JupyterLab中使用的AI代码辅助工具jupyter-ai&#xff0c;它的交互确实非常棒&#xff0c;可以直接聊天&#xff0c;也可以就笔记中的代码提问&#xff0c;最出彩的是生成笔记功能&#xff0c;还是蛮惊艳的。 这里就极简介绍一下安装及用法 第一步是创建环…

学习笔记:Pytorch利用MNIST数据集训练生成对抗网络(GAN)

2023.8.27 在进行深度学习的进阶的时候&#xff0c;我发了生成对抗网络是一个很神奇的东西&#xff0c;为什么它可以“将一堆随机噪声经过生成器变成一张图片”&#xff0c;特此记录一下学习心得。 一、生成对抗网络百科 2014年&#xff0c;还在蒙特利尔读博士的Ian Goodfello…

学习笔记230827--vue项目中,子组件拿不到父组件异步获取数据的问题

问题描述 父组件的数据是请求后台所得&#xff0c;因为是异步数据&#xff0c;就会出现&#xff0c;父组件的值传递过去了&#xff0c;子组件加载不到&#xff0c;拿不到值的问题。 下面从同步数据传递和异步数据传递开始论述问题 1. 父组件传递的是同步数据 父组件 <…

【Spring】什么是 AOP(面向切面编程) ? 为什么要有 AOP ? 如何实现 Spring AOP ?

文章目录 前言一、什么是 AOP ?二、为什么要使用 AOP ?三、 AOP 的组成四、Spring AOP 的实现1, 添加依赖2, 定义切面3, 定义切点4, 定义通知5, 创建连接点 总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法…

计算机视觉 – Computer Vision | CV

计算机视觉为什么重要&#xff1f; 人的大脑皮层&#xff0c; 有差不多 70% 都是在处理视觉信息。 是人类获取信息最主要的渠道&#xff0c;没有之一。 在网络世界&#xff0c;照片和视频&#xff08;图像的集合&#xff09;也正在发生爆炸式的增长&#xff01; 下图是网络上…

Linux操作系统--shell编程(helloworld初体验)

1.shell概述 shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统的内核,以完成所谓的功能指令。 Linux中常用的解析器 CentOS7使用的解析器是bash,这里的sh是指向bash 2.Shell脚本入门 下面我们开始学习编写shell脚本,我们从HelloWorld开始。

怎么找到真实可用的淘宝拼多多京东API?(商品数据订单数据销量价格接口)

要找到真实可用的淘宝、拼多多、京东API&#xff0c;可以采取以下步骤&#xff1a; 打开相应电商平台的开放平台网站&#xff0c;例如淘宝开放平台、拼多多开放平台、京东开放平台等。在网站中注册并登录&#xff0c;找到API文档或开发者文档等页面。在文档中搜索与所需功能相…

代码随想录算法训练营之JAVA|第三十八天|494. 目标和

今天是第38天刷leetcode&#xff0c;立个flag&#xff0c;打卡60天。 算法挑战链接 494. 目标和https://leetcode.cn/problems/target-sum/ 第一想法 题目理解&#xff1a;题目给出一个数组&#xff0c;使用 或 - 算术符号&#xff0c;有多少种组合可以得到target的值。 拿…

URL中传递JSON字符串

今天遇见了一个需求&#xff0c;从post请求中在url里传递json字符串&#xff0c; 就是路径?参数11那种情况 最后怎么解决的呢&#xff1f; 需要使用前端方法&#xff0c;先用JSON.stringify格式化成字符串&#xff0c;再用encodeURIComponent把JSON里面的符号转转为url支持的…

1.2 Kali Linux的网络配置

前言 最新文章请见此处&#xff0c;持续更新&#xff0c;敬请订阅&#xff01;https://blog.csdn.net/algorithmyyds/category_12418682.html 网络在如今的社会已是十分重要的媒介&#xff0c;如果没有网络&#xff0c;很多事情将难以办成。渗透测试也是一样——毕竟在攻击机…

新生报到:无压力的数字自我介绍

&#x1f338; 新生报到&#xff1a;无压力的数字自我介绍 &#x1f338; 开学季又来临&#xff0c;每个学校、每个班级都迎来了一批新鲜面孔。作为新生&#xff0c;面对陌生的环境和同学&#xff0c;首次的自我介绍无疑是一个让许多人感到紧张和迷茫的挑战。你是否曾因为害羞…

理解底层— —Golang的log库,二开实现自定义Logger

理解底层— —Golang的log库&#xff0c;实现自定义Logger 1 分析实现思路 基于golang中自带的log库实现&#xff1a;对日志实现设置日志级别&#xff0c;每天生成一个文件&#xff0c;同时添加上前缀以及展示文件名等 日志级别&#xff0c;通过添加prefix&#xff1a;[INFO]、…

C 字符串处理

字符数组 输入输出 输入函数 scanf(%s, s)读入字符串&#xff0c;在第一个空白符( 、\n 、\t )处停止&#xff0c;不读入空白符&#xff0c;在串尾自动添加\0’ 。gets(s)读入一行字符&#xff0c;直到遇到\n &#xff0c;读入换行符并将其舍弃&#xff0c;在串尾自动添加\…

H5如何做性能测试?

说起H5性能测试&#xff0c;可能许多同学有所耳闻&#xff0c;但是不知道该如何去做性能测试&#xff0c;或者不知道H5应该关注哪些性能指标。今天我们就来看下。希望阅读本文后&#xff0c;能够有所了解。 常用指标 1、H5性能相关参数介绍 白屏时间&#xff1a;用户首次看到…

[LitCTF 2023]PHP是世界上最好的语言!!

进入环境看起来还是挺牛逼的&#xff0c;但是在右边输入框下有一个执行代码&#xff0c;有点牛 真的可以直接执行&#xff0c;那么 根据题目提示&#xff0c;我们得知flag&#xff0c;在根目录&#xff0c;所以我们可以直接利用 查看到flag位置 得到flag

IDEA插件反编译jar包

安装插件Java Decompiler 安装插件Java Decompiler成功之后重启idea 找到已安装插件的jar包 执行反编译 反编译 在已安装插件Java Decompiler的jar包位置下cmd命令执行反编译 java -cp "插件路径" org.jetbrains.java.decompiler.main.decompiler.ConsoleDec…

在线SM4(国密)加密解密工具

在线SM4(国密)加密解密工具

基于安卓的考研助手系统app 微信小程序

&#xff0c;设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。HBuilder技术作为当前最流行的操作平台&#xff0c;自然也存在着大量的应用服务需求。 本课题研究的是基于HBuilder技术平台的安卓的考研助手APP&#xff0c;开发这款安卓的考研助手APP主要是为了…

【管理运筹学】第 6 章 | 运输问题(2,表上作业法 | 初始可行解的确定)

文章目录 引言二、表上作业法2.1 初始基可行解的确定2.1.1 最小元素法2.1.2 伏格尔法 写在最后 引言 承接前文&#xff0c;在对运输问题有了基本的了解后&#xff0c;我们开始深入学习表上作业的具体内容。 二、表上作业法 2.1 初始基可行解的确定 2.1.1 最小元素法 基本思…