Рубрики
Uncategorized

Среда разработки для установки ключей LNMP Docker + Платформа для ненавязчивого мониторинга PHP xhgui (Оптимизация производительности Системы, Обнаружение ошибок)

Автор оригинала: David Wong.

snmp = Докер + Nginx + MySQL + PHP + Redis + Mongodb

плюс = xhgui + xhprof + в сторону

snmp-плюс = Среда разработки для установки в один клик для Php + Платформа неинтрузивного мониторинга PHP (Оптимизация Производительности Системы, Обнаружение Артефакта Ошибки)

Функции проекта SNMP PLUS добавлены на основе проекта DNP yeszao:

  • Расширение PHP xhprof – Инструмент для отслеживания и анализа производительности PHP, разработанный Facebook
  • Расширение PHP Tideways – ветвь xhprof для поддержки PHP 7
  • PHP mongodb расширение
  • Служба MongoDB
  • Mongo Express – Система Управления услугами MongoDB
  • Графическая система для анализа данных xhgui-XHProf

Рекомендуемое чтение

  • Установка в один клик Конечная среда разработки отладки для snmp плюс Php
  • Подробная установка и использование среды установки snmp-plus с одной кнопкой
  • Краткое введение в Супер-полные шаблоны проектирования (45 видов)
  • Дизайн-шаблоны-для-людей Китайская версия
  • Ресурсы MongoDB, Библиотеки, Инструменты, Список выбора приложений Китайская версия
  • Какие существуют малоизвестные, но интересные сайты?
  • Записка об Осадном льве
  • Каждый день собирайте отличные проекты на Github
  • Несколько интересных народных сказок
  • Супер Полезный Браузер Google, Sublime Text, Phpstorm, Коллекция подключаемых модулей Oil Monkey

структура каталогов

-.github Github configuration directory
-conf configuration file directory
- Configuration directory of conf.d Nginx user sites
- Mysql.cnf MySQL User Profile
- default configuration file for nginx.conf Nginx
- php-fpm.conf PHP-FPM configuration file
- php.ini PHP configuration file
- redis.conf Redis configuration file
- Document catalogue
- Extensions PHP Extended Source Pack
- Log directory
- Mongo MongoDB Data Catalogue
- Mysql MySQL Data Catalogue
- www PHP Code Directory
- Dockerfile PHP Mirror Construction File
- docker-compose-sample.yml Docker service configuration sample file
- env. smaple environment configuration sample file
- travis-build.sh Travis CI build file

Экологические требования

  • Докер
  • Докер-сочинение
  • Мерзавец

Быстрое использование

$ git clone https://github.com/guanguans/dnmp-plus.git --recursive
$ cd dnmp-plus
$ cp env.sample .env
$ cp docker-compose-sample.yml docker-compose.yml
$ docker-compose up -d

Корневой веб-каталог по умолчанию www/localhost/ Доступ к браузерам http://localhost

Основное применение

Lnmp-plus поставляется с nginx, php 72, php56, mysql , mongo, redis, phpmyadmin, phpredisadmin, зеркальными сервисами mongo-express

# Create and start containers
Doker-compose up service 1 service 2...
# Create and start all containers
$ docker-compose up

# Start the container in a way that creates and runs in the background
Doker-compose up-d Service 1 Service 2...

# Start up service
Doker-compose start service 1 service 2...

# Stop service
Doker-compose stop service 1 service 2...

# Restart service
Doker-compose restart service 1 service 2...

# Build or rebuild services
Doker-compose build service 1 service 2...

# Enter the command line container
Docker-compose exec service Bash

# Delete and stop containers
Doker-compose RM Service 1 Service 2...

# Stop and delete containers, networks, images and mount volumes
Doker-compose down service 1 service 2...

Для xhgui вы можете обратиться к https://github.com/guanguans/…

устанавливать

$ cd www/xhgui-branch
$ composer install

Измените конфигурацию ветви xhgui filewww/xhgui-branch/config/config.default.php

 true, // to true, easy to debug
    'mode'         => 'development',
    ...
    'extension'=>'tideways', // to support PHP 7 tideways
    ...
    'save.handler' => 'mongodb',
    'db.host'=>'mongodb://mongo:27017', //127.0.0.1 instead of Mongo
    ...
);

Увеличение файла hosts

127.0.0.1             xhgui.test

Доступ к браузерам http://xhgui.test

Измените файл конфигурации nginx для анализа проекта на конфигурацию локального хоста по умолчанию conf/conf.d/localhost.conf в качестве примера

...
location ~ \.php$ {
    fastcgi_pass   php72:9000;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  PATH_INFO $fastcgi_path_info;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    # Run the PHP script we specified before executing the main program
    fastcgi_param  PHP_VALUE "auto_prepend_file=/var/www/html/xhgui-branch/external/header.php"; 
}
...

Перезагрузите nginx

$ docker-compose restart nginx

Браузер получает доступ http://localhost а потом http://xhgui.test, в котором уже есть содержание. Внимательно ознакомьтесь с отслеживанием и анализом эффективности проекта.

PHP и расширения

Переключение версии PHP, используемой Nginx

Создать по умолчанию одновременно PHP5.6 и PHP7.2 Две версии PHP контейнера, переключить PHP нужно только для изменения соответствующей конфигурации сайта Nginx Параметры fastcgi_pass , например, пример http://localhost пользователи PHP 7.2, конфигурация Nginx:

fastcgi_pass   php72:9000;

Чтобы перейти на PHP 5.6, измените его на:

fastcgi_pass   php56:9000;

Перезапустите Nginx, чтобы он вступил в силу

$ docker-compose restart nginx

Установка расширений PHP

Многие функции PHP реализуются с помощью расширений, и установка расширений является трудоемким процессом. Итак, в дополнение к встроенным расширениям PHP, в env.пример По умолчанию мы устанавливаем в файл только несколько расширений. Если вы хотите установить дополнительные расширения, пожалуйста, откройте свой .конверт Измените следующую конфигурацию PHP.

PHP72_EXTENSIONS=pdo_mysql,opcache,redis,xdebug,mongodb,tideways
PHP56_EXTENSIONS=opcache,redis,xdebug,mongodb,xhprof

Затем перестройте образ PHP

docker-compose build php72
docker-compose up -d

Использовать Журнал

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

Журнал Nginx

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

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

Журнал MySQL

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

Настройка файлов журналов в mysql.conf:

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

Управление базами данных

  • Адрес phpMyAdmin по умолчанию: http://localhost:8080
  • Адрес phpRedisAdmin по умолчанию: http://localhost:8081
  • Адрес Монго Экспресс по умолчанию: http://localhost:8082

Ссылка на ссылку

  • Ссылка на ссылку
  • Ссылка на ссылку

Лицензия

МТИ