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

马哥门徒N57SRE第二周

MyCAT中间件服务实现读写分离第一步:完成Mariadb(Mysql)主从复制创建主从数据库A配置master服务器配置my.c

MyCAT中间件服务实现读写分离

第一步:完成Mariadb (Mysql)主从复制


创建主从数据库

A配置master服务器

  1. 配置my.cnf设置server-id

[root@centos7 ~]#yum install mariadb-server -y

[root@centos7~]#vim /etc/my.cnf

[mysqld]

server-id=8

log-bin

  1. 启动数据库

[root@centos7 ~]#systemctl start mariadb

     2.创建复制用户

[root@centos7 ~]#mysql

MariaDB [(none)]> grant replication slave on *.* to repluser@'10.0.0.%' identified by 'replpass';

MariaDB [(none)]> show master status;

  ---------------------------------------------------------------------------------

B配置slave服务器

  1. 配置my.cnf设置server-id

[root@centos7 ~]#yum install mariadb-server -y

[root@centos7 ~]#vim /etc/my.cnf

[mysqld]

server-id=17

   2.修改主节点备份文件

[root@centos7 ~]#mysql

MariaDB [(none)]> show slave status;

看到数据库已经复制成功。(注意配置信息一定要和master服务器信息一致!)

第二步搭建MYCAT服务器

1、安装Java Mariadb

[root@web02 ~]# yum -y install jave mariadb

[root@web02 ~]# java -version

[root@web02~]#wget http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz

[root@web02 ~]# mkdir /apps

[root@web02 ~]# tar xvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz  -C /apps/

[root@web02 ~]# vim /apps/mycat/conf/server.xml

第三步安装client服务器

[root@web01 ~]# yum -y install mariadb

第四步将Mycat和后端Mariadb关联

Mycat服务器配置

[root@web02 ~]# vim /apps/mycat/conf/schema.xml

重启mycat

[root@web02 ~]# mycat restart

Stopping Mycat-server...

Stopped Mycat-server.

Starting Mycat-server...

主从数据库创建mycat账户授权

通过通用日志确认实现读写分离(general_log)

测试mycat自动调度读请求至主节点

####################################################################

ansible常用模块总结

2.1Command模块

功能:在远程主机执行命令,此为默认模块,可忽略-m选项

作用&#xff1a;执行系统命令&#xff08;linux windows&#xff09;&#xff0c;不支持变量&#xff0c;"<"&#xff0c;">"&#xff0c;"|"&#xff0c;";"&#xff0c;"&"等符号

这个批量处理设备相同操作很方便&#xff01;注意颜色&#xff01;

2.2Shell模块

shell模块增强版Command模块

功能&#xff1a;执行复杂的命令

2.3 script模块

功能&#xff1a;作用&#xff1a;将本地脚本复制到远程主机&#xff0c;并执行。&#xff08;不需要给脚本添加执行权限&#xff09;

2.4copy模块

拷贝, 修改文件或目录, 修改已经存在的目录的权限

使用content可以直接在远端创建文件&#xff0c;同时指定文件内容

使用backup&#61;yes备份配置文件&#xff0c;可以实现配置文件的修改或回滚

该模块可以直接拷贝链接

[root&#64;m01 ~]# ansible-doc copy #查看copy模块用法

    src: #源文件或目录&#xff0c;要复制到远程主机的文件在本地的地址&#xff0c;可以是绝对路径&#xff0c;也可以是相对路径。如果路径是一个目录&#xff0c;它将递归复制。在这种情况下&#xff0c;如果路径使用"/"来结尾&#xff0c;则只复制目录里的内容&#xff0c;如果没有使用"/"来结尾&#xff0c;则包含目录在内的整个内容全部复制&#xff0c;类似于rsync&#xff08;#&#xff09;。&#xff08;src为空目录是时候是不会拷贝的&#xff0c;一致显示绿色&#xff09;

    content&#xff1a;用于替代"src",可以在命令行直接设定指定文件的值

    dest: #目标目录

    owner: foo #属主

    group: foo #属组&#xff08;不能使用gid指定&#xff09;

    mode: &#39;0644&#39; #权限&#xff0c;数字(3位|4位)&#xff0c;字母&#xff0c;UGO   

    backup: yes #当出现同名的文件&#xff0c;直接覆盖&#xff0c;因为默认是no&#xff0c;指定yes后&#xff08;文件内容不同会以当前时间戳备份该文件&#xff09;

    force&#xff1a;如果目标主机包含该文件&#xff0c;但内容不同&#xff0c;如果设置为yes&#xff0c;则强制覆盖&#xff0c;如果为no&#xff0c;则只有当目标主机的目标位置不存在该文件时&#xff0c;才复制。默认为yes&#xff08;force&#61;no和state&#61;backup可以二选一&#xff09;

remote_src&#xff1a;

yes #受控端自己玩(可以做批量回滚)

no #默认

--------------------------------------------------  

#远程批量拷贝&#xff0c;相当于scp&#xff0c;rsync

目标目录下文件存在的话会报错&#xff0c;被控端主机用户不存在会报错&#xff08;但是它把能做的都做了&#xff09;

2.5.fetch模块

与copy相反&#xff0c;copy是把本机文件发到所有node节点&#xff0c;用fetch可以比如从node节点抓取日志信息

只能抓取单个文件&#xff0c;抓多个需要把那些文件打包再抓

2.6file模块

功能&#xff1a;创建文件或目录&#xff0c;修改已经存在的目录的权限&#xff0c;创建软硬连接  

file:

    path: /etc/foo.conf #指定创建的目录或文件

    state&#xff1a;

     touch #创建文件

     directory #创建目录

     absent #删除目录或文件

     link #做软链接

    owner: foo #属主

    group: foo #属组

    mode: &#39;0644&#39; #权限

    recurse #递归

1 force&#xff1a;需要在两种情况下强制创建软链接&#xff0c;一种是源文件不存在但之后会建立的情况下&#xff1b;另一种是目标软链接已存在,需要先取消之前的软链&#xff0c;然后创建新的软链&#xff0c;有两个选项&#xff1a;yes|no

2 group&#xff1a;定义文件/目录的属组

3 mode&#xff1a;定义文件/目录的权限&#xff08; 1.一次创建多个目录的时候才会递归授权&#xff0c;  2.recurse&#61;yes也会递归授权&#xff09;

4 owner&#xff1a;定义文件/目录的属主

5 path&#xff1a;必选项&#xff0c;定义文件/目录的路径&#xff08;不存在的话可以直接创建&#xff09;#

6 recurse&#xff1a;&#39;递归&#39;的设置文件的属性&#xff0c;只对&#39;目录&#39;有效&#xff08;指定recurce的话&#xff0c;可以修改已经存在的文件或者目录的权限&#xff0c;默认关闭&#xff09;&#xff08;需要配合mode owner group一起使用&#xff09;

7 src&#xff1a;要被链接的源文件的路径&#xff0c;只应用于state&#61;link的情况

8 dest&#xff1a;被链接到的路径&#xff0c;只应用于state&#61;link的情况

9 state&#xff1a;  

directory&#xff1a;如果目录不存在&#xff0c;创建目录

file&#xff1a;只能修改文件或目录的时间 &#xff08;配合modification_time access_time&#xff09;

link&#xff1a;创建软链接

2.7unarchive模块

功能&#xff1a;解压缩

1、解压ansible管理机上的压缩文件到远程主机&#xff1a;

ansible all -m unarchive -a "src&#61;/tmp/install/zabbix-3.0.4.tar.gz dest&#61;/tmp/ mode&#61;0755 copy&#61;yes"

2、解压远程主机上的文件到目录&#xff1a;

ansible all -m unarchive -a "src&#61;/tmp/install/zabbix-3.0.4.tar.gz dest&#61;/tmp/ mode&#61;0755 copy&#61;no"

copy&#xff1a;默认为yes&#xff0c;当copy&#61;yes&#xff0c;那么拷贝的文件是从ansible主机复制到远程主机上的&#xff0c;如果设置为copy&#61;no&#xff0c;那么会在远程主机上寻找src源文件

src&#xff1a;源路径&#xff0c;可以是ansible主机上的路径&#xff0c;也可以是远程主机上的路径&#xff0c;如果是远程主机上的路径&#xff0c;则需要设置copy&#61;no

dest&#xff1a;远程主机上的目标路径

2.8hostname模块

会修改配置文件&#xff0c;不是临时更改

[root&#64;web01 ~]# ansible 10.0.0.8 -m hostname -a &#39;name&#61;node8.wutongweng.com&#39;

2.9cron模块

功能&#xff1a;添加定时任务

#使用crontab之前最好同步时间&#xff08;注意单引号和双引号的作用&#xff09;&#xff08;*有时候需要加&#39;&#39;&#xff09;

[root&#64;m01 ~]# ansible &#39;*&#39; -m cron -a "name&#61;同步时间 minute&#61;*/5 job&#61;&#39;/usr/sbin/ntpdate time1.aliyun.com &>/dev/null&#39;"

ansible-doc cron

ansible db -m cron -a &#39;minute&#61;""  hour&#61;"" day&#61;"" month&#61;"" weekday&#61;"" job&#61;"" name&#61;"&#xff08;必须填写&#xff09;" state&#61;&#39;

1、定时设置指定值的写入即可&#xff0c;没有设置的要删除

2、name必须写&#xff08;创建定时任务或者删除定时任务的 标志&#xff0c;不能修改注释&#xff09;(这一点和yum仓库名一样)

3、state有两个状态&#xff1a;present&#xff08;添加&#xff08;默认值&#xff09;&#xff09;or absent&#xff08;移除&#xff09;

#添加定时任务

ansible db -m cron -a &#39;minute&#61;"*/10" job&#61;"/bin/echo hello" name&#61;"test cron job" state&#61;"present"&#39;

查看定时任务

ansible db -a "crontab -l"

#修改定时任务

ansible db -m cron -a &#39;minute&#61;"*/5" job&#61;"/bin/echo hello" name&#61;"test cron job" state&#61;"present"&#39;

#移除定时任务&#xff08;根据name来删除&#xff09;

ansible db -m cron -a &#39;minute&#61;"*/10" job&#61;"/bin/echo hello" name&#61;"test cron job" state&#61;"absent"&#39;

ansible all -m cron -a "name&#61;test state&#61;absent"

查看定时任务

ansible db -a "crontab -l"

# 注释相应定时任务&#xff0c;使定时任务失效

ansible web_group -m cron -a "name&#61;&#39;ansible cron01&#39; minute&#61;0 hour&#61;0 job&#61;&#39;/bin/sh /server/scripts/test.sh&#39; disabled&#61;yes"

2.10yum模块

功能&#xff1a;远程下载

name #包名&#xff0c;用等于号表示&#xff08;指定要安装的软件包的名称&#xff09;

file:// #指定本地安装路径&#xff0c;&#61;yum localinstall -y

http:// #指定yum仓库

state #指定动作,用等于号表示

present #安装软件包(默认)&#xff08;&#61;install&#xff09;

absent #删除软件包&#xff08;&#61;remove&#xff09;

latest #安装最新版本的软件包或&#xff0c;升级

disable_gpg_check #默认值为 no&#xff0c;表示不禁用验证&#xff0c;设置为 yes 表示禁用验证&#xff0c;即不验证包&#xff0c;直接安装。

enablerepo #临时启用源&#xff08;无论此源是否开启&#xff09;

disablerepo #临时禁用某个源&#xff0c;这样设置后&#xff0c;在安装软件包时则不会从对应的源中选择安装包。

download_only&#61;true              #只下载不安装 yum install [d]

-------------------------------------------------------------

#下载安装&#xff0c;使用被控端的源安装软件包

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m yum -a &#39;name&#61;vsftpd&#39;

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m yum -a &#39;name&#61;vsftpd state&#61;present&#39;

#下载安装&#xff0c;指定源的rpm包&#xff0c;相当于wget&#43;localinstall&#xff0c;可以指定包名和协议

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m yum -a &#39;name&#61;https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm state&#61;present&#39;

#安装&#xff0c;前提是客户端指定目录下有这个rpm包&#xff08;相当于yum localinstall&#xff09;

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m yum -a &#39;name&#61;/root/zabbix-agent-5.0.0-1.el7.x86_64.rpm state&#61;present&#39;

--------------------------------------------------------------

#卸载

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m yum -a &#39;name&#61;zabbix-agent-5.0.0-1.el7.x86_64 state&#61;absent&#39;

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m yum -a &#39;name&#61;zabbix state&#61;absent&#39;

-----------------------------------------------------------------------

#扩展

[root&#64;localhost ~]# ansible all -m yum -a "name&#61;httpd state&#61;latest disable_gpg_check&#61;yes enablerepo&#61;epel"

#升级所有软件包&#xff0c;排除httpd

[root&#64;Ansible ~]# ansible all -m yum -a "state&#61;latest name&#61;&#39;*&#39; exclude&#61;&#39;httpd&#39;"

2.11service模块

远程启停&#xff0c;重载服务

service模块(可以跨平台&#xff0c;跨系统) 与systemd模块作用类似&#xff0c;使用命令类似

1 arguments&#xff1a;给命令行提供一些选项 #

2 enabled&#xff1a;是否开机启动 yes|no&#xff08;默认是no&#xff09;

3 name&#xff1a;必选项&#xff0c;服务名称

4 pattern&#xff1a;定义一个模式&#xff0c;如果通过status指令来查看服务的状态时&#xff0c;没有响应&#xff0c;就会通过ps指令在进程中根据该模式进行查找&#xff0c;如果匹配到&#xff0c;则认为该服务依然在运行 #

5 runlevel&#xff1a;运行级别 #

6 sleep&#xff1a;如果执行了restarted&#xff0c;在则stop和start之间沉睡几秒钟

7 state&#xff1a;对当前服务执行启动&#xff0c;停止、重启、重新加载等操作&#xff08;started,stopped,restarted,reloaded&#xff09;

#保持服务启动并设置为开机自启

 ansible web_group -m service -a &#39;enabled&#61;yes name&#61;httpd state&#61;started&#39;

2.12user模块

使用yml语法修改用户密码

多种加密方式获取加密密码

功能&#xff1a;管理远程主机上的用户&#xff0c;比如创建用户、修改用户、删除用户、为用户创建密钥对等操作

user模块是请求的是useradd, userdel, usermod三个指令&#xff0c;goup模块请求的是groupadd, groupdel, groupmod 三个指令。

groups&#xff1a; #修改附加组为

     append&#61;no #默认&#xff0c;覆盖&#xff08;相当于usermod -G&#xff09;

     append&#61;yes #追加&#xff08;相当于usermod -aG&#xff09;

uid&#xff1a; 指定用的uid

group: #指定主组

password&#xff1a; #明文密码进行哈希后的字符串&#xff0c;你可以在 python 的命令提示符下输入如下命令&#xff0c;生成明文密码对应的加密字符串 "import crypt; crypt.crypt(&#39;666666&#39;)"

update_password:

    always: 只有当密码不相同时才会生效&#xff0c;即修改密码(默认) #

    on_create: 只为新用户设置密码

name&#xff1a; 指定用户名

system&#xff1a; 是否为系统用户 yes|no&#xff08;默认是no&#xff09;

remove&#xff1a; 当state&#61;absent时&#xff0c;remove&#61;yes则表示连同家目录,邮件目录一起删除&#xff0c;等价于userdel -r&#xff08;默认是no&#xff09;

state&#xff1a;

    absent #删除用户

     remove&#61;no #默认&#xff0c;删除用户时&#xff0c;不会删除用户的家目录等信息

     remove&#61;yes #删除用户的同时&#xff0c;会删除用户的家目录&#xff0c;邮件目录

    present #创建用户&#xff08;默认&#xff09;

shell&#xff1a; 指定用户的shell环境(默认是/bin/bash)

expires: 设置用户的过期时间&#xff0c;值是一个时间戳&#xff08;转化命令&#xff1a;date -d 2018-12-31 &#43;%s&#xff0c;命令行设置 expires&#61;&#xff09;

comment: #创建用户的时候添加一段注释

generate_ssh_key: yes #创建公钥&#xff08;默认&#xff09;

ssh_key_bits: 2048 #指定公钥长度

ssh_key_file: .ssh/id_rsa #创建私钥(创建用户的家目录下)

create_home&#61;false #是否创建家目录&#xff08;默认创建true&#xff09;

------------------------------------------------------------------------

#创建用户,修改用户

ansible &#39;web_group&#39; -m user -a &#39; &#39;

name&#61;ll

name&#61;hh comment&#61;"zhushi" uid&#61;1040 group&#61;adm #该组必须存在

name&#61;hh shell&#61;/bin/bash groups&#61;adm,lp append&#61;yes

name&#61;hh state&#61;absent remove&#61;yes

name&#61;hh expires&#61;1422403387

name&#61;hh generate_ssh_key&#61;yes ssh_key_bits&#61;2048 ssh_key_file&#61;.ssh/id_rsa

name&#61;"testops" password&#61;"$6$0lwTSmqKOkL.ktgl$OnBexXC7haBf0FRHVMIZM2edDeFWBbpKJ2r9cxVwNvY.vh3IIUzwFz8n7jFglc0CrtQSY12ziDonVL6e71Og2."

--------------------------------------------------------------

#生成密钥时&#xff0c;只会生成公钥文件和私钥文件&#xff0c;和直接使用ssh-keygen指令效果相同&#xff0c;不会生成authorized_keys文件。复制id_rsa.pub粘贴为authorized_keys文件即可使用

name&#61;test generate_ssh_key&#61;yes ssh_key_bits&#61;2048 ssh_key_file&#61;~/.ssh/id_rsa

-----------------------------------------------------------------------

#指定password参数时&#xff0c;不能使用后面这一串密码会被直接传送到被管理主机的/etc/shadow文件中&#xff0c;所以需要先将密码字符串进行加密处理。然后将得到的字符串放到password中即可。

1.加密

[root&#64;ansible-manager ~]# python

>>> import crypt;crypt.crypt(&#39;666666&#39;)

&#39;$6$ziT/sb5KRtUaxoq7$ulfHVLqVgXfmfFUYY7FppzqBQMUYd.2GLDyQwmKv4dYAd0zpgtt5JDheoO/OvvTvY53x9UShX.PtHykJEvsmG0&#39;

2.创建用户指定密码 或 修改用户密码

------------------------------------------------------------------

#删除用户

注意该用户下不能有任何进程&#xff0c;否则会报错(但是能删除的都删除了)

ansible &#39;web_group&#39; -m user -a &#39; &#39;

name&#61;ll state&#61;absent remove&#61;yes

2.13group模块

功能&#xff1a;创建用户组

[root&#64;m01 ~]# ansible-doc group

    name: somegroup #指定组名

    state: present #创建&#xff08;默认&#xff0c;课省略&#xff09;

    state: absent #删除

gid #指定创建的组的gid

#远程创建组

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m group -a &#39;name&#61;dd gid&#61;233 state&#61;present&#39;

#远程删除组

[root&#64;m01 ~]# ansible &#39;web_group&#39; -m group -a &#39;name&#61;dd gid&#61;233 state&#61;absent&#39;

参考网页&#xff1a;https://www.cnblogs.com/syy1757528181/p/13069043.html

#####################################################################

ansible-playbook批量安装httpd&#xff0c;按主机名提供不同的index.html&#xff08;如node1的index.html欢迎页面为welcome node1&#xff09;

删掉所有websrvs 下安装的的httpd

编写install_httpd.yml

Ansible Playbook测试并发布剧本执行安装

测试

&#xff08;index.html的获取主机变量好像没有成功&#xff0c;有空再试试编写部分&#xff09;

###################################################################

编译安装redis

[root&#64;web01 ~] wget http://download.redis.io/releases/redis-5.0.9.tar.gz

[root&#64;web01 ~]yum -y install gcc jemalloc-devel

  [root&#64;web01 ~]tar xvf redis-5.0.9.tar.gz

  [root&#64;web01 ~]cd redis-5.0.9/

  [root&#64;web01 redis-5.0.9]make PREFIX&#61;/apps/redis install

  [root&#64;web01 redis-5.0.9]tree /apps/redis/

  [root&#64;web01 redis-5.0.9]#ln -s /apps/redis/bin/* /usr/bin/

  [root&#64;web01 redis-5.0.9] #mkdir /apps/redis/{etc,log,data,run}

   [root&#64;web01 redis-5.0.9]#useradd -r -s /sbin/nologin redis

   [root&#64;web01 redis-5.0.9]#chown redis.redis /apps/redis -R

修改启动三个报错&#xff1a;

[root&#64;web01 redis-5.0.9]# vim /etc/sysctl.conf

[root&#64;web01 redis-5.0.9]# sysctl -p

net.core.somaxconn &#61; 1024

vm.overcommit_memory &#61; 1

[root&#64;web01 redis-5.0.9]# echo &#39;echo never > /sys/kernel/mm/transparent_hugepage/enabled&#39; >> /etc/rc.d/rc.local

[root&#64;web01 redis-5.0.9]# chmod &#43;x /etc/rc.d/rc.local

[root&#64;web01 redis-5.0.9]# cp redis.conf /apps/redis/etc/

[root&#64;web01 redis-5.0.9]# chown -R redis.redis /apps/redis/

[root&#64;web01 redis-5.0.9]# vim /apps/redis/etc/redis.conf

[root&#64;web01 redis-5.0.9]# redis-server /apps/redis/etc/redis.conf

[root&#64;web01 redis-5.0.9]# vim /apps/redis/etc/redis.conf

Bind0.0.0.0

daemonize yes

[root&#64;web01 redis-5.0.9]# redis-server /apps/redis/etc/redis.conf


推荐阅读
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本文探讨了在使用 ClickOnce 部署方式时遇到的自动更新失败问题,包括本地安装与服务器安装的不同表现,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了如何在阿里云 ECS 实例上安装和配置 MySQL 数据库,包括安装 MySQL 的 Yum 仓库、解决常见安装问题、启动服务以及设置初始用户权限等步骤。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 本文介绍了一种有效的方法来监控Web服务器(如Nginx)和数据库服务器(如MySQL)的服务状态,通过端口、进程和服务响应等多种方式确保服务的正常运行。 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • Mac环境下Java与Ant自动化构建环境搭建指南
    本文详细介绍了如何在Mac操作系统上为测试工程师搭建Java和Ant开发环境,包括环境变量配置等关键步骤。 ... [详细]
  • UMPlatForm.NET 5.1 版本数据字典管理功能解析
    本文介绍了 UMPlatForm.NET 5.1 版本中的数据字典管理模块,探讨了该模块如何支持平台的数据共享与管理,以及如何通过用户和角色权限来增强系统的安全性。 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
  • 本文探讨了HTA(HTML Application)环境中HTML5 IndexedDB的可用性问题,并提供了一种替代方案,即通过使用COM ActiveX对象来实现数据存储功能。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 本文详细介绍了将本地计算机和服务器从CentOS 7.2或7.3版本升级到7.4的过程,包括必要的准备步骤、执行升级的具体命令以及验证升级是否成功的检查方法。 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
  • Windows Server 2012 R2 配置IIS 8.5 Web服务器指南
    尽管许多人可能更倾向于使用Linux系统来部署Web服务,但在某些情况下,使用Windows Server 2012 R2及其内置的IIS 8.5来搭建Web服务器是必要的。本文将详细介绍如何在Windows Server 2012 R2上安装和配置IIS 8.5。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
author-avatar
多米音乐_34363545
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有