开源软件
概念
- 源代码(source code):源代码任何人都可以审查、修改和增强
- 开源协议:Apache License、BSD、GPL、MPL、EPL
- 开源社区:GitHub、Gitee、OSCHINA
MKdocs 静态文档
- 一款漂亮的知识库系统
- 可做知识库,可以做博客(
纯静态
) - 基于Python,跨平台
- 文档参考:mkdocs官网、mkdocs-material、少数派
pip install mkdocs # 如果没有 pip 命令,执行
mkdocs new demodocs # 切换到你的文档目录,然后运行这条命令创建项目,名称随个人喜欢
# 文件说明
demodocs # 你的大目录
├── docs # 资源目录,所有md文档以及图片等都放在这个目录下
│ ├── index.md # 类似于index.html/index.php,不能缺少
│ ├── notes # 可以在docs下建子目录,方便归类管理
│ │ ├── mkdocs.md
│ │ └── python.md
│ └── imgs # 图片资源
└── mkdocs.yml # mkdocs 配置文件
site_name: IT小圈知识库 # 站点名称
site_url: https://doc.iquan.fun # 站点链接
site_author: anYun
site_description: IT小圈知识库,一个致力于成为受欢迎的知识库 # 站点描述
copyright: Copyright @ IT小圈 2021 anYun deyun@deyun.fun admin@iquan.fun # 版权声明
markdown_extensions: # 扩展选项配置
- attr_list
- md_in_html
- footnotes
- admonition
- pymdownx.details
- pymdownx.superfences
- tables
- pymdownx.tabbed:
alternate_style: true
theme: # 主题配置
name: material # 主题名称,这里需要安装,安装主题命令 pip install mkdocs-material,你也可以安装其它主题
features: # 主题扩展配置,请查阅对应主题官方文档
- content.tabs.link
language: zh # 语言选择,默认是 en
mkdocs serve # 默认监听 127.0.0.1:8000 ,外部不能直接访问
mkdocs serve -a 192.168.1.1:8000 # 自定义监听地址,外部可以直接访问
mkdocs -h # 查看相关选项
nohup mkdocs serve & # 后台运行
# Nginx 代理配置
server {
listen 80;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:8000/;
}
}
cd demodocs # 切换到你的文档目录
mkdocs build # 构建HTML文件,完成会在当下生成一个 site 文件
# 把 site 文件拷贝到你的web服务器就行
phpipam
- pdo, pdo_mysql : 添加对 mysql 连接的支持
- session : 添加持久会话支持
- sockets : 添加套接字支持
- openssl : 添加 openSSL 支持
- gmp :添加对 dev-libs/gmp(GNU MP 库)的支持 -> 计算 IPv6 网络
- ldap :添加 LDAP 支持(轻量级目录访问协议 - 也适用于 AD)
- crypt : 添加对密码加密的支持
- SimpleXML:支持 SimpleXML(可选,用于 RIPE 查询,如果 API 需要)
- json:启用 JSON 支持
- gettext:启用翻译
- filter : 添加过滤支持
- pcntl : 添加对进程创建功能的支持(可选,扫描需要)
- cli : 启用 CLI(可选,扫描和状态检查需要)
- mbstring : 启用 mbstring 支持
- php pear : PHP 5.5 以后都需要手动安装
# 下载 phpipam 包,并上传到 你的web服务器上
# 然后解压,并把所有文件拷贝到web目录
# 修改文件权限
# 计划任务配置
# 主要用于子网是否可用、状态如何等
# ping 检测任务
*/5 * * * * /usr/bin/php /usr/local/nginx/html/functions/scripts/pingCheck.php > /dev/null 2>&1
# 检测子网是否被占用
*/5 * * * * /usr/bin/php /usr/local/nginx/html/functions/scripts/discoveryCheck.php > /dev/null 2>&1
# 这里仅作参考
server {
listen 80;
server_name localhost;
server_tokens off;
charset utf8;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm index.php;
}
location /usr/local/nginx/html/api/{
try_files $uri $uri/ /usr/local/nginx/html/api/index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
# 升级 phpipam
systemctl stop nginx # 停nginx
systemctl stop mysqld # 停数据库
systemctl stop php-fpm # 停PHP
cp /usr/local/nginx/html/config.php /root/config.php.bk # 备份配置文件,以防万一,请根据自己目录环境操作
mysqldump -u phpipam -pphpipamadmin phpipam > /root/phpipam_db_2019-7-28.sql # 备份数据库
# 去GitHub 下载最新的 phpipam,解压并替换原来的目录
# 替换配置文件
systemctl start nginx
systemctl start mysqld
systemctl start php-fpm
# 用admin 账户登录后台刷新数据库
# 如果刷新失败,导入刚刚备份的数据库即可
-----
# 忘记 admin 密码
php function/script/reset-admin-password.php # 然后输入新的 密码即可
Docker
-
添加 Repo 源
dnf/yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo dnf/yum update
-
安装 docker-ce
dnf/yum install -y docker-ce systemctl start docker systemctl status docker
-
换 Docker 国内源
# 编辑 /etc/docker/daemon.json ,并把下列内容覆盖进去,如果没有这个文件就新建一个 { "registry-mirrors" : [ "https://mirror.ccs.tencentyun.com", "http://registry.docker-cn.com", "http://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com" ], "insecure-registries" : [ "registry.docker-cn.com", "docker.mirrors.ustc.edu.cn" ], "debug" : true, "experimental" : true } # 重启 docker systemctl restart docker # 确认源是否替换成功,没有则检查配置 docker info
-
安装 docker-compose (
docker-compose 不同版本的 yml 配置文件有差异
)curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version
- 镜像拉取(
这里以 mariadb 、 wordpress 为例
)docker pull mariadb:latest docker pull wordpress:latest
- 镜像查询
docker search xxx
- 启动实例
docker run xxx # 启动 mariadb 实例 docker run --name mariadb -e MYSQL_ROOT_PASSWORD=123456 -d mariadb
- 实例管理
# 查看实例 docker ps -a # 查看实例 IP查看所有实例IP(`命令比较长,可以做别名, 比如 docker show ip=docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'`) docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 实例ID 或 实例name # 查看所有实例IP(`命令比较长,可以做别名, 比如 docker show ip all=docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'` ) docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 实例ID 或 实例name # 起、停、重启 实例 docker stop | start | restart 实例ID 或 实例name # 删除 实例 docker rm 实例ID 或 实例name # 实例运行中无法删除
- 进入运行中的实例
docker exec -it 实例ID 或 实例name bash
- 容器保存为镜像
docker commit --author "备注信息" 容器ID 镜像名称:标签
- 镜像导出/导入
docker save -o 名称.tar 镜像名称 # 导出 docke load < xxx.tar # 导入
- 文件拷贝
## 拷出 docker cp 容器名|容器ID:文件绝对路径 保存位置 ## 拷进 docker cp 文件路径 容器名|容器ID:保存位置(目录绝对路径)
- docker run 实例报错
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d xxx -j DNAT --to-destinatio
- 一般重启 docker 即可
systemctl restart docker
By anYun 2023.06.28
- 一般重启 docker 即可
- Docker 容器时间不对
- docker run 的时候,指定时区
docker run xxx -e TZ=Asia/Shanghai ## docker compose environment: - TZ=Asia/Shanghai volumes: - /etc/localtime:/etc/localtime:ro
By anYun 2023.09.03
- docker run 的时候,指定时区
- docker pull 报错
pulling image configuration: download failed after attempts=6
- 源有问题,网络异常
## 修改 /etc/docker/daemon.json 文件,增加如下代码 { "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","http://f1361db2.m.daocloud.io","https://mirror.ccs.tencentyun.com"] }
- 重启docker即可
By anYun 2023.12.20
- 源有问题,网络异常
- docker pull 报错
xxx connect: network is unreachable
- 原因:DNS问题导致
## 修改 DNS,书写格式以自己系统为主 vim /etc/resolv.conf nameserver 119.29.29.29 182.254.116.116 或 dns-nameserver 119.29.29.29 182.254.116.116
By anYun 2023.12.21
- 原因:DNS问题导致
- Docker-compose 运行初始化 SQL
- docker 运行时,会默认执行
/docker-entrypoint-initdb.d/init.sql
- 将需要执行的 SQL 语句放到
xxx/init.sql
文件中 - 文件挂载到docker容器:
xxx/init.sql:/docker-entrypoint-initdb.d/init.sql
By anYun 2023.12.21
- docker 运行时,会默认执行
- Docker 实例使用宿主机数据库
- 数据库授权用户
GRANT ALL ON phpipam.* TO 'phpipam'@'Docker实例IP'; FLUSH PRIVILEGES;
- 宿主机防火墙放通
iptables -I INPUT -s Docker实例IP -p tcp --dport 3306 -j ACCEPT
By anYun 2024.05.25
- 数据库授权用户