Установка (обновление) скрипта LibArea (HLEB1)

Статья необходима (и для документации), как установить / обновить LibArea. Будем считать это болванкой. В ней есть ссылка на новый релиз (собранный) для тестирования.

На GitHub в ближайшее время будут вноситься только изменения связанные с локализацией, надо добавить французский, немецкий и китайские языки. В остальном, будут исправлены только ошибки, которые возможно мы найдем в этом релизе.

Ниже представлен вариант для тестирования, архив собран. Вы можете скачать скрипт по адресу:

https://libarea.ru/dev/2/libarea-0.7.6.zip

Для тестирования (установки) LibArea

Минимальные требования: PHP 8.2, MySQL 8+ или > MariaDB 10.2.2

См. Возможно стоит поднять минимально MYSQL до 8.0?

Первое, необходимо залить файлы на сервер, далее настроить папку public.

Настройте на сервере Публичный каталог (public).

Каталог public содержит index.php файл, который является точкой входа для всех запросов, поступающих в ваше приложение, и настраивает автозагрузку. В этом каталоге также хранятся ваши активы, такие как изображения, JavaScript и CSS.

Статья: Почему index.php находится в папке public, а не в общей папке?

Документация: https://libarea.com/ru/web-server-configuration/

Проверить правильность настройки достаточно просто: через браузер посмотрите, файл https://ваш_сайт/robots.txt виден?

Далее:

Создайте базу данных и выполните миграцию файла: scripts/dev.sql

Отредактируйте файлы: config/database.php, config/general.php и config/meta.php

Войдите в свою учетную запись, используя учетные данные администратора:

ss@sdf.ru / qwer14qwer14

Или участника:

test@test.ru / test@test.ru

Готово!

Обновление:

Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных!

Замене подлежат директории: config, app, modules, resources, routes и vendor.

Обратите внимание, что вам необходимо будут вернуть ваши настройки в файлы: config/database.php.php и config/meta.php

База данных в этой версии затронута не была.

P.S.

В случае ошибки 500, временно включите отладку: В файле config/common.php, изменив в этой строке false на true:

'debug' => get_env('APP_DEBUG', false),

Должно получиться:

'debug' => get_env('APP_DEBUG', true),

Логи находятся по адресу: /storage/logs/

Если будут вопросы, пишите тут, с личку или в чате. Постараюсь помочь, если будут трудности с установкой или обновлением.

27 Ответов

  1. Спасибо, погоняю на этой недели. Информацию по Composer следует временно убрать, чтобы исключить путаницу.

    Уже нашел:

    • Подправить цвет в keylighter пояснительного текста (очень темный).
    • Структура папок в документации старая.

    Вопросы появятся по мере тестирования, напишу и дополню этот пост.

    1. Да, про Composer инфа убрана, эта статья если из архива устанавливать. Остальное заменю, спасибо +

  1. При переходе на страницах ответов или комментариев на следующую страницу, ошибка 404

    1. Спасибо, с пагинацией проблемы были и на других страницах. Подправил это.

  1. Заменил архив (см. ссылку в первом сообщение). Исправил все известные ошибки, плюс добавил локализацию (китайский язык). Обновление, как написано выше. Завтра планирую релиз и на GitHub. Пока есть время посмотреть.

  1. Товарищи, подскажите, пожалуйста! Я распаковал архив в папку www/имя-сайта. Залил БД MySQL. Прописал настройки в config/dbase.config.php и config/meta.php

    Но при переходе на сайт, вижу это

    Что я не так делаю?

    1. А вы настроили доступ через браузер к папке public? Вы можете временно удалить файл index.php от туда и залить свой файл index.html, например. И добиться, чтобы браузер отображал его. Так можно убедиться, что директория стала публичной.

      Посмотрите эту статью: Почему index.php находится в папке public, а не в общей папке?

  1. Поставил систему на хост, вроде всё завелось, однако к примеру при переходе https://site.ru/public/index.php выдает следующее
    ошибка 404

    1. Вы должны настроить сервер, изменить путь, чтобы сайт был доступен так:

      https://site.ru/index.php т.е. так: https://site.ru

      сервер должен смотреть в папку public.

      Посмотрите статью про папку public.

      Хостинг обычно помогает, добавить к путям в настройках эту папку.

  1. Нужна помощь. Не могу понять, куда и как вписывать базу данных. Вот у меня есть:

    сервер:localhost
    имя пользователя:imya
    пароль:password

    Куда конкретно их нужно вписать в файле dbase.config.php?

    Я установил libarea на виртуальный хостинг таким образом:

    git clone https://github.com/LibArea/libarea.git .
    ln -s public public_html

    Создал в панели хостинга БД, зашел в нее через phpmyadmin, импортировал dev.sql

    А дальше не могу разобраться…

    1. Там несколько секций, в первую:

      "mysql.myname" => [
              "mysql:host=localhost",
              "port=3306",
              "dbname=???",
              "charset=utf8mb4",
              "user" => "imya",
              "pass" => "password"
          ],

      Только где знаки вопроса ??? надо заменить их на имя базы данных. Локально она создается в phpmyadmin.

  1. Никак не получается запустить, PHP 8.0.3 (пробовал еще 7.4.15) в CGI режиме, Mariadb 10.3.28, при заходе сайт.ру/public/index.php 404 ошибка, если просто заходить на сайт.ру/ то Forbidden
    You don't have permission to access / on this server.
    Если делаю файл например сайт.ру/public/test.html то html работает, не подскажите в чем может быть проблема?

    1. У вас на сервере «не настроена» папка public. Корректность проверить очень легко. В этой папке лежит не только index.php (запускной), но и файл favicon-120.ico.

      Давайте исключим вообще скрипт, а проверим настройку папки public (доступ). В браузере набираем: сайт.ру/favicon-120.ico и видим этот файл. Если нет, то статья про эту папку ниже.

      Если у вас хостинг, то можно сообщить про эту папку в поддержку, они знаю и должны помочь.

      Или см. про папку public

  1. Установил. Вроде всё работает, но с каталогом сайтов проблема. Не могу в категории зайти, ни с панели администратора, ни с фронтеда: ошибка 500… в логах:

    [09:28:08 22.04.2023 Europe/Moscow+03] Web:ERROR Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'recursive
                n (facet_id, facet_slug, facet_title, lvl) as (
              ' at line 1 in /home/***/htdocs/www/vendor/phphleb/framework/Main/MainDB.php:37
    
    Stack trace:
    #0 /home/***/www/vendor/phphleb/framework/Main/MainDB.php(37): PDO->prepare('with recursive\n...')
    #1 /home/***/www/vendor/phphleb/framework/Main/DB.php(100): Hleb\Main\MainDB::run('with recursive\n...', Array, NULL)

    Что-то с синтаксисом в базе данных…

    1. Минимальные требования: MySQL 8+ or > MariaDB 10.2.2. Посмотрите статью, там запросы хитрые делать пришлось (в хлебных крошках).

      См. https://libarea.ru/post/739/vozmozno-stoit-podnyat-minimalno-mysql-do-80

  1. Ребят, всем привет. Подскажите, а почему когда авторизуешься, заходишь в раздел посты или вопросы, то пишет что, «К сожалению, содержимого пока нет».

    1. Привет. Вы не подписаны на Темы. Подпишитесь на любую Тему и посты этой Темы появятся. А мне надо посмотреть, может быть надпись поменять для этого случая, чтобы понятно было, что сделать.

      После авторизации участнику в Ленте показывают то, на что он подписан.

  1. Здравствуйте! а я столкнулся с такой проблемой: подскажите, пожалуйста

    Фатальная ошибка: Uncaught Error: Class 'UserData' не найден в /var/***/www/sait.ru/routes/main.php:4 
    Трассировка стека: #0 /var/ ***/sait.ru/vendor/phphleb/framework/bootstrap.php(83): 
    require_once() 
    #1 /var/***/sait.ru/vendor/phphleb/framework/Constructor/Cache/CacheRoutes.php(70): hleb_require('/var/www/s23531...') 
    #2 /var/***/sait.ru/vendor/phphleb/framework/Constructor/Cache/CacheRoutes.php(38): Hleb\Constructor\Cache\CacheRoutes->createRoutes() 
    #3 /var/***/sait.ru/vendor/phphleb/framework/Main/ProjectLoader.php(27): Hleb\Constructor\Cache\CacheRoutes->load() 
    #4 /var/***/sait.ru/vendor/phphleb/framework/bootstrap.php(310): Hleb\Main\ProjectLoader::start () 
    #5 /var/*** в/var/www/s235314/data/www/sait.ru/routes/main.php в строке 4
    1. Приветствую. Есть большая вероятность того, что часть файлов у вас просто не залилaсь на хостинг. Для теста скинул вам ссылку на архив (в личку).

  1. Привет, установил на ubuntu, перенёс файлы, настроил на public через конфиг apache2.conf. Загружается favicon, а страница полностью пустая. Что нужно сделать? Подскажите пожалуйста.
    Компосер ставил, потом перенес туда папку вендор, если это важно. Всё равно белый экран

    1. Попробуй на папку storage выставить права 777

    1. Привет. Отписал вам в личку. Пустая страница, это ошибки. Вопрос стандартный: что говорят логи? Они в папке storage/logs.

  1. А у меня файл иконки отображается https://nacip.ru/public/favicon-48.ico но сайт всё равно не работает. Forbidden
    You don't have permission to access / on this server.

    Система нужная, интерфейс простой, но трудно устанавливать, чтобы она заработала. Не хочется с иностранными разбираться, а тут есть русский язык.

    1. Вы не совсем правильно поняли. Иконка должна у вас отображаться вот тут: https://nacip.ru/favicon-48.ico — вы папку public туда доставили, что показывает неверную настройку домашней директории.

      Не имеет смысл двигаться дальше, если вы не заставите иконку быть видимой по ссылке: https://nacip.ru/favicon-48.ico

      См. Почему index.php находится в папке public, а не в общей папке?

      Сервер надо настроить или файлом .htaccess исправить ситуацию (но это я не рекомендую).

      https://libarea.ru/post/1197/nastroyka-libarea-na-hostinge-apache

      1. я просто развернул архив и всё. исправлять файлом .htaccess не могу, пока не понимаю да и сломать окончательно не хочется. Вот и пытаюсь понять

        1. Смотрите. В этой статье написано:

          Настройте на сервере Публичный каталог (public). (и ссылка)

          Это необходимо сделать. А сломать, ну сломаете новый зальете. Сложно сломать то, что не работает.

          1. там еще через композер папку vendor получить, а в htaccess:

            RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
            RewriteRule ^ %1 [L,NE,R=302]
            RewriteRule ^(.*)$ public/index.php?$1 [L,QSA]

            Нужно смотреть что за хостинг