Назад

Віртуальний сервер (Virtual Host) на Xampp для Opencart

Віртуальний сервер (Virtual Host) на Xampp для Opencart

Створення Віртуального Cервера (Virtual Host) для сайту Opencart на Xampp та Windows.

Розглянемо кілька варіантів роботи локального сервера Xampp.

Варіант 1. Все нормально працює на localhost.

Після встановлення Xampp папки з сайтами знаходяться в xampp\htdocs.

В нашому прикладі проєкту маємо папку з назвою ocstore3037. В ній знаходитьcя чиста установка ocStore 3.0.3.7.

638e560939bc3081259822.jpg

Якщо вперше запустити сервер Xampp, то наш проєкт буде доступний за адресою: http://localhost/ocstore3037/

Перевіряємо сайт. Якщо Opencart та його компоненти нормально працюють, то далі нічого робити не потрібно.

Варіант 2. З'являються помилки в роботі Opencart на localhost

Перша поширена помилка - не працюють SEO URL. Як це виправити, детально описували раніше.

Другим моментом є те, що деякі модулі, вимагають url сайту без localhost для правильної роботи. Інакше, коли ви відкриваєте сторінку налаштувань модуля, видає 404 помилку (сторінку не знайдено).

Щоб це виправити необхідно розмістити сайт на віртуальному сервері (хості).

Створюємо віртуальний хост (Virtual Host) на Xampp.

1. Відкриваємо файл C:\xampp\apache\conf\extra\httpd-vhosts.conf, йдемо до низу та вставляємо:

<VirtualHost *:80> 
    DocumentRoot "C:/Mega/xampp/htdocs/ocstore3037" 
    ServerName ocstore3037.loc 
</VirtualHost>

DocumentRoot - шлях до папки з сайтом на Xampp,

ocstore3037 - назва папки з сайтом Opencart

ocstore3037.loc - адреса за якою буде доступний сайт. Вона може бути будь якою. Проте, варто уникати адрес, що вже є в інтернеті, оскільки браузер може переходити на них, замість відкриття локального проєкту. Доведеться кожного разу вимикати інтернет, аби запустити проєкт.

2. Йдемо до файлу C:\Windows\System32\drivers\etc\hosts

Передусім, зробимо резервну копію файлу, наприклад, з назвою hosts_bak

Система Windows не завжди дозволяє редагувати файл hosts в поточному розташуванні. Оскільки для цього необхідні права адміністратора. Тому скопіюємо його на Робочий стіл для редагування.

Відкриваємо hosts та бачимо рядок

#   127.0.0.1       localhost

Скопіюємо його та вставимо внизу файлу. Видалимо символ хеш #.

127.0.0.1       localhost

127.0.0.1 - локальна адреса комп'ютера, може бути інша.

Нижче вставимо значення ServerName з попереднього файлу

127.0.0.1       ocstore3037.loc

Збережемо файл. Копіюємо його з заміною в C:\Windows\System32\drivers\etc\

Готово. Ми додали віртуальний хост для ocstore3037.loc. Якщо маєте кілька проєктів, можете додати кілька віртуальних хостів, кількість не обмежена.

Налаштуємо Opencart 3 для роботи на віртуальному хості.

В папці C:/Mega/xampp/htdocs/ocstore3037 відкриваємо файли config.php та admin/config.php

Видаляємо localhost з URL та .loc з шляхів до файлів.

В config.php:

<?php 
// HTTP 
define('HTTP_SERVER', 'http://localhost/ocstore3037.loc/'); 
// HTTPS 
define('HTTPS_SERVER', 'http://localhost/ocstore3037.loc/'); 
// DIR 
define('DIR_APPLICATION', 'C:/Mega/xampp/htdocs/ocstore3037.loc/catalog/'); 
define('DIR_SYSTEM', 'C:/Mega/xampp/htdocs/ocstore3037.loc/system/'); 
define('DIR_IMAGE', 'C:/Mega/xampp/htdocs/ocstore3037.loc/image/');

Замінюємо на:

<?php
// HTTP
define('HTTP_SERVER', 'http://ocstore3037.loc/');
// HTTPS
define('HTTPS_SERVER', 'http://ocstore3037.loc/');
// DIR
define('DIR_APPLICATION', 'C:/Mega/xampp/htdocs/ocstore3037/catalog/');
define('DIR_SYSTEM', 'C:/Mega/xampp/htdocs/ocstore3037/system/');
define('DIR_IMAGE', 'C:/Mega/xampp/htdocs/ocstore3037/image/');

В admin/config.php

<?php
// HTTP
define('HTTP_SERVER', 'http://localhost/ocstore3037.loc/admin/');
define('HTTP_CATALOG', 'http://localhost/ocstore3037.loc/');
// HTTPS
define('HTTPS_SERVER', 'http://localhost/ocstore3037.loc/admin/');
define('HTTPS_CATALOG', 'http://localhost/ocstore3037.loc/');
// DIR
define('DIR_APPLICATION', 'C:/Mega/xampp/htdocs/ocstore3037.loc/admin/');
define('DIR_SYSTEM', 'C:/Mega/xampp/htdocs/ocstore3037.loc/system/');
define('DIR_IMAGE', 'C:/Mega/xampp/htdocs/ocstore3037.loc/image/');
define('DIR_STORAGE', DIR_SYSTEM . 'storage/');
define('DIR_CATALOG', 'C:/Mega/xampp/htdocs/ocstore3037.loc/catalog/');

Замінюємо на:

<?php
// HTTP
define('HTTP_SERVER', 'http://ocstore3037.loc/admin/');
define('HTTP_CATALOG', 'http://ocstore3037.loc/');
// HTTPS
define('HTTPS_SERVER', 'http://ocstore3037.loc/admin/');
define('HTTPS_CATALOG', 'http://ocstore3037.loc/');
// DIR
define('DIR_APPLICATION', 'C:/Mega/xampp/htdocs/ocstore3037/admin/');
define('DIR_SYSTEM', 'C:/Mega/xampp/htdocs/ocstore3037/system/');
define('DIR_IMAGE', 'C:/Mega/xampp/htdocs/ocstore3037/image/');
define('DIR_STORAGE', DIR_SYSTEM . 'storage/');
define('DIR_CATALOG', 'C:/Mega/xampp/htdocs/ocstore3037/catalog/');

Якщо раніше використовували цей спосіб для налаштування SEO URL, то потрібно відредагувати htaccess.

RewriteBase /ocstore3037.loc/

Замінюємо на:

RewriteBase /

Результат

Перезапускаємо Apache та mySQL

638e612c21051963935110.jpg

Готово. Тепер сайт відкривається за новою адресою http://ocstore3037.loc/

638e6197c0dcb892896480.jpg

Потрібна допомога з Вашим сайтом?
Замовте консультацію