1CMS文档

docker部署

使用docker运行1cms

docker run --name 1cms_site -p 6666:80 -d 1cms/1cms

启动后访问本地6666端口即可访问网站,镜像使用apache+php7.4,已经安装zip gd扩展

安装时请使用sqlite数据库,如需使用mysql数据库,需自行搭建.

程序文件在容器内/var/www/html目录中,如需映射宿主机目录,则使用docker run -v /home/www/1cms:/var/www/html --name 1cms_site -p 6666:80 -d 1cms/1cms

docker-compose部署

//启动1cms
docker compose -p 1cms_site up -d

//停止
docker compose -p 1cms_site down

访问本地10099端口即可安装1cms,如需修改端口则需要修改docker-compose.yml文件内的端口

如需使用mysql数据库,可在安装时连接mysql,数据库地址填写:mysql,数据库名:1cms,用户名:root,密码:1cms,数据库文件保存在网站根目录 /database/mysql 内

如需修改nginx配置,如安装网站证书等,可以修改根目录nginx.conf文件,并开放对应端口

如根目录内未包含docker-compose.yml或nginx.conf文件,可将以下内容手动保存至对应文件

docker-compose.yml


services:
  nginx:
    image: nginx:alpine
    container_name: nginx
    ports:
      - "10099:80"
    volumes:
      - ./:/var/www/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
    networks:
      - 1cms

  php:
    image: 1cms/1cms:fpm74
    container_name: fpm74
    volumes:
      - ./:/var/www/html
    working_dir: /var/www/html
    command: sh -c "chown -R www-data:www-data /var/www/html && php-fpm"
    networks:
      - 1cms

  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 1cms
      MYSQL_DATABASE: 1cms
    networks:
      - 1cms
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - ./database/mysql:/var/lib/mysql

networks:
  1cms:

nginx.conf


server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.html index.php;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    location ~ /\.ht {
        deny all;
    }
    location ^~ /database/ {
        deny all;
    }
    location ~* ^/[^\./]+?\.(yml|conf|db)$ {
        deny all;
    }
}