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
Ссылка на ссылку
- Ссылка на ссылку
- Ссылка на ссылку
Лицензия
МТИ