Предпосылки были успешно установлены.
Я установил Elastic Stack на Ubuntu 20.04 LTS. Я выполнил все шаги по этой ссылке (до № 2. Установите и настройте Kibana на Ubuntu, который мне не нужен). Никаких проблем.
После завершения установки я посетил: example.com/magento и получил 403 Forbidden. Я понимаю, что это проблема с разрешением, но перед установкой Magento я следовал этому руководству и установил разрешения правильно, как указано ниже:
cd /var/www/html/<каталог установки magento>
find var сгенерированный поставщиком pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var сгенерированный поставщиком pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chown -R :www-данные . # Убунту
chmod u+x бин/мадженто
Когда я впервые установил Magento 2, я смог увидеть его на основном домене без https и в каталоге example/Magento. Я думаю, что проблема в моем файле конфигурации Nginx, а точнее в SSL/портах, которые выглядят следующим образом:
## Настроить nginx для Magento 2
вверх по течению fastcgi_backend {
сервер unix:/var/run/php/php7.4-fpm.sock;
}
сервер {
корень /var/www/example.com/html/каталог;
# Добавьте index.php в список, если вы используете PHP
индекс index.php index.html index.htm index.nginx-debian.html;
имя_сервера example.com www.example.com;
место расположения / {
# Сначала пытаемся обслужить запрос как файл, затем
# в качестве каталога, затем вернуться к отображению 404.
try_files $uri $uri/ /index.php?$args;
}
# передать PHP-скрипты на сервер FastCGI
расположение ~ \.php$ {
включить фрагменты/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
# запретить доступ к файлам .htaccess, если корневой каталог Apache
# совпадает с nginx
#
расположение ~ /\.ht {
отрицать все;
}
слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
} #закрывающий тег сервера
## Новый блок для magento
сервер {
слушать 8080;
имя_сервера example.com www.example.com;
установить $MAGE_ROOT /var/www/example.com/html/directory/magento;
# установить $MAGE_MODE по умолчанию;
установить производство $MAGE_MODE;
включить /var/www/example.com/html/directory/magento/nginx.conf.sample;
}
# Настраиваем прокси
# источник: https://devdocs.magento.com/guides/v2.4/install-gde/prereq/es-config-nginx.html
включить /etc/nginx/conf.d/*.conf;
сервер {
если ($host = www.example.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
если ($host = example.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
слушать 80 ;
слушать [::]:80 ;
имя_сервера example.com www.example.com;
вернуть 404; # под управлением Certbot
}
включить /etc/nginx/conf.d/*.conf;
связан с новым файлом /etc/nginx/conf.d/magento_es_auth.conf
со следующим содержанием:
сервер {
слушать 8080;
местоположение /_cluster/здоровье {
proxy_pass http://localhost:9200/_cluster/health;
}
}
судо nginx-t
Возвращает:
nginx: [предупреждение] конфликтующее имя сервера "" на 0.0.0.0:8080, игнорируется
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: проверка файла конфигурации /etc/nginx/nginx.conf прошла успешно
Обновление SSL-сертификата sudo certbot обновить --dry-run
прошло!
nginx.conf.sample