Как установить Apache HTTP в Ubuntu 20.04 | 18.04
Это краткое руководство показывает студентам и новым пользователям, как установить платформу электронной коммерции Magento 2 на Ubuntu 18.04 | 20.04 с HTTP-сервером Nginx и SSL-сертификатами Let’s encrypt wildcard.
Magento — бесплатная платформа электронной коммерции с открытым исходным кодом, написанная на PHP, которая используется миллионами малых предприятий для продажи и управления своими продуктами в Интернете.
Он позволяет вам создать полноценный интернет-магазин, включая управление запасами, каталоги продуктов, доставку, выставление счетов и многое другое.
Вы можете использовать Magento для управления своими интернет-магазинами и создания потрясающих цифровых технологий без особых усилий.
Если вы ищете платформу интернет-магазина корпоративного уровня для продажи своих продуктов, Magento, вероятно, должен стать для вас отправной точкой. И если вы хотите узнать, как легко установить и управлять им, то этот пост — все, что вам нужно.
Чтобы узнать больше о Magento, посетите их домашнюю страницу
Чтобы начать установку Magento, выполните следующие действия:
Шаг 1. Установите HTTP-сервер Nginx
Для работы Magento требуется веб-сервер, а Nginx — один из самых популярных веб-серверов с открытым исходным кодом, доступных сегодня.
Чтобы установить Nginx в Ubuntu, выполните следующие команды:
sudo apt update sudo apt install nginx
После установки Nginx приведенные ниже команды можно использовать для остановки , запуска и включения службы Nginx, которая всегда запускается с загрузкой сервера.
sudo systemctl stop nginx.service sudo systemctl start nginx.service sudo systemctl enable nginx.service
Чтобы проверить, установлен ли и работает ли Nginx, откройте свой веб-браузер и перейдите к IP-адресу или имени хоста сервера.
http://localhost
Если вы видите указанную выше страницу в своем браузере, значит, Nginx работает должным образом.
Шаг 2: Установите сервер базы данных MariaDB
Вам также понадобится сервер базы данных для запуска Magento. Сервер базы данных — это место, где хранится контент Magento.
Настоящий сервер базы данных с открытым исходным кодом, который вы можете использовать с Magento, — это сервер базы данных MariaDB. Это быстрый, безопасный и используемый по умолчанию сервер почти для всех серверов Linux.
Чтобы установить MariaDB, выполните следующие команды:
sudo apt-get install mariadb-server mariadb-client
After installing MariaDB, the commands below can be used to stop, start and enable MariaDB service to always start up when the server boots.
sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
Затем выполните приведенные ниже команды, чтобы защитить сервер базы данных паролем root, если вам не было предложено сделать это во время установки.
sudo mysql_secure_installation
При появлении запроса ответьте на приведенные ниже вопросы, следуя инструкциям.
- Введите текущий пароль для root (введите его, если нет): просто нажмите Enter
- Установить пароль root? [Y/n]: Y
- Новый пароль: Enter password
- Повторно введите новый пароль: Repeat password
- Удалить анонимных пользователей? [Y/n]: Y
- Запретить удаленный вход root? [Y/n]: Y
- Удалить тестовую базу данных и получить к ней доступ? [Y/n]: Y
- Обновить таблицы привилегий сейчас? [Y/n]: Y
Чтобы проверить и убедиться, что MariaDB установлена и работает, войдите в консоль базы данных, используя следующие команды:
sudo mysql -u root -p
при появлении запроса введите пароль root.
Если вы видите экран, похожий на показанный выше, значит сервер успешно установлен.
Шаг 3. Установите PHP 7.4 и связанные модули
Magento — это приложение на основе PHP, и для его запуска требуется PHP. Поскольку в некоторых версиях Ubuntu нет последней версии PHP, вы можете добавить сторонний репозиторий PPA для установки PHP оттуда.
Приведенная ниже команда добавит сторонний PPA в Ubuntu.
sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php
Затем обновите и обновите до PHP 7.4.
sudo apt update
Затем выполните приведенные ниже команды, чтобы установить PHP 7.4 и связанные модули.
sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip
После установки PHP 7.4 перейдите и настройте некоторые базовые параметры, которые могут потребоваться для правильной работы Magento.
Выполните команды ниже, чтобы открыть PHP
sudo nano /etc/php/7.4/fpm/php.ini
Ниже приведены хорошие настройки для большинства веб-сайтов Magento.
file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360 date.timezone = America/Chicago
После этого должен быть установлен PHP 7.4 с некоторыми базовыми настройками, чтобы Magento функционировал.
Шаг 4: Создайте базу данных Magento
Когда все серверы установлены выше, пора приступить к настройке среды Magento. Сначала выполните следующие действия, чтобы создать пустую базу данных для использования Magento.
Войдите в консоль базы данных MariaDB, используя следующие команды:
sudo mysql -u root -p
Затем создайте базу данных с именем magento
CREATE DATABASE magento;
Создайте пользователя базы данных с именем magentouser и установите пароль
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'new_password_here';
Затем предоставьте пользователю полный доступ к базе данных.
GRANT ALL ON magento.* TO 'magentouser'@'localhost' WITH GRANT OPTION;
Наконец, сохраните изменения и выйдите.
FLUSH PRIVILEGES; EXIT;
Шаг 5: Загрузите Magento
На этом этапе Magento готов к загрузке и установке. Используйте команды ниже, чтобы загрузить последнюю версию Magento.
Чтобы получить последнюю версию Magento, вы можете использовать репозиторий Github … Установите Composer, Curl и другие зависимости, чтобы начать.
sudo apt install curl git curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
После установки curl и Composer, указанных выше, перейдите в корневой каталог Nginx и загрузите пакеты Magento 2 с Github.
При появлении запроса введите ключи аутентификации . Ваш открытый ключ — это ваше имя пользователя; ваш закрытый ключ — это ваш пароль…. ( https://marketplace.magento.com/customer/accessKeys/ )
Вам нужно будет зарегистрировать учетную запись, чтобы создать ключ, указанный выше.
Выполните приведенные ниже команды, чтобы создать новый проект с именем magento.
cd /var/www/
sudo composer create-project --repository=https://repo.magento.com/ magento/project-community-edition magento
Скопируйте и вставьте ключ аутентификации… (Ваш открытый ключ — это ваше имя пользователя; ваш закрытый ключ — это ваш пароль)
Output:
Authentication required (repo.magento.com):
Username: 234f2343435d190983j0ew8u3220
Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y
После загрузки пакетов Magento выполните следующие команды, чтобы установить Magento со следующими параметрами:
cd /var/www/magento sudo bin/magento setup:install --base-url-secure=https://example.com/ --db-host=localhost --db-name=magento --db-user=magentouser --db-password=db_user_password_here --admin-firstname=Admin --admin-lastname=User --admin-email=admin@example.com --admin-user=admin --admin-password=admin123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
- Программное обеспечение Magento устанавливается в корневой каталог на локальном хосте…. Админ — это admin; следовательно: URL вашей витрины https://exmaple.com
- Сервер базы данных находится на том же локальном хосте, что и веб-сервер.
- Имя базы данных magento, а magentouser и пароль db_user_password_here
- Использует серверные rewrites
- Администратор Magento имеет следующие свойства:
- Имя и фамилия:: Admin User
- Имя пользователя: admin
- и пароль admin123
- Адрес электронной почты: admin@example.com
- Язык по умолчанию: (U.S. English)
- Валюта по умолчанию: U.S. dollars
- Часовой пояс по умолчанию: U.S. Central (America/Chicago)
После этого выполните приведенные ниже команды, чтобы установить правильные разрешения для работы Magento 2.
Затем запустите команду ниже, чтобы позволить www-dataпользователю владеть каталогом Magento.
sudo chown -R www-data:www-data /var/www/magento/ sudo chmod -R 755 /var/www/magento/
Шаг 6. Настройте Nginx
Ниже вы настраиваете файл Nginx VirtualHost для создаваемого сайта Magento. Этот файл определяет, как обрабатываются и обрабатываются клиентские запросы.
Выполните приведенные ниже команды, чтобы создать новый файл VirtualHost с именем magentoв каталоге /etc/nginx/sites-available/ .
sudo nano /etc/nginx/sites-available/magento
Ниже приведены очень хорошие настройки конфигурации для большинства сайтов Magento на сервере Nginx. Эта конфигурация должна отлично работать.
Скопируйте содержимое ниже и сохраните в файл, созданный выше.
upstream fastcgi_backend {
server fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
index index.php;
set $MAGE_ROOT /var/www/magento;
set $MAGE_MODE production;
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
include /var/www/megento/nginx.conf.sample;
}
Сохраните файл и выйдите.
После сохранения файла, указанного выше, выполните следующие команды, чтобы включить новый сайт, а затем перезапустите сервер Nginx .
sudo ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/ sudo systemctl restart nginx.service
На этом этапе Magento готов и может быть запущен, перейдя на IP-адрес сервера или имя хоста.
https://example.com
Однако, если вы хотите включить SSL или принимать веб-трафик через HTTPS, вы можете продолжить ниже, чтобы установить и настроить бесплатные SSL-сертификаты Let’s Encrypt.
Шаг 7. Установите сертификаты Let’s Encrypt Wildcard
На шаге 6 Magento готов к использованию без SSL. Однако, если вы хотите обслуживать веб-трафик через HTTPS, необходимо установить и настроить SSL-сертификат Let’s Encrypt или другие общедоступные сертификаты.
Чтобы установить Let’s Encrypt, выполните следующие команды.
sudo apt update sudo apt-get install letsencrypt
Приведенные выше команды установят инструмент certbot и все зависимости, которые позволят заставить инструмент работать.
Let’s Encrypt предлагает множество способов проверить, что вы владеете доменом, для которого хотите предоставить сертификаты SSL. Вы не сможете создавать сертификаты, если не сможете доказать, что владеете доменом, который хотите защитить.
Для сертификатов с подстановочными знаками единственный метод запроса, который принимает Let’s Encrypt, — это запрос DNS, который мы можем вызвать с помощью флага предпочтительных вызовов = dns .
Итак, чтобы сгенерировать сертификат с подстановочными знаками для домена * .example.com , вы выполните следующие команды:
sudo certbot certonly --manual --preferred-challenges=dns --email admin@example.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d example.com -d *.example.com
Параметры команды выше описаны ниже:
- certonly: получить или обновить сертификат, но не устанавливать
- –manual: интерактивное получение сертификатов.
- –preferred-challenges=dns: использовать DNS для аутентификации владения доменом.
- –server: укажите конечную точку, которая будет использоваться для создания
- –agree-tos: условия подписки на сервер ACME
- -d: доменное имя для предоставления сертификатов
После выполнения приведенной выше команды Let’s Encrypt предоставит текстовую строку для добавления текстовой записи в вашу запись DNS…
Пример:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None ------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights. ------------------------------------------------------------------------------- (Y)es/(N)o: y Obtaining a new certificate Performing the following challenges: dns-01 challenge for example.com ------------------------------------------------------------------------------- NOTE: The IP of this machine will be publicly logged as having requested this certificate. If you're running certbot in manual mode on a machine that is not your server, please ensure you're okay with that. Are you OK with your IP being logged? ------------------------------------------------------------------------------- (Y)es/(N)o: y ------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.example.com with the following value: x4MrZ6y-JqFJQRmq_lGi9ReRQHPa1aTC9J2O7wDKzq8 Перейдите на портал своего поставщика DNS, добавьте текстовую запись для строки выше и сохраните
Подождите несколько минут, прежде чем продолжить из командной строки.
Некоторые поставщики DNS используют хитрость для распространения изменений, поэтому это может зависеть от платформы вашего провайдера.
После внесенных выше изменений, и Let’s encrypt сможет подтвердить, что вы являетесь владельцем домена, вы должны увидеть успешное сообщение, как показано ниже:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-01-09. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew"
Подстановочный сертификат создан и готов к использованию.
Чтобы убедиться, что сертификат готов, выполните следующие команды:
sudo certbot certificates
Это должно отобразить аналогичный экран, как показано ниже:
Found the following certs: Certificate Name: example.com Domains: *.example.com Expiry Date: 2020-01-05 07:48:04+00:00 (VALID: 85 days) Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
Теперь сертификаты Let’s Encrypt действительны в течение 90 дней … Вы захотите настроить задание crob для автоматизации процесса обновления … Для этого откройте crontab и добавьте запись ниже:
sudo crontab -e
Затем добавьте строку ниже и сохраните.
0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log
Сохраните, и все готово!
После установки Let’s Encrypt повторно откройте созданный выше файл VirtualHost Nginx и добавьте конфигурации Let’s Encrypt для защиты вашего сайта.
Выполните команды ниже, чтобы открыть файл.
sudo nano /etc/nginx/sites-available/magento
Затем добавьте выделенные строки в файл VirtualHost, как показано ниже:
upstream fastcgi_backend { server fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } server { listen 80; listen [::]:80; server_name *.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com www.example.com; index index.php; set $MAGE_ROOT /var/www/magento; set $MAGE_MODE production; access_log /var/log/nginx/example.com-access.log; error_log /var/log/nginx/example.com-error.log; if ($host != "example.com") { return 301 https://example.com$request_uri; } 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; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13+AESGCM+AES128:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; ssl_session_tickets off; ssl_ecdh_curve X25519:sect571r1:secp521r1:secp384r1; include /var/www/megento/nginx.conf.sample; }
После вышеуказанного перезапустите Nginx и PHP 7.4-FPM.
sudo systemctl reload nginx sudo systemctl reload php7.4-fpm
Затем откройте браузер и перейдите к доменному имени сервера. Вы должны увидеть, как мастер установки Magento завершит работу. Пожалуйста, внимательно следуйте указаниям мастера.
https://example.com/
Домашняя страница Magento должна отображаться на вашем экране.
Обновление Magento
Если вы хотите обновить Magento в будущем, просто выполните следующие действия:
Сначала остановите веб-сервер.
sudo systemctl stop nginx
В будущем, когда вы захотите выполнить обновление до новой выпущенной версии, просто выполните следующие команды, чтобы обновить.
cd /var/www/magento sudo bin/magento maintenance:enable sudo composer require magento/product-community-edition 2.2.5 --no-update sudo composer update sudo php bin/magento setup:upgrade sudo php bin/magento setup:di:compile sudo php bin/magento indexer:reindex sudo php bin/magento maintenance:disable
Возможно, вам придется перезапустить, чтобы обновить разрешения каталога Nginx…
Это оно!
Поздравляю! Вы успешно установили Magento в Ubuntu 18.04 | 20.04. Если вы обнаружите какую-либо ошибку выше, используйте форму комментариев ниже, чтобы сообщить об этом.ґ
Спасибо