Содержание
Настройка NGINX в режиме PHP-FPM для работы OpenCart — OpenCart DIY — Бери и делай
Веб сервер nginx позволяет работать в разных режимах, как с использованием интерпретатора php, так и без.
Для работы OpenCart лучше выбирать оптимальный режим работы php-fpm. Многих данный режим пугает тем, что в данном случае
файл htaccess напрочь игнорируется и все необходимые настройки нужно вносить в конфиг nginx.
Но в этом нет ничего сверх сложного. Конфигурационный файл — это обычный текстовый файл на сервере, который
подчиняется определённым правилам. И по данному поводу можно найти много готовых описаний и инструкций.
Данная статья не претендует на уникальность, а просто представляет краткую выжимку по настройкам, учитывая особенности
работы с движком OpenCart и сборками на его основе.
Для удобства будут приводится примеры настройки с использованием панели ISPmanager.
Основные настройки будут касаться секции location, и зависимость описания от используемой панели будет минимальной.
Для начала переведём nginx в режим работы php-fpm. Для этого в панели сделаем следующие настройки разделе WWW-домены для
нужного сайта:
1. Выбираем в списке нужный сайт, если их несколько, и жмём кнопку «Изменить».
2. Находим настройки PHP и настраиваем следующим образом:
Обратите внимание, что версия php у вас может отличаться. При необходимости, можно эту версию изменить на нужную, но этот вопрос выходит за рамки данной статьи.
После сохранения настроек будет работать почти всё, что и раньше. Если в настройках OpenCart отключены ЧПУ ссылки, то всё будет работать, как
и работало до переключения режима работы.
Теперь можно приступать к непосредственной настройке самого конфигурационного файла nginx для текущего сайта.
Для этого в списке www доменов находим нужный нам и нажимаем справа на иконку с тремя точками. ((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
listen 8.8.8.8:80;
}
server {
server_name test.ru www.test.ru;
ssl_certificate «/var/www/httpd-cert/myoc/test.ru.crt»;
ssl_certificate_key «/var/www/httpd-cert/myoc/test.ru.key»;
ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security «max-age=31536000;»;
ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
charset off;
index index.php index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/test.ru/*.conf;
access_log /var/www/httpd-logs/test.ru.access.log;
error_log /var/www/httpd-logs/test.ru.error.log notice;
ssi on;
set $root_path /var/www/myoc/data/www/test.ru;
root $root_path;
listen 8.8.8.8:443 ssl http2;
location / {
location ~ [^/]\. /(index|admin/index|install/index)\.php {
try_files /does_not_exists @php;
}
В скобках через разделитель «|» указываем все php скрипты, которые можно выполнять. После завершения установки можно будет сократить это список
до такого: (index|admin/index)
ВНИМАНИЕ!!! Очень важный момент! После того, как убрали вызов интерпретатора php для всех файлов, кроме указанных, при попытке запроса любого другого php файла он будет отдан как обычный текстовый файл.
И при запросе https://test.ru/config.php любой желающий сможет получить содержимое вашего конфигурационного файла, где содержится доступ к БД.
Поэтому нам обязательно нужно запретить доступ для всех остальных файлов с расширением php. Ну и заодно к другим типам файлов, которые не
стоит отдавать по запросу извне. Сделать это можно простым правилом:
location ~* \.(php|log|tpl|txt|twig|xml|ini)$ { deny all; }
В скобках через разделитель «|» указываем все расширения файлов, которые мы хотим запретить. .+\.(jpg|jpeg|gif|png|svg|webp|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
expires 365d;
}
}
Этих настроек достаточно для корректной работы движка OpenCart. И при этом данная конфигурация является безопасной с точки зрения выполнения
несанкционированных скриптов php через web окружение.
После всех настроек обязательно проверьте правильность работы, сделав запросы по указанному чек-листу (test.ru замените на адрес вашего сайта):
https://test.ru/config.php https://test.ru/admin/config.php https://test.ru/admin/1.php https://test.ru/admin/1.txt https://test.ru/admin/1.log https://test.ru/admin/1.xml https://test.ru/system/modification.xml
Для всех этих ссылок вы должны получить ошибку «403 Forbidden», вне зависимости от того, есть файл по указанному пути на сервере, или нет.
Также проверяем белый список:
https://test.ru/robots.txt https://test.ru/sitemap.xml
Эти файлы не должны вызывать ошибок и вы должны корректно получать их содержимое.
Дополнительно стоит проверить все ваши дополнительные сайтмапы или фиды, если вы их добавляли.
Ещё раз повторюсь, что данная настройка является базовой, с небольшими правилами для улучшения безопасности.
Но даже уже при такой настройке вы в среднем получите выигрыш 100-200ms для параметра TTFB, по сравнению с остальными режимами работы.
Конфиг NGINX для OpenCart — Opencart Pirate
AlvaEdison
Пользователь
#1
Добрый день.
Выкладываю свой вариант конфига nginx, для запуска OpenCart.
Тестирование проводил на третьей версии OpenCart, на других версиях не пробовал, тем не менее на других версиях OpenCart должен работать.
Предполагаю, что конфиг не идеален, так как я в этом не крайне силён.
Если найдутся на данном форуме люди, которые помогут его допилить/переписать — будет здорово, это будет полезно сообществу нашего форма
Конфиг выкладываю ниже, а также дополнительно прикрепляю его вложением.
В конфиге включёны:
- HTTP2.
- Rewrite.
- GZIP на 6 уровень
- Принудительная переадресация на HTTPS
- HSTS
- Включён журнал запросов и ошибок
- Работает ЧПУ
В конфиге необходимо заменить информацию:
- Домен «yourdomain.test» заменяем на свой.
- IP адрес сервера «1. 1.1.1″ заменяем на свой.
- Проверить, чтобы директива nginx совпадала с той, что в конфиге «include /etc/nginx/…»
- Проверить, чтобы совпадала директива, где находится папка сайта «/var/www/yourusername/data/www;»
- Проверить, чтобы корректно был указан путь к *.sock файлам «/var/www/php-fpm/yourusername.sock;»
- Почту заменить на свою «[email protected]»
Если выше я написал что-то не корректно, или не в полной мере — прошу не кидать в меня тапками, а дополнить и поделиться своим опытом,
так как я «новичок-первопроходец» в данном вопросе, как и большинство из нас здесь присутствующих я полагаю.
Конфиг я использовал в ISP панели, если это будет кому-то интересно.
Всем спасибо.
Код:
server { server_name yourdomain.test *.yourdomain.test www.yourdomain.test; charset UTF-8; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*. ((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } gzip on; gzip_comp_level 6; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; listen 1.1.1.1:80; } server { server_name yourdomain.test *.yourdomain.test www.yourdomain.test; ssl_certificate "/var/www/httpd-cert/yourusername/yourdomain.test_le1.crtca"; ssl_certificate_key "/var/www/httpd-cert/yourusername/yourdomain.test_le1.key"; ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; add_header Strict-Transport-Security "max-age=31536000;"; ssl_dhparam /etc/ssl/certs/dhparam4096.pem; charset UTF-8; index index.php; disable_symlinks if_not_owner from=$root_path; include /etc/nginx/vhosts-includes/*.conf; include /etc/nginx/vhosts-resources/yourdomain. ((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; } gzip on; gzip_comp_level 6; gzip_disable "msie6"; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; listen 1.1.1.1:443 ssl http2; }
nginx.zip
1.3 KB
Просмотры: 5Просмотр архива
Последнее редактирование:
Grubby
Пользователь
#2
Сколько тут всего у меня очень простой, может кому пригодится, чем проще тем лучше. (.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php7.3-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/global/fastcgi-params.conf;
}
}
# Redirect www to non-www
server {
listen 80;
listen [::]:80;
server_name www.mydomain.com;
return 301 https://mydomain.com$request_uri;
}
Все работает отлично и стабильно. Для получения сертификатов автоматом или elb использую traefik.
Grubby
Пользователь
#3
Чуть не в тему, а не у кого нет конфига для Caddy (говорят очень шустрая альтернатива nginx), но очень не хочется лезть и конфиг от nginx туда портировать? Вдруг у кого есть уже.
AlvaEdison
Пользователь
#4
Grubby, да, много всего, можно его подсократить, тем более, что конфиг мой старый, но есть в нём полезные фичи:
1. HTTP2 позволяет делает два запроса на один поток, что ускоряет загрузку страницы
2. GZIP сжимает объём передаваемых данных, если на сервере стоит один сайт -можно ставить 6 уровень сжатия, хотя советуют ставить 4 как баланс между сжатием и нагрузкой на сервер
3. HSTS нужен для защиты домена
Я хоть не сильно вникал, но чуть дальше продвинулся в настройках NGINX. Сейчас использую его как прокси в связке с Apache, мне пока что хватает, для меня это оптимальный вариант.
Научился для ISP менеджера задавать шаблонные настройки, которые применяются ко всем доменам + сделал глобальные настройки для nginx /etc/nginx/nginx.conf
Что-то можешь ещё посоветовать для оптимизации ?
Код:
user apache; worker_processes auto; error_log /var/log/nginx/error.log crit; pid /var/run/nginx.pid; events { worker_connections 1024; multi_accept on; accept_mutex off; } thread_pool ngxcfuncthreadpool threads=32 max_queue=65536; http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; sendfile_max_chunk 512k; aio threads=ngxcfuncthreadpool; tcp_nopush on; tcp_nodelay on; keepalive_timeout 60; keepalive_requests 300; reset_timedout_connection on; client_body_timeout 30; send_timeout 6; server_tokens off; client_body_buffer_size 256k; client_max_body_size 256M; gzip on; include /etc/nginx/conf. d/*.conf; include /etc/nginx/vhosts/*/*.conf; server { server_name localhost; aio threads=ngxcfuncthreadpool; disable_symlinks if_not_owner; listen 80; listen [::]:80; include /etc/nginx/vhosts-includes/*.conf; location @fallback { error_log /dev/null crit; proxy_pass http://127.0.0.1:8080; proxy_redirect http://127.0.0.1:8080 /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; access_log off ; } } }
azuk
Пользователь
#5
спасибо!
«404 не найдено» для Nginx + PHP-FPM + MySql в Docker и Opencart в подпапке
спросил
Изменено
9 месяцев назад
Просмотрено
848 раз
У меня есть Nginx, PHP-FPM и MySQL, работающие внутри док-контейнеров. Я хочу установить Opencart 3 в подпапку «public» для дальнейшего развития.
Но когда я пытаюсь установить OC3, я получаю ошибку 404 от nginx. При этом сервер работает, контейнеры пингуются друг с другом, могу вывести phpinfo() и там видно, что все работает исправно.
Где ошибка?
docker-compose.yml
версия: «3.7» Сервисы: ktt_nginx: сборка: ./докер/nginx имя_контейнера: ktt_nginx порты: - '86:80' тома: - ./docker/nginx/conf:/etc/nginx/conf.d - .:/var/www/html - ./докер/nginx/журнал/:/var/лог/nginx - /тмп:/тмп зависит от: - ktt_php сети: - кт-нет ktt_php: сборка: ./докер/php имя_контейнера: ktt_php тома: - .:/var/www/html - /тмп:/тмп - ~/.composer:/var/www/.composer зависит от: - ktt_mysql сети: - кт-нет ktt_mysql: изображение: MySQL: 5.7 имя_контейнера: ktt_mysql порты: - "3386:3306" Окружающая среда: - MYSQL_ROOT_PASSWORD=корень - MYSQL_DATABASE=kttdb - MYSQL_USER=открытая тележка - MYSQL_PASSWORD=корень тома: - ktt_mysql_data:/var/lib/mysql сети: - кт-нет ktt_pma: изображение: phpmyadmin/phpmyadmin имя_контейнера: ktt_pma Окружающая среда: - PMA_ARBITRARY=1 перезапуск: всегда порты: - 8086:80 тома: - /сессии зависит от: - ktt_mysql сети: - кт-нет сети: кт-нет: тома: ktt_mysql_data: 9(. +\.php)(/.*)$; включить fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; # Запрещает URI, включающие фронт-контроллер. Это будет 404: # http://domain.tld/index.php/some-path # Удалите внутреннюю директиву, чтобы разрешить такие URI внутренний; } # вернуть 404 для всех остальных файлов php, не соответствующих фронт-контроллеру # это предотвращает доступ к другим файлам php, которые вы не хотите открывать. расположение ~ \.php$ { вернуть 404; } error_log /var/log/nginx/project_error.log; журнал_доступа /var/log/nginx/project_access.log; }
nginx Dockerfile
ОТ nginx: последняя RUN apt-get update && apt-get install mc -y RUN usermod -u 1000 nginx && groupmod -g 1000 nginx
- php
- mysql
- docker
- nginx
- opencart
Мне снова пришлось иметь дело с настройкой Opencart для работы внутри контейнера Docker. И теперь я смог сделать правильную настройку системы.
Итак, пример конфигурации для OpenCart 3.
docker-compose.yml
версия: «3.3» Сервисы: cart30_nginx: изображение: nginx: последний имя_контейнера: cart30_nginx порты: - "83:80" тома: - .:/var/www/html - ./docker/nginx/conf:/etc/nginx/conf.d:rw - ./докер/nginx/журнал/:/var/лог/nginx - /тмп:/тмп зависит от: - cart30_mysql сети: - тележка30-нетто cart30_fpm: сборка: ./docker/php-fpm имя_контейнера: cart30_fpm порты: - "9000" - "80:80" тома: - .:/var/www/html - ./docker/php-fpm/php.ini-production:/usr/local/etc/php/php.ini:rw зависит от: - cart30_mysql сети: - тележка30-нетто cart30_mysql: сборка: ./докер/mysql cap_add: - SYS_NICE имя_контейнера: cart30_mysql порты: - "3306:3306" тома: - ./docker/mysql/data:/var/lib/mysql:rw - ./докер/mysql/sql:/tmp/sql:rw Окружающая среда: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=открытая тележка - MYSQL_USER=корень - MYSQL_PASSWORD=123456 сети: - тележка30-нетто сети: cart30-net: 9/]\. php(/|$) { fastcgi_pass cart30_fpm:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; включить fastcgi_params; } error_log /var/log/nginx/project_error.log; журнал_доступа /var/log/nginx/project_access.log; }
докер/php-fpm/Dockerfile
ИЗ php:7.4-fpm RUN apt-get update && apt-get install -y \ завиток \ wget \ распаковать \ гит \ libfreetype6-dev \ libjpeg62-turbo-dev \ libxslt-dev \ либику-дев \ libmcrypt-dev \ libpng-dev \ zlib1g-dev \ libzip-dev \ libxml2-dev \ медиа информация \ libonig-dev \ libpq-dev \ графвиз \ мс \ судо \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install pdo_mysql \ && docker-php-ext-установить mysqli \ && docker-php-ext-install zip \ && docker-php-ext-install bcmath \ && сокеты docker-php-ext-install \ && докер-php-источник удалить \ && usermod -u 1000 www-данные && groupmod -g 1000 www-данные ЗАПУСК docker-php-ext-configure междунар. ЗАПУСК docker-php-ext-install международ. ЗАПУСК docker-php-ext-install xsl ЗАПУСК docker-php-ext-установить мыло БЕГ да | pecl установить xdebug-2.9.8 ЗАПУСК chsh -s /bin/bash www-данные ЗАПУСК curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.19 ДОБАВИТЬ php.ini /usr/local/etc/php/conf.d/40-custom.ini #RUN echo "www-data:root" | chpasswd $$ && adduser www-данные sudo РАБОЧИЙ КАТАЛОГ /var/www/html ПОЛЬЗОВАТЕЛЬ www-данные CMD ["php-fpm"]
докер/php-fpm/php.ini
memory_limit = 2G always_populate_raw_post_data = -1 post_max_size=30M upload_max_filesize=30M cgi.fix_pathinfo = 1 fastcgi_split_path_info = 1 максимальное_время_исполнения = 18000 флаг session.auto_start = выкл. zlib.output_compression = вкл. suhosin.session.cryptua = выкл. display_errors = Вкл. max_input_vars = 2000 zend_extension=xdebug.so xdebug.remote_enable=1 xdebug.remote_connect_back=0 xdebug.remote_handler=dbgp xdebug.remote_autostart=1 xdebug. remote_port=9000 xdebug.idekey=PHPSTORM xdebug.remote_host=172.17.0.1
Убедитесь, что у вас есть правильные права доступа к папке, содержащей opencart
chmod -R 777 /var/www/html
папка opencart под html
/var/www/html/opencart
90 Теперь попробуйте запустить opencart из браузера.
у меня работает.
В моем случае $document_root был неправильным, потому что корень документа nginx отличался от php-fpm.
Корень документа nginx: /usr/share/nginx/html/
Корень документа php:8-fpm: /var/www/html
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Как установить OpenCart на Ubuntu 18.
04
Введение
Прежде чем мы начнем говорить о том, как установить OpenCart на Ubuntu 18.04, давайте кратко разберемся — Что такое OpenCart?
OpenCart известна всем как одна из самых популярных платформ электронной коммерции PHP с открытым исходным кодом. Он известен своим удобным интерфейсом и широким набором функций.
Его многочисленные функции включают управление пользователями, мультимагазин, партнерские отношения, скидки, обзоры продуктов, многоязычность и несколько платежных шлюзов.
В этом руководстве вы узнаете, как установить OpenCart на сервер Ubuntu 18.04. Мы также рассмотрим несколько часто задаваемых вопросов, связанных со Strapi.
Предварительные условия
- Доменное имя
- Nginx, установленный на вашем сервере Ubuntu
- SSL-сертификат
Обновите системные пакеты до последних версий и установите их с помощью следующей команды:
sudo apt & upgrade& sudo apt установить распаковать
Шаг 1.
Создание базы данных MySQL
1) Вы можете пропустить этот шаг, если в вашей системе уже есть MySQL или MariaDB. Если это не так, вы можете загрузить MySQL 5.7, используя следующие команды:
sudo apt установить mysql-сервер mysql-клиент
Примечание: Для новых установок MySQL рекомендуется запустить команду mysql_secure_installation для повышения безопасности сервера MySQL.
2) После этого войдите в оболочку MySQL с помощью следующей команды:
sudo mysql
3) Теперь запустите следующую инструкцию SQL из оболочки MySQL, чтобы создать новую базу данных с именем opencart
:
CREATE DATABASE opencart;
4) После этого создайте учетную запись пользователя MySQL с именем opencart
и предоставьте ей все необходимые разрешения с помощью следующей команды:
GRANT ALL ON opencart. с сильным паролем';
Заменить изменение с сильным паролем надежным паролем.
5) По завершении выйдите из MySQL с помощью следующей команды:
EXIT;
Шаг 2. Установка и настройка PHP
1) Версия по умолчанию, поставляемая с Ubuntu 18.04, отлично подходит для установки. Поскольку Nginx используется в качестве веб-сервера, вам необходимо установить пакет PHP-FPM.
Следующая команда поможет вам в этом процессе:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7. 2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-мыло
2) После установки пакетов PHP они запустятся автоматически. Вы можете проверить это с помощью следующей команды:
sudo systemctl status php7.2-fpm
3) Вывод покажет, что служба FPM активна и работает:
Выход ● php7.2-fpm.service — менеджер процессов PHP 7.2 FastCGI. Загружено: загружено (/lib/systemd/system/php7.2-fpm.service; включено; предустановка поставщика: включена) Активно: активно (работает) с пн 25 февраля 2019 г. 10:45:42 UTC; 53 секунды назад Документы: man:php-fpm7.2(8) Основной PID: 27446 (php-fpm7.2) Статус: «Процессы активны: 0, бездействуют: 2, запросы: 0, медленно: 0, трафик: 0запросов/сек» Заданий: 3 (лимит: 505) Группа CG: /system.slice/php7.2-fpm.service ├─27446 php-fpm: основной процесс (/etc/php/7.2/fpm/php-fpm.conf)
4) После этого установите параметры PHP в соответствии с требованиями, изменив файл php.ini
на sed
:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/ php/7.2/fpm/php.ini sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7. 2/fpm/php.ini
Шаг 3. Установите OpenCart
1) На момент написания последней стабильной версией OpenCart является OpenCart 3.0.3.6
.
Перед началом загрузки создайте каталог, в котором будут храниться файлы OpenCart:
sudo mkdir -p /var/www/html/example.com
2) Теперь загрузите последнюю версию OpenCart из репозитория OpenCart с помощью следующей команды:
cd /tmp wget https://github.com/opencart/opencart/releases/download/3.0.3.1/opencart-3.0.3.1.zip
3) Затем распакуйте архив OpenCart и переместите файлы в корневой каталог домена:
unzip opencart-*.zip sudo mv /tmp/upload/* /var/www/html/example.com/
4) Далее с помощью команды cp
копируем файлы конфигурации:
sudo cp /var/www/html/example.com/{config-dist.php,config.php} sudo cp /var/www/html/example.com/admin/{config-dist.php,config.php}
5) Предоставьте необходимые разрешения, чтобы веб-сервер имел полный доступ к файлам и каталогам сайта.
sudo chown -R www-данные: /var/www/html
Шаг 4. Настройка Nginx
1) Теперь создайте следующий файл:
sudo nano /etc/nginx/sites-available/example.com
# Перенаправление HTTP -> HTTPS сервер { слушать 80; имя_сервера www.example.com example.com; включить фрагменты/letsencrypt.conf; вернуть 301 https://example.com$request_uri; } # Перенаправить WWW -> НЕ WWW сервер { слушать 443 ssl http2; имя_сервера www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; включить snippets/ssl.conf; вернуть 301 https://example.com$request_uri; } сервер { слушать 443 ssl http2; имя_сервера пример.com; корень /var/www/html/example.com; индекс index.php; # SSL-параметры ssl_certificate /etc/letsencrypt/live/example.com/fullchain. pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; включить snippets/ssl.conf; включить фрагменты/letsencrypt.conf; # лог-файлы журнал_доступа /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; местоположение = /favicon.ico { log_not_found выключен; доступ_лог выключен; } местоположение = /robots.txt { позволять все; log_not_found выключен; доступ_лог выключен; } расположение / { try_files $uri $uri/ /index.php?$args; } расположение ~ \.php$ { включить фрагменты/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } расположение ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { истекает макс.; log_not_found выключен; } }
Замените example.com своим доменом OpenCart и укажите правильный путь к файлам SSL-сертификата. Все HTTP-запросы будут перенаправлены на HTTPS.
2) Проверьте наличие синтаксических ошибок перед перезапуском:
sudo nginx -t
3) Если ошибок нет, вы увидите следующий вывод:
Вывод nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке nginx: проверка файла конфигурации /etc/nginx/nginx.conf прошла успешно
4) Теперь перезапустите сервер Nginx.
sudo systemctl перезапустить nginx
Шаг 5. Завершение установки OpenCart
1) После загрузки OpenCart и завершения настройки сервера необходимо перейти к настройке через Интернет.
Когда вы откроете браузер и войдете в свой домен, вы увидите экран, подобный показанному ниже.
2) Выберите нужный язык, затем нажмите Продолжить
после принятия лицензионного соглашения.
3) Откроется информационная вкладка:
4) Нажмите Продолжить
после того, как вы перепроверите все требования перед установкой.
5) На следующем экране вам будет предложено ввести данные для подключения к базе данных. Введите имя пользователя MySQL и данные, которые вы создали.
6) Далее введите имя пользователя, пароль и адрес электронной почты для администрации и выберите Продолжить
.
7) Теперь вы увидите страницу, подтверждающую завершение установки.
8) Нажмите на Войти в Администрацию
для доступа к панели администратора OpenCart. Введите адрес электронной почты и пароль, и вы будете перенаправлены в панель администратора.
9) При первом входе в систему появится всплывающее окно с просьбой переместить каталог хранилища за пределы веб-каталога.
10) Выберите параметр по умолчанию Автоматически перемещать
и нажмите красную кнопку Переместить
. Каталог, в который вы перемещаете каталог хранилища
, должен быть доступен для веб-сервера.
Теперь вы можете приступить к настройке установки OpenCart и добавить новые продукты.
11) Вам также необходимо удалить каталог установки. Итак, вернитесь к терминалу и введите следующую команду rm
:
sudo rm -rf /var/www/html/example.com/install
Часто задаваемые вопросы по установке OpenCart на Ubuntu 18.04
1) Могу ли я изменить свою версию opencart 3.0.2.0 на 2.0.x.?
Просто: OC 3.x все еще находится на переднем крае и не совсем стабилен. Он пока не подходит для обычных пользователей. Кроме того, 2.x, вероятно, имеет гораздо больше доступных расширений и поддержки, это давно установлено.
Не думаю, что существует какой-либо доступный путь «понижения». Потребуется ручная установка старого программного обеспечения и ручное преобразование базы данных.
2) Что можно сделать, чтобы устранить ошибку установки?
Как новый пользователь, ошибка 500, которая у вас возникает, может быть связана с журналами доступа вашего веб-сервера с самым последним событием, касающимся индекса 500, на вашей консоли хоста или в вашем корневом FTP-домене.