Движок публично используется на проекте SVA.su! и на хостинге ApexNodes.xyz
OS | Version | Support |
---|---|---|
Ubuntu \ Debian | 1.1.0 | ✔ |
CentOS | 1.1.0 | ❔ |
Windows | 1.1.0 | ❌ |
apt install -y git software-properties-common && LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && add-apt-repository -y ppa:redislabs/redis && apt update && apt install -y php8.2-{cli,curl,fpm,mysql} nginx redis-server mysql-{server,client} && apt purge apache2 && curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
apt install -y git software-properties-common
# Добавление новых репозиторий с пакетами
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
add-apt-repository -y ppa:redislabs/redis
# Обновление пакетов
apt update
# Установка php8.2, nginx, redis и mysql
apt install -y php8.2-{cli,curl,fpm,mysql} nginx redis-server mysql-{server,client}
# Удаление apache2 если он установился с комплектом от php.
apt purge apache2
# Установка composer.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
mkdir -p /var/www && cd /var/www && git clone https://github.com/sva-su/sakurato && cd /var/www/sakurato && composer install
В этой категории будет: Настройка прав, Настройка MySQL, Настройка NGINX, Настройка конфигураций движка.
chmod -R 755 /var/www/sakurato
Важный этап! Запомните данные которые вы укажите, такие как название базы данных, имя пользователя и его пароль. Советуется записать в блокнот.
-- Создаем базу данных --
CREATE DATABASE database_name;
-- Входим в базу данных --
use database_name;
-- Создаем таблицы --
CREATE TABLE config (
down int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (down)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO config (down) VALUES ('0');
UPDATE config SET down = '0' WHERE config.down = 1;
-- Создание пользователя sakurato с разрешением подключатся только с локальной сети с своим паролем --
CREATE USER 'sakurato'@'127.0.0.1' IDENTIFIED BY 'Password';
GRANT ALL PRIVILEGES ON database_name.* TO 'sakurato'@'127.0.0.1' WITH GRANT OPTION;
mysql -u root -p
CREATE DATABASE database_name;
use database_name;
CREATE TABLE config (down int NOT NULL AUTO_INCREMENT,PRIMARY KEY (down)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO config (down) VALUES ('0');
UPDATE config SET down = '0' WHERE config.down = 1;
-- Создание пользователя sakurato с разрешением подключатся только с локальной сети с своим паролем --
CREATE USER 'sakurato'@'127.0.0.1' IDENTIFIED BY 'Password';
GRANT ALL PRIVILEGES ON database_name.* TO 'sakurato'@'127.0.0.1' WITH GRANT OPTION;
exit
rm /etc/nginx/sites-enabled/default
touch /etc/nginx/sites-enabled/sakurato.conf
nano /etc/nginx/sites-enabled/sakurato.conf
server {
listen 80;
server_name <DOMAIN>;
if ($host = <DOMAIN>) {
return 301 https://$host$request_uri;
}
}
server {
server_name <DOMAIN>;
root /var/www/sakurato/pages/index.php;
index index.php;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/<DOMAIN>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<DOMAIN>/privkey.pem;
# Если вы создавали сертефикат через certbot, можете раскомментировать.
# include /etc/letsencrypt/options-ssl-nginx.conf;
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
}
server {
# server_name <DOMAIN>;
root /var/www/sakurato/pages/index.php;
index index.php;
listen 80;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
}
nginx -s reload
<?php
return [
'driver' => 'mysql',
'host' => 'Айпи MYSQL',
'user' => 'Имя пользователя',
'password' => 'Пароль пользователя',
'db' => [
'client' => 'Имя базы данных'
],
'redis' => [ // Это нужно для сессий, не удаляем
'host' => '127.0.0.1',
'port' => '6379',
'password' => ''
],
];
<?php
return [
'domain' => [
'main' => 'ДоменноеИмя.ру',
'main2' => '127.0.0.1'
],
'protocol' => 'https://',
'protocol2' => 'http://'
];
<?php
return [
'root' => "/var/www/sakurato/",
];
<?php
return [
'driver' => 'phpmailer', // Драйвер отправки почты
'encrypt' => 'ssl', // Шифрование при отправке почты. Есть методы: ssl, tls, none
'char-set' => 'UTF-8', // Кодировка текста в почте.
'from' => 'mail@mail.ru', // Почта в заголовке
'host' => 'smtp.mail.ru', // SMTP сервер
'user' => 'mail@mail.ru', // Имя пользователя(почта)
'password' => 'Password', // Пароль
'port' => '465', // Порт SMTP сервер
];
<?php
return [
'timezone' => 'Europe/Moscow' // https://www.php.net/manual/ru/timezones.php
];