Встановлення: додаткові примітки
Ця сторінка доповнює основну інструкцію Встановлення технічними деталями, які знадобляться на нестандартних серверах або під час ручного налаштування. Якщо ви встановлюєте магазин на звичайний хостинг і інсталятор не показує жодних попереджень, ці кроки можна пропустити.
Права на файли й теки (Linux/Unix)#
Вебсервер має право читати всі файли магазину, а записувати — у такі файли й теки:
chmod 0755 system/storage/cache/
chmod 0755 system/storage/download/
chmod 0755 system/storage/logs/
chmod 0755 system/storage/modification/
chmod 0755 system/storage/session/
chmod 0755 system/storage/upload/
chmod 0755 system/storage/vendor/
chmod 0755 image/
chmod 0755 image/cache/
chmod 0755 image/catalog/
chmod 0644 config.php
chmod 0644 admin/config.php
Ці права підходять, якщо PHP працює від імені власника файлів (типово для хостингу з PHP-FPM або suPHP). Якщо інсталятор усе одно повідомляє, що тека недоступна для запису, з'ясуйте в хостинг-провайдера, від якого користувача працює PHP. Права 0777 використовуйте лише як тимчасовий крайній захід і після встановлення поверніть безпечніші значення.
Файли config.php та admin/config.php мають бути доступні для запису під час встановлення (інсталятор записує в них параметри підключення) і під час оновлення. Після цього права на запис для них можна зняти (chmod 0444).
Встановлення на Windows#
- Завантажте вміст теки
upload/у теку сайту на сервері, наприкладC:\inetpub\wwwroot\store\. - Перейменуйте
config-dist.phpнаconfig.phpіadmin/config-dist.phpнаadmin/config.php. - Переконайтеся, що обліковий запис, від якого працює вебсервер (для IIS — зазвичай
IIS_IUSRS), має права на читання й запис дляconfig.php,admin/config.php, текimage/іsystem/storage/. - Відкрийте адресу магазину в браузері й пройдіть кроки інсталятора.
- Після успішного встановлення видаліть теку
install/.
Локальне встановлення#
Для розробки й тестування ocStore можна встановити на власний комп'ютер за допомогою готових збірок «вебсервер + PHP + MySQL», наприклад:
Виберіть у збірці PHP 8.1 або 8.2 (бібліотеки з комплекту ocStore 3.0.4.1 вимагають PHP 8.1+), розпакуйте вміст upload/ у теку сайту (наприклад, htdocs/ocstore/) і відкрийте http://localhost/ocstore/.
База даних#
- Створіть для магазину окремого користувача бази даних з правами лише на базу магазину.
- Не використовуйте обліковий запис
root(або іншого адміністратора сервера баз даних) для підключення магазину.
Файл php.ini#
У корені архіву ocStore є файл php.ini з рекомендованими значеннями (session.auto_start = Off, default_charset = UTF-8, upload_max_filesize, memory_limit тощо). Чи врахує його сервер, залежить від хостингу:
- на частині хостингів (PHP як CGI/FastCGI) параметри з
php.iniу теці сайту застосовуються автоматично; - на хостингах з PHP-FPM власні параметри зазвичай задаються у файлі
.user.ini— перейменуйтеphp.iniна.user.iniабо перенесіть потрібні рядки; - у багатьох панелях (cPanel, Plesk, CloudPanel тощо) параметри PHP змінюються в налаштуваннях сайту в самій панелі.
Перевірити, які значення реально діють, можна в хостинг-панелі або за допомогою тимчасового файлу з викликом phpinfo() у корені сайту. Після перевірки обов'язково видаліть цей файл.
Nginx#
Файл .htaccess використовує лише Apache (і сумісні з ним LiteSpeed/OpenLiteSpeed). На Nginx правила потрібно додати в конфігурацію сайту (блок server). Нижче наведено мінімальний приклад, що відтворює основні правила з .htaccess.txt ocStore 3.0.4.1:
# Заборонити доступ до службових файлів
location ~* \.(twig|tpl|ini|log)$ {
deny all;
}
location ^~ /system/storage/ {
deny all;
}
# Карта сайту
rewrite ^/sitemap.xml$ /index.php?route=extension/feed/google_sitemap last;
# SEO URL
location / {
try_files $uri $uri/ @opencart;
}
location @opencart {
rewrite ^/(.+?)/?$ /index.php?_route_=$1 last;
}
Регулярний вираз ^/(.+?)/?$ відкидає кінцеву косу риску з адреси. Якщо передавати її в _route_, модуль SeoPro не розпізнає адресу, і сторінки з кінцевою / відкриватимуть головну.
Рядки з передачею запиту на PHP (location ~ \.php$ { … fastcgi_pass … }) залежать від вашого сервера й тут не наводяться. Після змін перевірте конфігурацію (nginx -t) і перезавантажте Nginx. Як увімкнути SEO URL в адмінці — див. SEO URL.
Підготовка до запуску#
Перш ніж відкривати магазин для покупців:
- Вимкніть виведення помилок на екран. У ocStore 3.0.4.1 у файлі
system/config/default.phpза замовчуванням уже встановлено$_['error_display'] = false;. Якщо ви вмикали його на час налагодження, повернітьfalse: повідомлення PHP на сторінках розкривають шляхи до файлів і заважають роботі AJAX-запитів. Помилки при цьому й надалі записуватимуться в журнал (Система → Обслуговування → Журнал помилок). - Перенесіть теку
storageза межі кореня сайту. Разом із нею переїде й текаvendor/з бібліотеками Composer — вони не повинні бути доступні з браузера. - Видаліть теку
install/. - Перевірте, що SEO URL працюють, а адреса
https://ваш-магазин/system/storage/недоступна.