Перейти к содержанию

Установка

Минимальные системные требования к серверу

  • 1 CPU, 515 Mb RAM, 1Gb HDD
  • PHP 7.4 или больше
  • PHP расширения zip, mbstring, curl, gd, intl, PDO, pdo_mysql (или pdo_pgsql для PostgreSQL), xml, fpm
  • MySQL / MariaDb или PostgreSQL база данных

Установка компонентов на Linux (Debian / Ubuntu)

Выполните консольные команды для обновления системы

$ sudo apt update
$ sudo apt upgrade

Выполните установку php и требуемых расширений

$ sudo apt install php8.0 php8.0-{zip,mbstring,curl,gd,intl,mysql,xml,fpm}

Выполните установку nginx или apache2

Установка nginx

$ sudo apt install nginx

Установка apache2

$ sudo apt install apache2

Выполните установку Mysql или MariaDb.

Установка Mysql для Debian 11, Debian 10, Ubuntu 22.04

Установка MariaDb

$ sudo apt install mariadb-server

Установка Core2

1) Скачайте архив c последней версией на github.com

2) В директории DOCUMENT_ROOT вашего проекта создайте папку с названием core2 и разместите в нее содержимое архива

3) Создайте еще 2 папки cache и logs за пределами DOCUMENT_ROOT

Например чтобы получилось вот такая структура

 .
 ├─ /var/www/project.com/
 │  ├─ htdocs/
 │  │  └─ core2/
 │  │
 │  ├─ cache/  
 │  └─ logs/  

4) Дайте права доступа на чтение и запись в папки cache и logs для пользователя www-data

$ chmod 755 /var/www/project.com/cache/
$ chmod 755 /var/www/project.com/logs/

$ chown -R www-data:www-data /var/www/project.com/cache/
$ chown -R www-data:www-data /var/www/project.com/logs/

5) В DOCUMENT_ROOT создайте файл index.php со следующем содержимым

try {
    require_once("core2/inc/classes/Error.php");
    require_once("core2/inc/classes/Init.php");

    $init = new Init();
    $init->checkAuth();

    echo $init->dispatch();
} catch (Exception $e) {
    \Core2\Error::catchException($e);
}

6) Создайте новую базу данных с любым названием на вашем MySQL / MariaDb сервере. В данном примере она будет названа project_com.

CREATE SCHEMA project_com COLLATE utf8mb4_general_ci;

7) Скачайте и выполните этот sql скрипт, чтобы в вашей базе данных добавились необходимые таблицы. Для этого можно воспользоваться командной строкой.

$ mysql -u your_user_name -p project_com < db.sql

!!! note "Важно" Скрипт db.sql создает только структуру таблиц и не добавляет пользователя по умолчанию. После импорта создайте администратора вручную, например:

```sql
INSERT INTO `core_users` (`u_login`, `u_pass`, `visible`, `is_admin_sw`, `date_added`)
VALUES ('admin', 'ad7123ebca969de21e49c12a7d69ce25', 'Y', 'Y', NOW());
```

8) В директории рядом с файлом index.php создайте файл конфигурации conf.ini и поместите в него следующий текст. Замените значения для доступа к вашей базе данных, project.com замените на адрес вашего будущего проекта.

[production]
database.adapter          = Pdo_Mysql
database.params.host      = localhost
database.params.port      = 3306
database.params.dbname    = "project_com"
database.params.username  = "your_user_name"
database.params.password  = "your_user_pass"

[project.com : production]
system.host       = project.com
system.theme.name = material
cache             = /var/www/project.com/cache
log.on            = true
log.path          = /var/www/project.com/logs/error.log
log.system.file   = /var/www/project.com/logs/access.log
log.system.writer = file

Пример для PostgreSQL:

[production]
database.adapter          = Pdo_Pgsql
database.params.host      = localhost
database.params.port      = 5432
database.params.dbname    = "project_com"
database.params.username  = "your_user_name"
database.params.password  = "your_user_pass"
database.schema           = public

9) Скачайте последнюю версию Composer с сайта getcomposer.org или по прямой ссылке

10) Скопируйте скаченный файл composer.phar в папку core2

11) Откройте консоль и выполните команды для установки зависимых пакетов

$ cd /var/www/project.com/htdocs/core2
$ php composer.phar install

!!! tip "Рекомендация" Для production лучше использовать composer install (по composer.lock) вместо composer update, чтобы избежать неожиданных обновлений зависимостей.

Настройка веб сервера

Для запуска приложения необходимо настроить http сервер.

Рекомендуемые настройки Apache

1) В папке /etc/apache2/sites-available/ необходимо добавить файл project.com.conf. Замените project.com на адрес вашего проекта.

2) Поместите в созданный файл следующее содержимое. Замените /var/www/project.com, project.com и php8.0 на ваши актуальные значения.

ServerName project.com
DocumentRoot "/var/www/project.com/htdocs"
ErrorLog /var/www/project.com/logs/error_apache.log

<Directory "/var/www/project.com/htdocs">
    Options +Indexes +FollowSymLinks
    DirectoryIndex index.php
    Order allow,deny
    Allow from all
    AllowOverride All
    Require all granted
</Directory>

<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost"
</FilesMatch>

3) Выполните консольную команды для активации настройки

$ sudo a2ensite project.com
$ sudo systemctl restart apache2

Рекомендуемые настройки Nginx

1) В папке /etc/nginx/sites-available/ необходимо добавить файл project.com.conf. Замените project.com на адрес вашего проекта.

2) Поместите в созданный файл следующее содержимое. Замените /var/www/project.com, project.com и php8.0 на ваши актуальные значения.

server {
    listen 80;
    listen [::]:80;
    server_name project.com;
    root /var/www/project.com/htdocs;
    error_log /var/www/project.com/logs/errors_nginx.log warn;

    index index.php index.html;
    client_max_body_size 100M;

    location / {
        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_buffers 8 128k;
        fastcgi_buffer_size 256k;
        fastcgi_buffering off;
        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* (\.ini|\.log|\.conf)$ {
        deny all;
    }
}

3) Выполните консольные команды для активации настройки. Замените project.com на адрес вашего проекта.

$ sudo ln -s /etc/nginx/sites-available/project.com.conf /etc/nginx/sites-enabled/project.com.conf
$ sudo systemctl reload nginx

Проверка установки

Если это доменное имя (project_com) не привязано к вашему серверу, то для проверки его работы вы можете добавить домен на своем компьютере в хостах.

Для Windows

1) Открыть файл C:\Windows\System32\drivers\etc\hosts

2) Добавить указанную строку в конец этого файла. Замените 192.168.10.10 на актуальный ip адрес вашего сервера.

192.168.10.10 project.com

Для Linux

1) Открыть файл etc/hosts

2) Добавить указанную строку в конец этого файла. Замените 192.168.10.10 на актуальный ip адрес вашего сервера.

192.168.10.10 project.com


После установки приложение будет доступно по следующему URL:

http://project.com

В случае успеха вы должны будите увидеть страницу логина

Войдите в приложение используя логин admin и пароль admin (если вы создали пользователя SQL-запросом выше). После входа обязательно смените пароль на другой.