Кодинг
Оптимизация установки зависимостей PHP с Composer в GitLab CI
На первый взгляд установка зависимостей через Composer кажется простой и без проблем. Однако, если нам приходится устанавливать зависимости десятки раз в день, это может привести к ряду проблем.
Проблемы при частых установках
Каждый раз, когда выполняется команда composer install, Composer скачивает пакеты нужных версий с GitHub. Это может вызвать:
- Ошибки сетевого соединения с GitHub.
- Ограничения на количество запросов (rate limit), если с сервера уже выполнялось много запросов в течение дня.
- Проблемы с сетью или интернет-соединением на сервере.
Деплой ansible и gitlab-ci.yml
Создаем ssh ключ для соединение с удаленным сервере где будет разворачиваться контейнер
# на локалке создаем ключ
ssh-keygen -t ed25519 -f gitlab_deploy_key -C "gitlab-ci-deploy"
ls -l gitlab_deploy_key*
# gitlab_deploy_key ← приватный ключ
# gitlab_deploy_key.pub ← публичный ключs -l gitlab_deploy_key*
Правило для тестировнаия после старта docker compose up
.cursor/rules/tests.mdc
description: Автоматическое тестирование сразу после поднятия контенеров
globs:
- "**/*.php"
alwaysApply: true
---
Когда выполняется команда docker compose up
- Тестировать вход на http, согласно доступнопу порту, ответ 200 должен стать
- Каждый раз после запуска обязательно анализировать логи docker на предмет ошибок
Управление открытием доступа через openingAccessPython
Пакет управления доступом https://github.com/webnitros/openingAccessPython
systemctl start opening-access
systemctl status opening-access
systemctl restart opening-access
Проверка занимаемого места на жестком диске
Получить размер в текущей директории Для linuxs
du -BM -d 1
Автообновление сертификата certbot letsencrypt
Если вы хотите вручную обновить все сертификаты, которые у вас установлены, то необходимо ввести команду:
cd /opt/letsencrypt/letsencrypt-auto-source ./letsencrypt-auto
Написание своего пакета для composer
Описание создания пакета для github и подключения его в свои проекты через composer.
Как пример будет использоваться уже написанный пакет webnitros/readerxlsx для чтения данных из файлов xlsx.
В первую очередь проверяем что composer работает у вас в phpStorm
Создаем файл composer
composer init
Чтение данных из xlsx и xls файлов через пакет webnitros/readerxlsx
Инструкция по установке находить в репазитории
Плагин ElastiSearch для PHPStorm
Полезный плагин для отладки запросов к эластику. Его можно сказать для phpstorm и отлаживать запросы Открываем в phpstorm Settings->Plugins, и в репазитории находим плагин Elasticsearch

FASTPANEL меняем конфигурацию nginx по умолчанию для работы ЧПУ в MODX
Здесь находиться шаблон для добавления своего кода по умолчанию чтобы не нужно было постоянно вносить изменения в ручную
nano /usr/local/fastpanel2/templates/virtualhost/configuration/nginx.fpm.conf.tpl
и находим try_files $uri $uri/ /{{ .VirtualHost.GetFirstIndexPage }}?$args
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=</head> last;
}
location / {
try_files $uri $uri/ /{{ .VirtualHost.GetFirstIndexPage }}?$args;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=</head> last;
}
}