(一)环境信息
1,系统环境
2,域信息(本章节使用)
(二)应用部署
1,ladp部署
1、 yum方式安装OpenLDAP服务
2、拷贝数据库配置配置文件,并启动服务
3、slappasswd生成OpenLDAP管理员密码
4、导入基本的模式
5、在OpenLDAP DB上配置域信息
2,安装phpLDAPadmin实现通过Web管理LDAP服务
1,部署httpd
2,部署php应用
3,部署phpldapadmin(LDAP的web管理平台)
4,测试访问http://ip:port/ldapadmin
5,使用dn账户登录(dn=admin,dc=test,dc=cn)
6,对象信息说明
7,创建组和用户模板
8,导出域中全部信息
(三)附上脚本,仅适合初始搭建使用!!!!
1,脚本内容
2,搭建ldap自助修改密码系统Self Service Password
3,注意事项
(四)docker-compose启动Ldap+web管理+自助密码修改
END:参考文章
(一)环境信息
1,系统环境
项目 Value
OS centos
CPU,MEM 1核1G
DISK 40G
2,域信息(本章节使用)
注意:以下内容均自定义。

项目 Value
DN cn=admin,dc=test,dc=cn
CN admin
DC test
DC cn
(二)应用部署
1,ladp部署
1、 yum方式安装OpenLDAP服务
yum -y install openldap-servers openldap-clients
1
2、拷贝数据库配置配置文件,并启动服务
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG
systemctl start slapd
systemctl enable slapd

3、slappasswd生成OpenLDAP管理员密码
注意:OpenLDAP管理员密码,记录下来(后边有个管理员密码,两者的区别个人并没有没有去了解)

slappasswd

vim chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}+YIJ4gVMNx+8OlYYYbjFtCvTZTfzisjO

ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

4、导入基本的模式
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
5、在OpenLDAP DB上配置域信息
注意:版本不同会遇到数据文件名的数字不是2的

使用slappasswd 生成管理员的密码(上文提到的管理员密码,大概是域的账户密码,个人理解)

slappasswd

vim chdomain.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=admin,dc=test,dc=cn" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=test,dc=cn

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=test,dc=cn

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}IMDL0ohcloXXLulIlGDhub62cvtwwzWw

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
1

注意:创建初始目录结构(个人理解),这个需要命令行创建

vim basedomain.ldif
1
dn: dc=test,dc=cn
objectClass: top
objectClass: dcObject
objectclass: organization
o: Test Cloud
dc: test

dn: cn=admin,dc=test,dc=cn
objectClass: organizationalRole
cn: admin
description: Directory Manager

dn: ou=People,dc=test,dc=cn
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=test,dc=cn
objectClass: organizationalUnit
ou: Group

ldapadd -x -D cn=admin,dc=test,dc=cn -W -f basedomain.ldif
1
注意:输入Manager的密码(上文提到的第二个)

2,安装phpLDAPadmin实现通过Web管理LDAP服务
1,部署httpd
yum install -y httpd
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf_bak
vim /etc/httpd/conf/httpd.conf
#95行下面加一行(95gg),指定地址(域名/ip)及端口
95 #ServerName www.example.com:80
96 ServerName www.walkingcloud.cn
#在151行处改为
AllowOverride All
#164行处改为
DirectoryIndex index.html index.php index.cgi
#在最下面添加如下两行
ServerTokens Prod
KeepAlive On

systemctl start httpd
systemctl enable httpd.service

2,部署php应用
yum install php php-mbstring php-pear
systemctl restart httpd

3,部署phpldapadmin(LDAP的web管理平台)
yum --enablerepo=epel -y install phpldapadmin
vim /etc/phpldapadmin/config.php
注意:397行取消注释,398行注释掉

397 $servers->setValue('login','attr','dn');
398 //$servers->setValue('login','attr','uid');

vim /etc/httpd/conf.d/phpldapadmin.conf
#
# Web-based tool for managing LDAP servers
#

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs

<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
#Require local
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
#Deny from all
Allow from all
#Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

注意:遇到以下报错
You don’t have permission to access /ldapadmin on this server
可以通过修改httpd配置文件 httpd.conf。

vim /etc/httpd/conf/httpd.conf
1
修改前

<Directory />
AllowOverride none
Require all denied
</Directory>

修改后:

<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>

4,测试访问http://ip:port/ldapadmin

5,使用dn账户登录(dn=admin,dc=test,dc=cn)

6,对象信息说明
更多请参考ldap objectclass - Fuzengjie - 博客园

objectClass: 描述了实体所表现的对象类型。objectClass存在于任意实体中,并且至少包含两个属性值,其中的一个值必须是 top
aliasedObjectName: 如果包含这个属性的实体是 alias 的话,那么目录服务就使用 aliasedObjectName
cn: X.500 的 commonName 属性。包含一个对象的名字,如果对象是 person 的时候, cn 经常代表用户的全名
sn: 是 X.500 的 surname 属性,保存了 person 的 family name 。
serialNumber: 保存了 一个设备的序列号
c: 保存了 一个两位数字的 ISO 国家代码 (countryName)
l: 保存了 地域名称,例如城市,乡镇或者其他的地理区域 (localityName)
st: 保存了 州或者省的全名 (stateOrProvinceName)
street: 保存了 实体对应的对象的物理地址,例如包裹的邮寄地址。 (streetAddress)
o: 保存了 组织的名字。 (organizationName)
ou: 保存了 组织单元的名称 (organizationalUnitName)
description: 保存了 对象的一个易于理解的 描述。

7,创建组和用户模板
ldapadd -x -D 'cn=admin,dc=test,dc=cn' -f READAFA.ldif -H ldap://localhost -w <password>
1
# yunwei, GROUP, test.cn
dn: cn=yunwei,ou=GROUP,dc=test,dc=cn
cn: yunwei
gidNumber: 500
objectClass: posixGroup
objectClass: top

# yangyang, yunwei, GROUP, test.cn
dn: cn=yangyang,cn=yunwei,ou=GROUP,dc=test,dc=cn
givenName: yang
sn: yang
uid: yangyang
homeDirectory: /home/users/yangyang
loginShell: /usr/sbin/nologin
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
uidNumber: 1001
gidNumber: 500
cn: yangyang
userPassword:: MTIzNDU2

8,导出域中全部信息
ldapsearch -D 用于验证的binddb -w '对应密码' -H ldap://localhost (-p ldap服务器端口 -h ldap服务器地址) -b 'dc=test,dc=cn' "ou=*或者ou=Group(可添加过滤条件精确匹配)"
1
(三)附上脚本,仅适合初始搭建使用!!!!
1,脚本内容
注意:初始目录可能创建失败,可在命令行手动执行

#!/bin/bash
HALPPSFE="ldappass.txt"
HALPANPSFE="ldapadminpass.txt"
yum -y install openldap-servers openldap-clients expect >/dev/null
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG
systemctl start slapd
systemctl enable slapd
read -p $'\n请输入LDAP密码并记录:\n' -e LDAPPASS
expect <<-EOF >$HALPPSFE
set timeout 10
spawn -noecho slappasswd
expect {
"*assword:*" {send "$LDAPPASS\n";exp_continue}
"*assword:*" {send "$LDAPPASS\n";exp_continue}
}
EOF
HALDAPPASS=`tail -n 1 ${HALPPSFE}`
echo $HALDAPPASS
cat >chrootpw.ldif<<-EOF
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: $HALDAPPASS
EOF
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
read -p $'\n请输入LDAPADMIN密码并记录:\n' -e LDAPADMINPASS
expect <<-EOF >$HALPANPSFE
set timeout 10
spawn -noecho slappasswd
expect {
"New password:" {send "$LDAPADMINPASS\n";exp_continue}
"Re-enter new password:" {send "$LDAPADMINPASS\n";exp_continue}
}
EOF
HALDAPADMINPASS=`tail -n 1 ${HALPANPSFE}`
echo $HALDAPADMINPASS
read -p $'\n请输入你的CN,例如:cn=【admin】,dc=test,dc=cn,括号内的内容为你需要输入的自定义CN:\n' -e CN
while [ -z $CN ]
do
read -p $'你输入了一个空的CN,请重新输入\n' -e CN
done
read -p $'\n请输入你的DC,例如:cn=admin,dc=【test】,dc=cn括号内的内容为你需要输入的自定义DC:\n' -e DC
while [ -z $DC ]
do
read -p $'你输入了一个空的DC,请重新输入\n' -e DC
done
read -p $'\n请输入你的DC,例如:cn=admin,dc=test,dc=【cn】括号内的内容为你需要输入的自定义DC:\n' -e Dc
while [ -z $Dc ]
do
read -p $'你输入了一个空的DC,请重新输入\n' -e Dc
done
echo -e "\n你的LDAP密码为:$LDAPPASS
你的域为cn=$CN,dc=$DC,dc=$Dc,LDAPADMIN密码为:$LDAPADMINPASS\n
请你记录,10s后开始后续写入执行。。。"
sleep 10s
cat >chdomain.ldif<<-EOF
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=$CN,dc=$DC,dc=$Dc" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=$DC,dc=$Dc

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=$CN,dc=$DC,dc=$Dc

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: $HALDAPADMINPASS

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=$CN,dc=$DC,dc=$Dc" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=$CN,dc=$DC,dc=$Dc" write by * read
EOF
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
read -p $'请输入你要创建的组名,例如【Group】(ldapadmin无法创建)这里是写死的,未做判断,不要跳过:\n' -e OU
read -p $'请输入你要创建的组名,例如【People】(ldapadmin无法创建)这里是写死的,未做判断,不要跳过:\n' -e Ou
cat >basedomain.ldif<<-EOF
dn: dc=$DC,dc=$Dc
objectClass: top
objectClass: dcObject
objectclass: organization
o: Test Cloud
dc: $DC

dn: cn=$CN,dc=$DC,dc=$Dc
objectClass: organizationalRole
cn: $CN
description: Directory Manager

dn: ou=$OU,dc=$DC,dc=$Dc
objectClass: organizationalUnit
ou: $OU

dn: ou=$Ou,dc=$DC,dc=$Dc
objectClass: organizationalUnit
ou: $Ou
EOF
expect <<-EOF
set timeout 10
spawn -noecho ldapadd -x -D cn=$CN,dc=$DC,dc=$Dc -W -f basedomain.ldif
expect {
"*assword:*" {send "$LDAPADMINPASS\n";exp_continue}
}
EOF
echo -e "\nldapserver部署完成,5s后开始部署ldapphpadmin。。。"
sleep 5s
yum install -y httpd mod_ssl>/dev/null
WEFILE="/etc/httpd/conf.d/welcome.conf"
if [ -e "$WEFILE" ];then
mv $WEFILE ${WEFILE}_bak
else
:
fi
TIME=`date +%Y%m%d%H%M`
HDFILE="/etc/httpd/conf/httpd.conf"
cp $HDFILE /tmp/httpd.conf-$TIME
read -p $'请输入你期望的httpd监听的端口号:\n' -e LISTEN
sed -i "s/^Listen.*/Listen $LISTEN/g" $HDFILE
grep "AllowOverride All" $HDFILE
if [ $? -ne 0 ];then
sed -i "151s/AllowOverride None/AllowOverride all/g" $HDFILE
if [ $? -ne 0 ];then
echo "151s/AllowOverride None/AllowOverride all/g $HDFILE失败"
else
:
fi
else
:
fi
JUD=`sed -n "/^ServerName.*/p" $HDFILE`
echo "$JUD"
if [ -z "$JUD" ];then
read -p $'请输入你的ip/域名:\n' -e DOMAIN
sed -i "/^#ServerName.*www.example.com:80/a\ServerName $DOMAIN" $HDFILE
else
read -p $'已存在以上servrname,是否继续新增,需要请选择【yes】,忽略请回车' -e CHOO
while [ "$CHOO" == "yes" ]
do
TIME=`date +%Y%m%d%H%M`
cp $HDFILE /tmp/httpd.conf-$TIME
read -p $'请输入你的ip/域名:\n' -e DOMAIN
sed -i "/^#ServerName.*www.example.com:80/a\ServerName $DOMAIN" $HDFILE
JUD=`sed -n "/^ServerName.*/p" $HDFILE`
read -p $'已存在$JUD,是否新增,需要请选择【yes】,忽略请回车' -e CHOO
done
echo "非新增操作,请手动查找修改httpd.conf文件"
fi
sed -i "s/.*DirectoryIndex.*index.*/ DirectoryIndex index.html index.php index.cgi/g" $HDFILE
grep "ServerTokens Prod" $HDFILE >/dev/null
if [ $? -ne 0 ];then
echo -e "\nServerTokens Prod\nKeepAlive On" >> $HDFILE
systemctl start httpd
systemctl enable httpd.service
else
systemctl start httpd
systemctl enable httpd.service
fi
yum -y install php php-mbstring php-pear >/dev/null
systemctl restart httpd
yum --enablerepo=epel -y install phpldapadmin >/dev/null
PHPLPANFE="/etc/phpldapadmin/config.php"
TIME=`date +%Y%m%d%H%M`
cp $PHPLPANFE /tmp/config.php-$TIME
sed -i "397s/.*/\$servers->setValue('login','attr','dn');/g" $PHPLPANFE
sed -i "398s/.*/\/\/ $servers->setValue('login','attr','uid');/g" $PHPLPANFE
HDPHPLPANFE="/etc/httpd/conf.d/phpldapadmin.conf"
cp $HDPHPLPANFE /tmp/phpldapadmin.conf-$TIME
cat >$HDPHPLPANFE<<-EOF
#
# Web-based tool for managing LDAP servers
#
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Allow from all
Allow from ::1
</IfModule>
</Directory>
EOF
systemctl restart httpd

1
#脚本中有下载httpd的mod_ssl模块,在/etc/httpd/conf.d/ssl.conf中配置证书文件地址

2,搭建ldap自助修改密码系统Self Service Password
安装应用
Self Service Password:yum install https://ltb-project.org/rpm/6Server/noarch/self-service-password-1.1-1.el6.noarch.rpm
配置apache: /etc/httpd/conf.d/self-service-password.conf

NameVirtualHost *:80
<VirtualHost *:80>
ServerName changepasswd.xxxxx.net
DocumentRoot /usr/share/self-service-password
DirectoryIndex index.php
AddDefaultCharset UTF-8
<Directory "/usr/share/self-service-password">
AllowOverride None
Require all granted
</Directory>
LogLevel warn
ErrorLog /var/log/httpd/ssp_error_log
CustomLog /var/log/httpd/ssp_access_log combined
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
配置Self Service Password,支持密码修改和邮件重置: vim /usr/share/self-service-password/conf/config.inc.php

#关闭 问题验证 和 短信验证(视个人需要):

$use_questions=false;
$use_sms= false;

#配置 LDAP
    $ldap_url = "ldap://ldap.xxxxx.net";
    $ldap_starttls = false;
    $ldap_binddn = "cn=Manager,dc=ldap,dc=xxxxxx,dc=net";
    $ldap_bindpw = "xxxxxxxxx";
    $ldap_base = "dc=ldap,dc=xxxxxx,dc=net";
    $ldap_login_attribute = "cn";
    $ldap_fullname_attribute = "cn";
    $ldap_filter = "(&(objectClass=person)($ldap_login_attribute={login}))";
$who_change_password = "manager"; #指定LDAP 以什么用户身份更改密码
$keyphrase = "admintestcn"; #更改短语。

#配置邮件
    $mail_from = "elk@xxxxx.com";
    $mail_from_name = "企业账号密码重置";
    $mail_signature = "";
$notify_on_change = true; #密码修改成功后,向用户发送通知邮件
    $mail_sendmailpath = '/usr/sbin/sendmail'; #需安装sendmail服务 yum install -y sendmail
    $mail_protocol = 'smtp';
    $mail_smtp_debug = 0;
    $mail_debug_format = 'html';
    $mail_smtp_host = 'smtp.gmail.com';
    $mail_smtp_auth = true;
    $mail_smtp_user = 'elk@xxxxxx.com';
    $mail_smtp_pass = 'xxxxxx';
    $mail_smtp_port = 587;
    $mail_smtp_timeout = 30;
    $mail_smtp_keepalive = false;
    $mail_smtp_secure = 'tls';
    $mail_contenttype = 'text/plain';
    $mail_wordwrap = 0;
    $mail_charset = 'utf-8';
    $mail_priority = 3;
    $mail_newline = PHP_EOL;

配置完成,登录网页访问,通过网页修改账号密码验证

3,注意事项
注意:执行shell脚本时报错:/bin/bash^M: 坏的解释器: 没有那个文件或目录,是因为该文件在windows系统上打开过,关闭后其中的换行符号和Linux的不同,导致这个报错,我们可以通过 sed命令 与正则的配合将文件中的换行符号替换成linux的形式

sed -i 's/\r$//' mocha.sh
1
(四)docker-compose启动Ldap+web管理+自助密码修改
点击跳转到文章地址

END:参考文章
CentOS7下搭建OpenLDAP服务器 - 腾讯云开发者社区-腾讯云

https://cloud.tencent.com/developer/article/1563031
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/haodayizhizhuzhu/article/details/129081815

OPENLDAP部署完整版(Linux)附一键式脚本的更多相关文章

  1. WEB学习路线2019完整版(附视频教程+网盘下载地址)

    WEB学习路线2019完整版(附视频教程+网盘下载地址).适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利.高薪水的职业了.所以现在学习web前端开发的技术人员也是 ...

  2. k3s单机版安装部署 附一键安装脚本

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211109907029/ 相关话题:https://ww ...

  3. 学习Java的知识体系路线(详细完整版,附图加目录)

    将网上的Java学习路线图进行归纳囊括,方便以后学习时弥补自身所欠缺的知识点,也算是给自己一个明确的学习方向.至于第一阶段,即JavaSE的基础,这里不给出. 第二阶段 技术名称 技术内容 数据库技术 ...

  4. [ ceph ] CEPH 部署完整版(CentOS 7 + luminous)

    1. 前言 拜读了 胖哥的(el7+jewel)完整部署 受益匪浅,目前 CEPH 已经更新到 M 版本,配置方面或多或少都有了变动,本博文就做一个 ceph luminous 版本完整的配置安装. ...

  5. lnamp完整版[linux+apache2.4+php5.6.6+mysql5.6]

    Lnamp环境安装实录 将采用的开源软件: Apache [WEB动态脚本服务器,做nginx的反向代理 8080端口] Tengine [WEB静态文件服务器 80端口] MySQL PHP .Ap ...

  6. Odoo Linux服务器一键安装脚本使用指南

    Odoo安装脚本介绍 为了帮助更多Linux服务器维护人员快速部署Odoo,为此开源智造(OSCG)基于André Schenkels曾经开放的openerp-install-scripts所构建的基 ...

  7. Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

    目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...

  8. Linux学习总结(1)——Linux命令大全完整版

    Linux命令大全完整版 目    录I 1. linux系统管理命令1 adduser1 chfn(change finger information)1 chsh(change shell)1 d ...

  9. Linux环境下部署完JDK后运行一个简单的Java程序

    前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...

  10. Genymotion配置及使用教程(最新最完整版附各部分下载地址)

    Genymotion配置及使用教程(最新最完整版附各部分下载地址) FROM:http://blog.csdn.net/beiminglei/article/details/13776013 早都听说 ...

随机推荐

  1. TIER 1: Responder

    TIER 1: Responder Active Directory Active Directory(AD)是由微软开发的目录服务,用于在网络环境中管理和组织用户.计算机.应用程序和其他资源.它是 ...

  2. 在Eclipse中使用Project Explorer视图与Package Explorer视图

    1.在项目文件比较多的情况下,为了方便查看整体和及时定位到项目文件,通常会同时使用Project Explorer视图与Package Explorer视图. 2.打开Project Explorer ...

  3. Jmeter函数助手13-threadGroupName

    threadGroupName函数获取当前线程组的名称.该函数没有参数,直接引用即可. 1. 返回当前线程组的名称

  4. 【PhpAdmin】小皮面板配置PhpAdmin

    1.先用面板开启MySQL和Apache服务 2.MySQL的端口不在3306,我改为3307 3.新建一个站点,声明域名和端口配置 没有配置本地域名映射,这个域名就没有什么用,还是依靠localho ...

  5. 【DataBase】MySQL 05 基础查询

    MySQL数据库 05 基础查询 视频参考自:P18 - P27 https://www.bilibili.com/video/BV1xW411u7ax 配套的SQL脚本:https://shimo. ...

  6. 【Docker】01 概述

    什么是Docker? 一个开源的应用容器引擎 由Go语言开发而成,遵循Apache2.0开源协议 允许开发者打包自己的应用或者依赖包组件到一个轻量级可移植的容器中 Docker容器采用沙箱机制,相互之 ...

  7. 不符合自身利益的科学讨论是否应该得到尊重—— 读《自家员工质疑Jeff Dean领衔的Nature论文被解雇,谷歌:我们彻查了,质疑不符合标准》有感

    读了一篇博文<自家员工质疑Jeff Dean领衔的Nature论文被解雇,谷歌:我们彻查了,质疑不符合标准>,其问大致是说Google提了一篇使用reinforcement learnin ...

  8. manim边学边做--圆形类

    在manim的丰富图形库中,圆形类是一个基础且强大的模块.无论是简单的圆形绘制,还是复杂的圆形变换,它都能以简洁的代码实现. manim中圆形类的相关模块主要有3个: Circle:标准的圆形 Ann ...

  9. maven3.x上传jar

    由于工作需要,将原有的nexus2.x升级为nexus3.x,升级后创建仓库是非常方便,但是该如何将本地的jar上传到maven仓库呢?这个博主就像无头的苍蝇找了好久,才终于找到解决方案.下面描述下该 ...

  10. 推荐5款免费、开箱即用的Vue后台管理系统模板

    前言 在现今的软件开发领域,Vue凭借其高效.灵活和易于上手的特性,成为了前端开发的热门选择.对于需要快速搭建企业级后台管理系统的开发者而言,使用现成的Vue后台管理系统模板无疑是一个明智之举.本文大 ...