Кодинг

Оптимизация установки зависимостей 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

Плагин ElastiSearch для PHPStorm

Полезный плагин для отладки запросов к эластику. Его можно сказать для phpstorm и отлаживать запросы Открываем в phpstorm Settings->Plugins, и в репазитории находим плагин Elasticsearch

Img

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;
        }
}

Наверх