Перенос J-ИРБИС 2.0 версии 2021.1 (PHP 5.2) на хостинг (Делюсь опытом)
Пользователь:
zagzag (IP-адрес скрыт)
Дата: 15, December, 2023 10:48
Поставили такую задачу:
В целях повышения безопасности, перенести JIRBIS с локального веб-сервера на хостинг.
Был создан тестовый поддомен и настроен по аналогии с локальным (Apache 2.2 + PHP 5.2). В дальнейшем, попробуем перейти на более новую версию.
Также добавили сертификат Let's Encrypt для работы через HTTPS
Перенесена база данных Joomla
Скопированы файлы
Проброшен порт 6666 с внешнего IP внутрь к серверу ИРБИС
Желательно создать пользователя ИРБИС с ограниченными правами, достаточными только для чтения электронного каталога.
Собственно ниже перечислены файлы, которые пришлось изменить
/public_html/jirbis2/administrator/components/com_irbis/irbis.php
$base_path='/home/o/olcbsru/test_ol_cbs_ru/public_html/jirbis2/com_irbis/'; // полный путь в папке с компонентом com_irbis
require_once(JI_PATH_INCLUDES_LOCAL.'/table_editor.php'); // исправить слеши на прямые
require_once(JI_PATH_INCLUDES_LOCAL.'/ji_table_editor.php'); // исправить слеши на прямые
/public_html/jirbis2/components/com_irbis/includes/broad_search_unit.php
if (!$this->self_net_path) $this->self_net_path = 'https://test.ol-cbs.ru/' . u::get_net_path();
/public_html/jirbis2/components/com_irbis/includes/iserver64.php
private function sfilename(){
//return u::get_temp(true) .'/' .$GLOBALS['_1062064198_'][201]($GLOBALS['_1062064198_'][202]($this->host .$this->port_number .$this->login .$this->password .$this->m_cARM)) .'_' .$this->process_number .'.sav';
return '/home/o/olcbsru/test_ol_cbs_ru/public_html/jirbis2/tmp/' .$GLOBALS['_1062064198_'][201]($GLOBALS['_1062064198_'][202]($this->host .$this->port_number .$this->login .$this->password .$this->m_cARM)) .'_' .$this->process_number .'.sav';
}
/public_html/jirbis2/components/com_irbis/includes/u.php
public static function get_temp($static=false){
if (!$static){
$sp='/home/o/olcbsru/test_ol_cbs_ru/public_html/jirbis2/tmp/'; //ini_get('session.save_path');
if (is_writable( $sp ) && strpos($sp,'.')===false)
return self::sla($sp);
}
/public_html/jirbis2/components/com_irbis/jirbis_configuration.php
'irb64_arm' => 'R',
'irb64_host' => '...', // внешний IP ирбис сервера, с проброшенным 6666 портом
'irb64_port' => '6666',
'irb64_user' => 'jirbis',
'irb64_password' => '...',
'mysql_host' => 'localhost', // БД на хостинге
'mysql_user' => '...', // пользователь БД
'mysql_password' => '...',
'mysql_database' => '...',
'covers_download_enable' => 0, // обязательно, т.к. не разобрались с подгрузкой обложек из гугла
'covers_grid_req' => '(<.>DP=20231201<.>[...]<.>DP=20231231<.>)*((<.>U=84$<.>))', // первичный запрос для главного экрана "новые поступления за декабрь 2023"
'ji_path_htdocs_local' => '/home/o/olcbsru/test_ol_cbs_ru/public_html',
/public_html/jirbis2/components/com_irbis/jirbis_constants.php
define('JI_FILE_DEFAULT_COVER_GRID_IMAGE_NAME','no_cover.jpg'); // no_cover_grid.png
define('JI_PATH_AUTO_REQUESTS_LOCALHOST','https://test.ol-cbs.ru'.((isset($_SERVER['SERVER_PORT']) and $_SERVER['SERVER_PORT']!=80 ) ? ':'.$_SERVER['SERVER_PORT'] : ''));
define('JI_PATH_CMS_DISTR_LOCAL','/test_ol_cbs_ru/public_html/jirbis2');
define('JI_PATH_UPDATE_HOST_NET','https://icorp.elnit.org/jirbis2/'.JI_DIR_COMPONENT);
/public_html/jirbis2/templates/jtouchscreen/config/default.config.json
http: заменяем на https:
/public_html/jirbis2/templates/jtouchscreen/lib/framework/helper.api.php
public function URLtemplate() {
return JURI::base(true) . "/templates/" . $this->API->template;
}
/public_html/jirbis2/.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ [url]https://[/url]%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
/public_html/jirbis2/configuration.php
public $host = 'localhost'; // mysql server
public $user = '...'; // mysql user
public $password = '...'; // mysql password
public $db = '...'; // mysql base
public $log_path = '/home/o/olcbsru/test_ol_cbs_ru/public_html/jirbis2/logs';
public $tmp_path = '/home/o/olcbsru/test_ol_cbs_ru/public_html/jirbis2/tmp';
Обратите внимание: пути нужно указывать абсолютные (/home/o/olcbsru/test_ol_cbs_ru/). Хостинг может вам их не отображать, смотрите через phpinfo();
Полное тестирование функций не проводилось.
Предложения и критика приветствуются.
Редактировано 3 раз. Последний раз 16.12.2023 14:35 пользователем Кирилл Соколинский (СЗТУ).