热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php底层了解一下子及linux命令

PHP的核心数据结构是什么?HashTablehashTable为什么Linux要分为用户空间和内核空间?1.安全内核有些接口给用户空间用运行php

在这里插入图片描述

  1. PHP 的核心数据结构是什么?
    HashTable

hashTable

  1. 为什么Linux要分为用户空间和内核空间?
    1.安全 内核有些接口给用户空间用

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

运行php有个 调度的过程,用户空间-》调用内核空间,内核空间返回用户空间,会有两种状态切换

  1. 谈谈你队5种常用IO模型的理解?
    1阻塞IO,
    2.非阻塞IO
    3.多路复用IO
    4.信号驱动IO
    5.异步IO

  2. 一次网络请求的完整过程?(重点)
    在这里插入图片描述

1.用户输入url 浏览器缓存 (f12 network size (disk cache) 意思是访问的浏览器缓存)浏览器引擎
2.DNS服务器 解析URL 获取ip (f12 Remote Address: XX.XXX.XX.XX:端口号)
这个ip就是

DNS解析分4步

  • 利用本地host文件解析
  • 向本地DNS服务器请求解析
  • 本地DNS服务器想根DNS服务器,域服务器等请求解析(有递归和迭代两种方式)
  • 本地DNS服务器在请求完成后需要缓存url和ip的映射关系
    (ps:浏览器其实也有dns解析缓存,比如google,访问的预上的地址,但是浏览器一直访问的线上的环境)
    所以这里有个步骤,先到本地找,然后到浏览器找,之后到远程服务器找
    3.TCP 或者SSL/TLS 握手 ssl和tls不懂点这里
    tcp工作在第4层
    4.发起http请求 http工作在第7层
    5.反向代理->负载均衡 -》给某个服务器 php执行代码
    6.返回响应报文
    7.浏览器引擎渲染页面(以浏览器的格式转换,格式转化)
    8.展示页面

(ps:
TCP/IP协议的层次划分:

TCP/IP协议并不完全符合OSI的七层参考模型,OSI(Open System Interconnect)是传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。

这7层是:物理层、数据链路层(网络接口层)、网络层(网络层)、传输层(传输层)、会话层、表示层和应用层(应用层)。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
)

dns污染是啥呢?
一般是黑客钓鱼,电脑设置dns服务器,如果是自动设置的,可能到黑客那里,
(自己设置的8.8.8.8)

502 php-fpm错误 网关错误
504 过了nginx的超时时间

  1. 如何提高linux最大文件打开数?(一切都是文件)
    查看方法 ulimit -a 或者 ulimit -t
    ulimit详细用法
    在这里插入图片描述
    打开文件数是啥??不是打开文件,任何草书都是文件存在的,
    ulimit -a 默认是1024 你要设置 65535并使它永久生效,必须修改配置文件 /etc/security/limits.conf 在配置文件中添加
    * soft nofile 65535
    * hard nofile 65535
    运行下面两行代码
    在这里插入图片描述

  2. Nginx最大打开文件数
    在这里插入图片描述

这个参数调很高,也要把ulimit 调整一下,要不没有作用。
在nginx.conf文件中设置

  1. linux如何查看后台所有php进程?
    ps -ef | grep php ps -ef 具体命令

  2. 同时将某个文件夹的属主改为oracle,数组改成dba
    chown -R -oracle:dba test
    文件的主人改成oracle 组是dba
    文件夹是 test

  3. 给指定文件的属主和属组所有权限(读写执行)
    chmod ug+rwx file.txt

  4. 查看系统负载?
    uptime

  5. 查看内存使用情况

free -m

  1. linux系统日志文件在哪?
    /var/log/messages

  2. 用什么命令查看ip地址及接口信息?

  3. 用什么命令查看ip地址及接口信息?
    ifconfig

  4. 查看所有环境变量
    env

  5. 通过什么命令查找执行命令?
    which

  6. 怎么对命令进行取别名?
    alias la=‘ls-a’

  7. 如何杀掉进程?
    kill命令用于终止进程
    -9强迫进程立即停止

kill -9 [PID]

  1. LINUX中如何查看某个端口被占用?
    netstat -anp | grep 端口号

  2. 将/test1目录下的 file1复制到 /test3目录,并将文件名改为file2
    cp /test1/file1 /test3/file2

文件夹加 -p
scp 是跨服务器

  1. 如何在linux下更改权限?
    chomd +x test.txt
    在这里插入图片描述

  2. linux系统中用户有哪几种?

在这里插入图片描述

  1. 切换到一个目录里面需要哪些权限?
    rx

  2. nginx配置文件如何优化?【重点】
    1.故障切换
    2.健康监测

高可用:在规定时间返回内容就是高可用

负载均衡故障切换
这里用了轮训 max_fails=2最大失败连接次数2
fail_timeout=600s 超时时间10min
在这里插入图片描述

nginx 健康监测 配置
nginx_upstream_check_module 模块主动检查健康状态
check interval=3000 rise =2 fall=5 timeout=1000 type=http
意思是,对cluster这个负载均衡条目中的所有节点,每隔3秒检测一次,请求2次正常则标记 realserver状态为up,如果检测 5 次都失败,则标记 realserver的状态为down,超时时间为1秒。

type:健康检查包的类型,现在支持以下多种类型

  • tcp:简单的tcp连接,如果连接成功,就说明后端正常。
  • ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。
  • http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。
  • mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。
  • ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。
  • port: 指定后端服务器的检查端口。

在这里插入图片描述

  1. 请求分发的实现方式

在这里插入图片描述

  1. mongodb和redis 的区别?(重点)
    mongodb存的是json字符串

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. mongodb中分片是啥?

在这里插入图片描述
28. php的代码执行流程?

在这里插入图片描述
在这里插入图片描述

opcache opcache缓存
第一次编译的结果放到缓存,
第二次都不用编译了。直接去缓存取
最少提高一倍。

  1. php-fpm配置如何优化?
    php-fpm不能设置过多,要设置合适

在这里插入图片描述
在这里插入图片描述

  1. php底层原理?
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

spl

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

php7操作monogodb
在这里插入图片描述
插入
在这里插入图片描述
更新数据
在这里插入图片描述
删除数据
在这里插入图片描述
读取数据

在这里插入图片描述


推荐阅读
  • 负载均衡 LVS vs Nginx 对比
    前言今天总结一下负载均衡中LVS与Nginx的区别,之前看过好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TU ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
  • nginx使用内置模块配置限速限流的方法实例_nginx
    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的 ... [详细]
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
  • 云原生的十大开源项目是什么
    这篇“云原生的十大开源项目是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值 ... [详细]
  • 我们身边的网络知识
    我们身边的网络常识今天咱们交流的主题是网络基础,这块东西对于咱们计算机或者通讯专业的人来说应该是很熟悉的,今天拿出来再说一说,是因为这块知识在咱们工作和生活中时刻都在使用,并且非常 ... [详细]
  •   简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。集群主要分为:高可用集群(HighAvailabilityCluste ... [详细]
  • 什么是网络数据包代理?为何需要网络数据包代理?为更优的决策获得更全面、精准的数据更严格的安全性更快地解决问题提高主动性更好的投资回报率NPB到底能做什么?冗余数据包去重SSL解密报 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 这家安全厂商避谈“软件定义”,我却要为它的“反骨”点赞
    点击上方“中国云报”可直接关注!已经成立了9年的迪普科技,今年第一次举办大规模的合作伙伴大会。4月20日,以“创享未来,诚献 ... [详细]
  • 企业之haproxy
    haproxy是一款功能强大、灵活好用反向代理软件,提供了高可用、负载均衡、后端服务器代理的功能,它在7层负载均衡方面的功能很强大(支持cookietrack,headerre ... [详细]
  • 简介RSocket是在华盛顿特区举行的SpringOne平台会议上宣布的,是一种新的第7层语言无关的应用网络协议。它是一种基于ReactiveStreams背压的双 ... [详细]
  • SmartMesh WireLess HART 资料总结
    SmartMeshWireLessHART资料总结--刘振君2017.01.0923:00:00IEEE802.15是一个工作组98年成立,专门从事 ... [详细]
author-avatar
Lcy榆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有