{"id":16675037,"url":"https://github.com/funadmin/funadmin-docker","last_synced_at":"2026-04-24T15:31:42.819Z","repository":{"id":136313639,"uuid":"509636098","full_name":"funadmin/funadmin-docker","owner":"funadmin","description":"funadmin-docker docker 版本funadmin","archived":false,"fork":false,"pushed_at":"2022-08-04T03:13:36.000Z","size":27946,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-28T02:50:20.928Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funadmin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"yeszao","custom":"https://paypal.me/mgzao"}},"created_at":"2022-07-02T02:16:30.000Z","updated_at":"2022-07-07T04:00:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"da40e1f5-e8c9-494d-8ee8-4ec7aa00faa2","html_url":"https://github.com/funadmin/funadmin-docker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/funadmin/funadmin-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funadmin%2Ffunadmin-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funadmin%2Ffunadmin-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funadmin%2Ffunadmin-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funadmin%2Ffunadmin-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funadmin","download_url":"https://codeload.github.com/funadmin/funadmin-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funadmin%2Ffunadmin-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32228951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T12:45:16.536Z","updated_at":"2026-04-24T15:31:42.814Z","avatar_url":"https://github.com/funadmin.png","language":"PHP","funding_links":["https://github.com/sponsors/yeszao","https://paypal.me/mgzao"],"categories":[],"sub_categories":[],"readme":"FunAdmin docker版本 默认使用 PHP8+mysql8+nginx\n\n###  安装docker  和docker-compose \n### 修改 .env 数据库密码 默认为root  123456 \n###  进入 funadmin-docker 目录 并使用docker-compose up 安装  \n###  进入services/nginx/conf.d/funadmin.conf 修改域名配置 即可安装 \n### 域名+8080 即可访问数据库 \n###  访问域名进行安装 主机名字请填写mysql 切记不要填写127.0.0.1\n\n### Host中使用php命令行（php-cli）\n\n1. 参考[bash.alias.sample](bash.alias.sample)示例文件，将对应 php cli 函数拷贝到主机的 `~/.bashrc`文件。\n2. 让文件起效：\n    ```bash\n    source ~/.bashrc\n    ```\n3. 然后就可以在主机中执行php命令了：\n    ```bash\n    ~ php -v\n    PHP 7.2.13 (cli) (built: Dec 21 2018 02:22:47) ( NTS )\n    Copyright (c) 1997-2018 The PHP Group\n    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies\n        with Zend OPcache v7.2.13, Copyright (c) 1999-2018, by Zend Technologies\n        with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans\n    ```\n### 使用composer\n**方法1：主机中使用composer命令**\n1. 确定composer缓存的路径。比如，我的funadmin-docker下载在`~/funadmin-docker`目录，那composer的缓存路径就是`~/funadmin-docker/data/composer`。\n2. 参考[bash.alias.sample](bash.alias.sample)示例文件，将对应 php composer 函数拷贝到主机的 `~/.bashrc`文件。\n    \u003e 这里需要注意的是，示例文件中的`~/funadmin-docker/data/composer`目录需是第一步确定的目录。\n3. 让文件起效：\n    ```bash\n    source ~/.bashrc\n    ```\n4. 在主机的任何目录下就能用composer了：\n    ```bash\n    cd ~/funadmin-docker/www/\n    composer create-project funadmin/funadmin project --no-dev\n    ```\n5. （可选）第一次使用 composer 会在 `~/funadmin-docker/data/composer` 目录下生成一个**config.json**文件，可以在这个文件中指定国内仓库，例如：\n    ```json\n    {\n        \"config\": {},\n        \"repositories\": {\n            \"packagist\": {\n                \"type\": \"composer\",\n                \"url\": \"https://mirrors.aliyun.com/composer/\"\n            }\n        }\n    }\n\n    ```\n**方法二：容器内使用composer命令**\n\n还有另外一种方式，就是进入容器，再执行`composer`命令，以PHP7容器为例：\n```bash\ndocker exec -it php /bin/sh\ncd /www/localhost\ncomposer update\n```\n    \n## 4.管理命令\n### 4.1 服务器启动和构建命令\n如需管理服务，请在命令后面加上服务器名称，例如：\n```bash\n$ docker-compose up                         # 创建并且启动所有容器\n$ docker-compose up -d                      # 创建并且后台运行方式启动所有容器\n$ docker-compose up nginx php mysql         # 创建并且启动nginx、php、mysql的多个容器\n$ docker-compose up -d nginx php  mysql     # 创建并且已后台运行的方式启动nginx、php、mysql容器\n\n\n$ docker-compose start php                  # 启动服务\n$ docker-compose stop php                   # 停止服务\n$ docker-compose restart php                # 重启服务\n$ docker-compose build php                  # 构建或者重新构建服务\n\n$ docker-compose rm php                     # 删除并且停止php容器\n$ docker-compose down                       # 停止并删除容器，网络，图像和挂载卷\n```\n\n###  添加快捷命令\n在开发的时候，我们可能经常使用`docker exec -it`进入到容器中，把常用的做成命令别名是个省事的方法。\n\n首先，在主机中查看可用的容器：\n```bash\n$ docker ps           # 查看所有运行中的容器\n$ docker ps -a        # 所有容器\n```\n输出的`NAMES`那一列就是容器的名称，如果使用默认配置，那么名称就是`nginx`、`php`、`php56`、`mysql`等。\n\n然后，打开`~/.bashrc`或者`~/.zshrc`文件，加上：\n```bash\nalias dnginx='docker exec -it nginx /bin/sh'\nalias dphp='docker exec -it php /bin/sh'\nalias dphp56='docker exec -it php56 /bin/sh'\nalias dphp54='docker exec -it php54 /bin/sh'\nalias dmysql='docker exec -it mysql /bin/bash'\nalias dredis='docker exec -it redis /bin/sh'\n```\n下次进入容器就非常快捷了，如进入php容器：\n```bash\n$ dphp\n```\n\n###  查看docker网络\n```sh\nifconfig docker0\n```\n用于填写`extra_hosts`容器访问宿主机的`hosts`地址\n\n## 5.使用Log\n\nLog文件生成的位置依赖于conf下各log配置的值。\n\n### 5.1 Nginx日志\nNginx日志是我们用得最多的日志，所以我们单独放在根目录`log`下。\n\n`log`会目录映射Nginx容器的`/var/log/nginx`目录，所以在Nginx配置文件中，需要输出log的位置，我们需要配置到`/var/log/nginx`目录，如：\n```\nerror_log  /var/log/nginx/nginx.localhost.error.log  warn;\n```\n\n\n### PHP-FPM日志\n大部分情况下，PHP-FPM的日志都会输出到Nginx的日志中，所以不需要额外配置。\n\n另外，建议直接在PHP中打开错误日志：\n```php\nerror_reporting(E_ALL);\nini_set('error_reporting', 'on');\nini_set('display_errors', 'on');\n```\n\n如果确实需要，可按一下步骤开启（在容器中）。\n\n1. 进入容器，创建日志文件并修改权限：\n    ```bash\n    $ docker exec -it php /bin/sh\n    $ mkdir /var/log/php\n    $ cd /var/log/php\n    $ touch php-fpm.error.log\n    $ chmod a+w php-fpm.error.log\n    ```\n2. 主机上打开并修改PHP-FPM的配置文件`conf/php-fpm.conf`，找到如下一行，删除注释，并改值为：\n    ```\n    php_admin_value[error_log] = /var/log/php/php-fpm.error.log\n    ```\n3. 重启PHP-FPM容器。\n\n###  MySQL日志\n因为MySQL容器中的MySQL使用的是`mysql`用户启动，它无法自行在`/var/log`下的增加日志文件。所以，我们把MySQL的日志放在与data一样的目录，即项目的`mysql`目录下，对应容器中的`/var/lib/mysql/`目录。\n```bash\nslow-query-log-file     = /var/lib/mysql/mysql.slow.log\nlog-error               = /var/lib/mysql/mysql.error.log\n```\n以上是mysql.conf中的日志文件的配置。\n\n\n\n## .数据库管理\n本项目默认在`docker-compose.yml`中不开启了用于MySQL在线管理的*phpMyAdmin*，以及用于redis在线管理的*phpRedisAdmin*，可以根据需要修改或删除。\n\n###  phpMyAdmin\nphpMyAdmin容器映射到主机的端口地址是：`8080`，所以主机上访问phpMyAdmin的地址是：\n```\nhttp://localhost:8080\n```\n\nMySQL连接信息：\n- host：(本项目的MySQL容器网络)\n- port：`3306`\n- username：（手动在phpmyadmin界面输入）\n- password：（手动在phpmyadmin界面输入）\n\n###  phpRedisAdmin\nphpRedisAdmin容器映射到主机的端口地址是：`8081`，所以主机上访问phpMyAdmin的地址是：\n```\nhttp://localhost:8081\n```\n\nRedis连接信息如下：\n- host: (本项目的Redis容器网络)\n- port: `6379`\n\n\n## .在正式环境中安全使用\n要在正式环境中使用，请：\n1. 在php.ini中关闭XDebug调试\n2. 增强MySQL数据库访问的安全策略\n3. 增强redis访问的安全策略\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunadmin%2Ffunadmin-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunadmin%2Ffunadmin-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunadmin%2Ffunadmin-docker/lists"}