1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/funadmin-funadmin-docker

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 07:34 21f4ce5

FunAdmin docker версия: по умолчанию используется PHP8+mysql8+nginx

Обратите внимание, важная информация повторяется трижды: пожалуйста, замените www/funadmin на последнюю версию.

  1. Удаление ранее установленных компонентов:
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                                docker-latest-logrotate \
                                docker-logrotate \
                                docker-engine
  1. Установка yum-utils:
    sudo yum install -y yum-utils
  2. Настройка стабильного хранилища:
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. Установка последней версии Docker:
sudo yum -y install docker-ce docker-ce-cli containerd.io
  1. Проверка версии после установки:
    docker -v
  2. Включение автозапуска Docker при загрузке системы:
systemctl enable docker
  1. Запуск Docker:
    systemctl start docker
  2. Проверка статуса запуска Docker:
    systemctl status docker
  3. Установка Docker Compose:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
  1. Создание группы пользователей Docker и добавление текущего пользователя в эту группу:
- 1. sudo groupadd docker
- 2. sudo usermod -aG docker ${USER}
- 3. sudo systemctl restart docker
- 4. su root (переключиться на root)
su ${USER} (переключиться обратно на текущего пользователя)
  1. Установка и настройка Docker и Docker Compose:
  • Измените файл .env, чтобы установить новый пароль для базы данных (по умолчанию — root 123456).
  • Перейдите в каталог funadmin-docker и используйте команду docker-compose up для установки.
  • Откройте файл services/nginx/conf.d/funadmin.conf и измените конфигурацию домена для завершения установки.
  • Домен с портом 8080 позволит получить доступ к базе данных.
  • Для доступа к базе данных используйте имя хоста вместо 127.0.0.1.
  1. Использование PHP через командную строку (php-cli):
  • Обратитесь к файлу bash.alias.sample для создания соответствующих функций php cli и скопируйте их в файл ~/.bashrc на вашем хосте.
  • Запустите файл, используя команду source ~/.bashrc.
  • Теперь вы можете использовать команду php для выполнения операций на хосте.
  1. Использование Composer:
    Метод 1: Использование Composer на хост-машине:
  • Определите путь к кэшу композитора. Например, если ваша папка funadmin-docker находится в каталоге ~/funadmin-docker, то путь к кешу будет ~/funadmin-docker/data/composer.
  • Скопируйте соответствующие функции из файла bash.alias.sample в файл ~/.bashrc на хост-компьютере.
  • Выполните команду source ~/.bashrc для активации изменений.
  • Вы сможете использовать composer в любом каталоге на хост-системе.
    Пример использования:
cd ~/funadmin-docker/www/
composer create-project funadmin/funadmin project --no-dev
  • При первом использовании composer создаст файл config.json в папке ~/funadmin-docker/data/composer, где можно указать на локальный репозиторий, например:
{
    "config": {},
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://mirrors.aliyun.com/composer/"
        }
    }
}

Метод 2: Использование Composer внутри контейнера:

  • Войдите в контейнер и выполните команду composer.
    Пример для контейнера PHP7:
docker exec -it php /bin/sh
cd /www/localhost
composer update
  1. Управление командами:
  • Запуск и создание команд:
    Для управления службами добавьте имя сервера после команды, например:
$ docker-compose up                         # создать и запустить все контейнеры
$ docker-compose up -d                      # создать и запустить контейнеры в фоновом режиме
$ docker-compose up nginx php mysql         # создать и запустить несколько контейнеров nginx, php и mysql
$ docker-compose up -d nginx php  mysql     # создать и запустить контейнеры nginx, php и mysql в фоновом режиме

$ docker-compose start php                  # запустить службу
$ docker-compose stop php                   # остановить службу
$ docker-compose restart php                # перезапустить службу
$ docker-compose build php                  # построить или перестроить службу

$ docker-compose rm php                     # удалить и остановить контейнер php
$ docker-compose down                       # остановить и удалить контейнеры, сети, образы и тома
  • Добавление быстрых команд:
    Чтобы упростить процесс входа в контейнеры, создайте псевдонимы для часто используемых команд.
    Сначала проверьте доступные контейнеры с помощью команды docker ps или docker ps -a.
    Имена контейнеров, такие как nginx, php, php56 и mysql, могут использоваться в качестве псевдонимов. Затем откройте файлы ~/.bashrc или ~/.zshrc и добавьте:
alias dnginx='docker exec -it nginx /bin/sh'
alias dphp='docker exec -it php /bin/sh'
alias dphp56='docker exec -it php56 /bin/sh'
alias dphp54='docker exec -it php54 /bin/sh'
alias dmysql='docker exec -it mysql /bin/bash'
alias dredis='docker exec -it redis /bin/sh'

После этого вход в контейнеры станет гораздо быстрее. Например, чтобы войти в контейнер PHP:

$ dphp

Просмотр сети Docker

ifconfig docker0

Используется для заполнения адреса хоста в extra_hosts контейнера.

5. Использование Log

Расположение файлов журнала зависит от значений конфигурации в conf.

5.1 Nginx журнал

Nginx журнал используется чаще всего, поэтому он хранится отдельно в корневом каталоге log.

Каталог log сопоставляется с каталогом /var/log/nginx в контейнере Nginx, поэтому в конфигурации Nginx необходимо указать местоположение вывода журнала, например:

error_log  /var/log/nginx/nginx.localhost.error.log  warn;

Журнал PHP-FPM

В большинстве случаев журналы PHP-FPM выводятся в журналы Nginx, так что дополнительная настройка не требуется.

Кроме того, рекомендуется включить ошибки в PHP напрямую:

error_reporting(E_ALL);
ini_set('error_reporting', 'on');
ini_set('display_errors', 'on');

Если это действительно необходимо, можно выполнить следующие шаги (в контейнере):

  1. Войдите в контейнер и создайте файл журнала, а также измените права доступа:
    $ docker exec -it php /bin/sh
    $ mkdir /var/log/php
    $ cd /var/log/php
    $ touch php-fpm.error.log
    $ chmod a+w php-fpm.error.log
  2. На хосте откройте и измените конфигурацию PHP-FPM conf/php-fpm.conf, найдите следующую строку, удалите комментарий и измените значение на:
    php_admin_value[error_log] = /var/log/php/php-fpm.error.log
  3. Перезапустите контейнер PHP-FPM.

MySQL журнал

Поскольку MySQL в контейнере запускается пользователем mysql, он не может самостоятельно создавать файлы журналов в /var/log. Поэтому мы размещаем журналы MySQL в том же каталоге, что и данные, то есть в каталоге проекта mysql, который соответствует каталогу /var/lib/mysql/ в контейнере.

slow-query-log-file     = /var/lib/mysql/mysql.slow.log
log-error               = /var/lib/mysql/mysql.error.log

Это конфигурация в файле mysql.conf.

. Управление базой данных

По умолчанию в проекте docker-compose.yml отключены phpMyAdmin для управления MySQL онлайн и phpRedisAdmin для управления Redis онлайн. Вы можете изменить или удалить их по мере необходимости.

phpMyAdmin

Контейнер phpMyAdmin сопоставлен с портом хоста 8080, поэтому адрес доступа к phpMyAdmin на хосте:

http://localhost:8080

Информация о подключении MySQL:

  • host: (сеть контейнера MySQL в этом проекте)
  • port: 3306
  • username: (введите вручную в интерфейсе phpmyadmin)
  • password: (введите вручную в интерфейсе phpmyadmin)

phpRedisAdmin

Контейнер phpRedisAdmin сопоставлен с портом хоста 8081, поэтому доступ к phpRedisAdmin на хосте осуществляется по адресу:

http://localhost:8081

Информация о подключении Redis:

  • host: (сетевой адрес контейнера Redis)
  • port: 6379

. Безопасное использование в производственной среде

Чтобы использовать его в производственной среде, выполните следующие действия:

  1. Отключите XDebug в php.ini.
  2. Усильте политику безопасности доступа к базе данных MySQL.
  3. Усильте стратегию безопасности доступа к Redis.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/funadmin-funadmin-docker.git
git@api.gitlife.ru:oschina-mirror/funadmin-funadmin-docker.git
oschina-mirror
funadmin-funadmin-docker
funadmin-funadmin-docker
main