Простой менеджер проектов.
- PHP 7.3
- MySQL 8
- Apache с поддержкой
.htaccessи включенным модулемmod_rewrite
short_open_tag = On
sql_mode=''
Требуемые расширения, которые могут быть выключены по умолчанию:
TODO: Установка с помощью Docker
- Скопируйте все, кроме
.dev,_private,ci,README.mdиCHANGELOG.mdна сервер. - Переименуйте
lpm-config.inc.template.phpвlpm-config.inc.phpи заполните его. - Импортируйте БД из папки
.dev/db/dump.sql(используется префикс таблиц по умолчанию). - Убедитесь, что php имеет права на запись в папку
lpm-files(рекурсивно). - Если нужно писать логи, создайте пустую папку
_privateи дайте php права на запись в неё (логи по умолчанию пишутся в/_private/logs/). Не забудьте запретить к ней доступ снаружи. - Обязательно задайте URL сайта заканчивающийся на
/через глобальную константуSITE_URL
Важно! Не забудьте запретить доступ снаружи к следующим директориям:
_private;.dev(используется при установке через Docker).
Приватная директория с файлами для настройки БД.
dump.sqlсодержит текущий актуальный дамп базы (используется для новой установки).changes-log.sqlсодержит историю изменений БД.
Проблема с тем, что ответ на запрос приходит клиенту в неверном формате, который тот не может прочитать.
Самые распространенные причины:
- BOM. Во время разработки или, чаще всего, при сохранении конфига, его сохранили с заголовком (кодировка UTF8 with BOM). Этот заголовок добавляется к любому выводу (т.к. присутствует в файле конфигурации, который подключается всегда) и ломает формат - клиент не может распаковать данные, т.к. в нем присутствуют лишние символы. Решение: надо просто пересохранить файл(ы) без BOM.
- Двойное сжатие. Flash2PHP самостоятельно сжимает ответ перед отправкой (при включенной настройке
F2P_USE_COMPRESS, в проекте включена), если при этом где-нибудь на уровне сервера еще включено сжатие для вывода, то данные будут сжаты дважды и клиент не сможет их корректно распарсить. Решение: нужно отключить сжатие на уровне сервера.
Для форматирования кода используется php-cs-fixer с включенными правилами @PSR1, @PSR2.
Для VS Code можно установить плагин vscode-php-cs-fixer, но в настройках нужно обязательно указать свой php-cs-fixer и правила:
"vscode-php-cs-fixer.toolPath": "/usr/local/bin/php-cs-fixer",
"vscode-php-cs-fixer.rules": "@PSR1,@PSR2",Скачать нужный php-cs-fixer можно здесь.
Для управления зависимостями используется Composer.
Установите composer.phar в директорию lpm-libs или скачайте его вручную и положите в эту директорию. См. инструкцию.
Зависимости проекта указаны в файле lpm-libs/composer.json.
Для установки зависимостей нужно выполнить команду из директории lpm-libs:
php composer.phar installЕсли у вас не установлен PHP на машине, и вы используете Docker, то можно выполнить команду в контейнере:
docker exec -w /var/www/lpm-libs/ lightning-pm php composer.phar installВ качестве библиотеки стилей используется Bootstrap 5.
Для переопределения глобальных Bootstrap стилей нужно использовать файл /.lpm-themes/default/css/bootstrap-reset.css.
Для использования компонентов библиотеки см. документацию к Bootstrap.
Docker окружение размещается в /.dev/docker-env. См. README.
В поставку включен Adminer (устанавливается вместе с другим окружением с помощью Docker).
Доступен по адресу приложения с указанием порта ADMINER_PORT, заданного в .dev/docker-env/.env.
См. AGENTS.md — инструкции для ИИ‑ассистента и общие рабочие правила в этом репозитории.