Установка ispmanager Docs
Установка ispmanager Docs - это инструкция по сборке проекта из исходного кода и подготовке бэкенда.
Сборка фронтенда
Находясь в корне проекта, последовательно выполните следующие команды.
# npm install
# npm run build
Подготовка бэкенда (без использования Docker)
1. Выполните команду:
# npm run copy-build
2. Установите Composer версии 2.5
Для Debian/Ubuntu установите следующие пакеты.
zlib1g-dev libpng-dev libxml2-dev libonig-dev libcurl4-openssl-dev libedit-dev libxslt-dev git zip unzip
3. Установите следующие модули для PHP.
xml mbstring curl pdo pdo_mysql bcmath
4. Перейдите в директорию html и установите остальные зависимости с помощью команды.
# composer install
Или для использования в рабочем окружении.
# composer install --no-dev
6. Настройте переменные в файле .env в соответствии с потребностями.
Настройте используемый веб-сервер на использование директории public в качестве корневой (директивы root для nginx и <DirectoryRoot> для Apache).
Настройте используемый веб-сервер на использование php8.2 в режиме php-fpm.
Установка с использованием Docker
1. В Docker-контейнере запустите команду.
# npm run copy-build
2. Для сборки бэкенда в docker-контейнер используйте следующий пример Dockerfile.
FROM php:8.2.8-fpm AS main
COPY --from=composer:2.5 /usr/bin/composer /usr/local/bin/composer
RUN apt-get update && apt-get install --no-install-recommends -y \
nginx \
zlib1g-dev libpng-dev libxml2-dev libonig-dev \
libcurl4-openssl-dev libedit-dev libxslt-dev git zip unzip && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \
rm -rf /etc/nginx/conf.d /etc/nginx/sites-enabled /etc/nginx/sites-available /etc/nginx/nginx.conf /etc/nginx/proxy_params /etc/nginx/scgi_params /etc/nginx/uwsgi_params /etc/nginx/snippets \
/var/www/html/index.nginx-debian.html \
/usr/local/etc/php-fpm.d/zz-docker.conf
RUN docker-php-ext-install -j$(nproc) xml mbstring curl pdo pdo_mysql bcmath
EXPOSE 80
FROM main
RUN sed -i 's|/var/www/html|/var/www/html/public|' /etc/nginx/nginx.conf && \
mv /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini && \
sed -i 's/expose_php =.*/expose_php = off/g' /usr/local/etc/php/php.ini && \
sed -i 's/short_open_tag =.*/short_open_tag = on/' /usr/local/etc/php/php.ini
USER www-data:www-data
COPY --chown=www-data:www-data html /var/www/html
composer install # Или composer install --no-dev
USER root:root
COPY entrypoint.sh /usr/local/bin
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
3. Пример файла entrypoint.sh
#!/bin/sh
cd /var/www/html
php artisan migrate --force
RUN php artisan config:cache && php artisan route:cache && php artisan view:cache && php artisan storage:link
exec /usr/local/bin/docker-entrypoint.sh