service:phpsysinfo
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:phpsysinfo [30.07.2024 10:08] – [phpsysinfo] viacheslav | service:phpsysinfo [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== phpsysinfo ====== | ||
+ | https:// | ||
+ | Из контейнера получать информацию о хосте можно двумя способами: | ||
+ | - Монтирование корневой ФС в контейнер на чтение и задание параметра '' | ||
+ | - Настройкой SSH в phpsysinfo.ini. В этом случае нужно ставить в контейнер phpsysinfo-php пакеты openssh и sshpass. | ||
+ | ===== Установка ===== | ||
+ | 2 контейнера - фронтенд nginx и php-fpm. Обновления накатываются гитом каждый раз при запуске контейнера phpsysinfo-php. | ||
+ | |||
+ | <file yaml docker-compose.yml> | ||
+ | phpsysinfo: | ||
+ | build: ./ | ||
+ | container_name: | ||
+ | restart: unless-stopped | ||
+ | depends_on: | ||
+ | - phpsysinfo-php | ||
+ | volumes: | ||
+ | - ./ | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | # labels: | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | |||
+ | phpsysinfo-php: | ||
+ | build: ./ | ||
+ | container_name: | ||
+ | restart: unless-stopped | ||
+ | volumes: | ||
+ | # - /:/ | ||
+ | - ./ | ||
+ | </ | ||
+ | |||
+ | ==== phpsysinfo ==== | ||
+ | |||
+ | <file bash Dockerfile> | ||
+ | FROM nginx: | ||
+ | WORKDIR / | ||
+ | EXPOSE 80 | ||
+ | COPY ./nginx/ /etc/nginx | ||
+ | </ | ||
+ | |||
+ | <file ini nginx/ | ||
+ | server { | ||
+ | # server_name bva.dyndns.info; | ||
+ | listen 80; | ||
+ | #listen 443 ssl; | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | root / | ||
+ | index index.php; | ||
+ | |||
+ | # Prevent access to phpsysinfo.ini | ||
+ | location ~ \.ini$ { | ||
+ | deny all; | ||
+ | return 404; | ||
+ | } | ||
+ | |||
+ | location ~ \.php$ { | ||
+ | try_files $uri $uri/ /index.php; | ||
+ | include fastcgi_params; | ||
+ | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
+ | fastcgi_param REDIRECT_STATUS 200; | ||
+ | fastcgi_pass phpsysinfo-php: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== phpsysinfo-php ==== | ||
+ | |||
+ | <file bash Dockerfile> | ||
+ | FROM alpine:3.19 | ||
+ | |||
+ | WORKDIR / | ||
+ | COPY --chmod=550 start.sh / | ||
+ | |||
+ | RUN apk add \ | ||
+ | sudo \ | ||
+ | php83 \ | ||
+ | php83-fpm \ | ||
+ | php83-dom \ | ||
+ | php83-xml \ | ||
+ | php83-simplexml \ | ||
+ | php83-mbstring \ | ||
+ | php83-xsl \ | ||
+ | pciutils \ | ||
+ | openssh \ | ||
+ | sshpass \ | ||
+ | git && \ | ||
+ | deluser www-data ; \ | ||
+ | delgroup www-data ; \ | ||
+ | addgroup -g 82 -S www-data && \ | ||
+ | adduser -D -H -u 82 -s /bin/bash www-data -G www-data && \ | ||
+ | sed -i '/user =/c user = www-data' | ||
+ | sed -i '/ | ||
+ | sed -i '/ | ||
+ | ln -sf / | ||
+ | |||
+ | CMD / | ||
+ | </ | ||
+ | |||
+ | Файл запуска. Здесь установка идёт в подкаталог mon, соответственно, | ||
+ | <file bash start.sh> | ||
+ | cd / | ||
+ | # fatal: detected dubious ownership in repository at '/ | ||
+ | git config --global --add safe.directory / | ||
+ | # Update/ | ||
+ | git -C mon pull || git clone https:// | ||
+ | # Comment out SSH warning string (if you use SSH) | ||
+ | sed ' | ||
+ | |||
+ | chown -R www-data: | ||
+ | php-fpm83 -F | ||
+ | </ | ||
+ | |||
+ | ==== Работа через SSH ==== | ||
+ | На мониторящемся хосте: | ||
+ | |||
+ | <code bash> | ||
+ | # Создать пользователя phpsysinfo и задать ему пароль. Без домашнего каталога работать не будет. | ||
+ | sudo useradd -m -s /bin/bash phpsysinfo | ||
+ | sudo passwd phpsysinfo | ||
+ | |||
+ | # Позволить пользователю phpsysinfo выполнять команды через sudo без запроса пароля (здесь: | ||
+ | sudo visudo -f / | ||
+ | # Вставить туда | ||
+ | Cmnd_Alias PHPSYSINFO=/ | ||
+ | phpsysinfo ALL = NOPASSWD: PHPSYSINFO | ||
+ | </ | ||
+ | |||
+ | В phpsysinfo.ini прописать нужные команды для sudo: '' |