跳转至

开源软件


概念

  • 源代码(source code):源代码任何人都可以审查、修改和增强
  • 开源协议:Apache License、BSD、GPL、MPL、EPL 开源协议
  • 开源社区:GitHub、Gitee、OSCHINA

MKdocs 静态文档


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

  • 一款开源的IP管理软件,官网GitHub
  • Web 服务,支持跨平台
  • 丰富的 API 支持,方便二开和集成
  • 支持 snmp 协议,支持 IPv6 管理
  • 支持多级目录
  • 支持申请审批
  • 友好的可视化页面
  • 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 以后都需要手动安装
  • 有台web服务器,Nginx、Apache、Tomcat 都是可以
  • 文档参考官网半盏流年
# 下载 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 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 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


  • 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 实例使用宿主机数据库
    • 数据库授权用户
      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


  1. 本文版权归IT小圈所有,受中华人民共和国相关法律保护 

  2. 任何组织和个人未经允许不得私自复制传播以及商业性分享