Поиск по сайту:

Как установить Magento 2.1 на CentOS 7


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 7

На этой странице

  1. Шаг 1. Установите Nginx
  2. Шаг 2. Установка и настройка PHP-FPM
  3. Шаг 3. Установите сервер MySQL 5.7.
  4. Шаг 4. Установка и настройка Magento
  5. Шаг 5. Настройка SELinux и Firewalld
  6. Шаг 6. Тестирование
  7. Справочник

Magento — это магазин с открытым исходным кодом (программное обеспечение для электронной коммерции) и система управления контентом для веб-сайтов электронной коммерции, основанная на PHP Zend Framework. Magento применяет соглашения объектно-ориентированного программирования и архитектуры MVC (модель-представление-контроллер) и использует MySQL/MariaDB в качестве базы данных. Разработанное программное обеспечение было запущено в 2008 году компанией Varien Inc. За последние годы Magento стала надежной платформой для программного обеспечения для электронной коммерции, которое поддерживает онлайн-бизнес во всем мире.

В этом уроке я проведу вас через установку Magento 2.1. Мы установим Magento 2.1 с Nginx и Php7.0-fpm и MySQL в качестве базы данных. Для этой цели я буду использовать сервер CentOS 7 с включенным SELinux. div-gpt-ad-howtoforge_com-medrectangle-3-0;var ffid=1;var alS=1021%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document. createElement(ins);ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins.dataset.fullWidthResponsive= истинный;}

Шаг 1 — Установите Nginx

На этом этапе мы установим Nginx из репозитория epel. Epel недоступен по умолчанию, поэтому нам нужно установить epel-репозиторий перед установкой Nginx.

Установите репозиторий epel с помощью этой команды yum.

yum -y install epel-release

Теперь мы можем установить Nginx из epel-репозитория.

yum -y install nginx

После завершения установки запустите Nginx и добавьте его для запуска во время загрузки.

systemctl start nginx
systemctl enable nginx

Nginx запущен на порту 80, вы можете проверить это с помощью команды netstat ниже.

netstat -plntu

Если вы видите, что команда результата не найдена, вы можете установить net-tools, как это.

yum -y install net-tools

Шаг 2 — Установите и настройте PHP-FPM

В этом руководстве мы будем использовать PHP-FPM 7 для установки Magento. Я буду использовать пакеты PHP 7 из репозитория Webtatic.

Скачайте и добавьте в систему новый репозиторий webtatic.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Теперь выполните приведенную ниже команду, чтобы установить PHP-FPM7 со всеми пакетами и расширениями, необходимыми для установки Magento.

yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap

Когда установка PHP-FPM7 завершена, нам нужно ее настроить. Мы настроим файл php.ini и файл конфигурации php-fpm www.conf.

Отредактируйте php.ini с помощью vim.

vim /etc/php.ini

Раскомментируйте строку cgi.fix_pathinfo 762 и измените значение на 0.

cgi.fix_pathinfo=0

Настройте лимит памяти, максимальное время выполнения и включите сжатие вывода zlib, убедитесь, что вы установили значения, как показано ниже.

memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On

Раскомментируйте каталог пути сеанса и измените каталог, как показано ниже.

session.save_path = "/var/lib/php/session"

Сохранить и выйти.

Затем отредактируйте файл конфигурации php-fpm www.conf с помощью команды vim.

vim /etc/php-fpm.d/www.conf

PHP-FPM7 будет работать под пользователем и группой nginx, измените значение на nginx для строк пользователя и группы.

user = nginx
group = nginx

Мы будем запускать php-fpm под файлом сокета, а не через порт сервера. Измените значение строки прослушивания на путь к файлу сокета.

listen = /var/run/php/php-fpm.sock

Файл сокета должен принадлежать пользователю и группе nginx, раскомментируйте строки прослушивания и измените значения, как показано ниже.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Наконец, раскомментируйте строки окружения PHP-FPM 366-370.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Сохранить и выйти.

Затем создайте новый каталог для пути к сеансу и расположения файла sock php. Затем измените владельца на пользователя и группу nginx.

Создайте новый каталог для пути сеанса.

mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/

Создайте новый каталог для расположения файла сокета php-fpm.

mkdir -p /run/php/
chown -R nginx:nginx /run/php/

Настройка PHP-FPM7 завершена, запустите демон сейчас и включите его во время загрузки с помощью команды systemctl ниже.

systemctl start php-fpm
systemctl enable php-fpm

Когда ошибок нет, вы можете использовать приведенную ниже команду, чтобы проверить, работает ли php-fpm в файле сокета.

netstat -pl | grep php-fpm.sock

Шаг 3 — Установите сервер MySQL 5.7

Для Magento 2.1 требуется текущая версия MySQL, для установки можно использовать MySQL 5.6 или 5.7. В этом руководстве мы будем использовать MySQL 5.7, которую можно установить из официального репозитория MySQL. Поэтому нам нужно сначала добавить новый репозиторий MySQL.

Загрузите и добавьте новый репозиторий MySQL для установки MySQL 5.7.

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

Теперь установите MySQL 5.7 из репозитория MySQL с помощью приведенной ниже команды yum.

yum install mysql-community-server

Когда установка будет завершена, запустите mysql и добавьте его для запуска при загрузке.

systemctl start mysqld
systemctl enable mysqld

MySQL 5.7 был установлен с паролем root по умолчанию, он хранится в файле mysqld.log. Используйте команду grep, чтобы увидеть пароль по умолчанию для MySQL 5.7. Запустите команду ниже.

grep 'temporary' /var/log/mysqld.log

Теперь вы видите текущий пароль root MySQL, вы должны изменить пароль по умолчанию.

Подключитесь к оболочке mysql с пользователем root и паролем по умолчанию.

mysql -u root -p
TYPE DEFAULT PASSWORD

Измените пароль root по умолчанию с помощью приведенного ниже запроса. Я буду использовать здесь новый пароль [email . Пожалуйста, выберите безопасный пароль.

ALTER USER 'root'@'localhost' IDENTIFIED BY '';
flush privileges;

Пароль root MySQL по умолчанию был изменен. Далее нам нужно создать нового пользователя и новую базу данных для установки Magento.

Мы создадим новую базу данных с именем magentodb и нового пользователя magentouser с паролем [email . Затем предоставьте все привилегии базы данных новому пользователю. Запустите запрос mysql ниже.

create database magentodb;
create user ';
flush privileges;

Установка и настройка MySQL 5.7 завершена, база данных для установки Magento создана.

Шаг 4 Установите и настройте Magento

На этом этапе мы начнем устанавливать и настраивать Magento. В качестве корневого веб-каталога мы будем использовать каталог /var/www/magento2. Нам нужен PHP-композитор для установки пакета Magento.

Установить PHP-композитор

Мы будем использовать Composer для установки зависимости пакета PHP. Установите композитор с помощью команды curl ниже.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Когда установка будет завершена, вы можете проверить версию композитора, как показано ниже.

composer -v

Установлен PHP-композитор.

Загрузите и распакуйте Magento

Перейдите в каталог /var/www и загрузите код Magento с помощью команды wget.

cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zip

Установите распаковку с помощью yum.

yum -y install unzip

Извлеките код Magento и переименуйте каталог в каталог magento2.

unzip 2.1.zip
mv magento2-2.1 magento2

Установить зависимости PHP

Перейдите в каталог magento2 и установите все зависимости Magento с помощью команды composer.

cd magento2
composer install -v

Дождитесь завершения установки зависимостей PHP.

Настроить виртуальный хост Magento

Перейдите в каталог Nginx и создайте новый файл конфигурации виртуального хоста с именем magento.conf в каталоге conf.d.

cd /etc/nginx/
vim conf.d/magento.conf

Вставьте конфигурацию виртуального хоста ниже.

upstream fastcgi_backend {
        server  unix:/run/php/php-fpm.sock;
}

server {

        listen 80;
        server_name magento.hakase-labs.com;
        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}

Сохранить и выйти.

Теперь проверьте конфигурацию. Если ошибки нет, перезапустите службу Nginx.

nginx -t
systemctl restart nginx

Установить Магенто 2.1

Перейдите в каталог magento2, чтобы установить Magento из командной строки.

cd /var/www/magento2

Запустите команду ниже, убедитесь, что у вас правильная конфигурация. Значения, которые необходимо изменить, описаны ниже.

bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password=" \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database

Изменить значение для:

  • --backend-frontname: страница входа администратора Magento \adminlogin\
  • --key: сгенерировать собственный ключ
  • --db-host: хост базы данных localhost
  • --db-name: имя базы данных magentodb
  • --db-user: пользователь базы данных magentouser
  • --db-password: пароль базы данных [электронная почта защищена]
  • --base-url: URL Magento
  • --admin-user: ваш администратор
  • --admin-password: Ваш пароль администратора Magento.
  • --admin-email: Ваш адрес электронной почты

Если у вас нет ошибок в команде, вы увидите результаты ниже.

Magento 2.1 установлен. Запустите команду ниже, чтобы изменить разрешение для каталога etc и изменить владельца каталога magento2 на пользователя nginx.

chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2

Настроить Magento Cron

Этот cronjob необходим для индексатора Magento. Создайте новый cronjob от имени пользователя nginx (поскольку magento работает под пользователем и группой nginx).

crontab -u nginx -e

Вставьте конфигурацию ниже.

* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log

Сохранить и выйти.

Шаг 5 — Настройте SELinux и Firewalld

В этом руководстве мы оставим SELinux в принудительном режиме. Запустите приведенные ниже команды, чтобы проверить состояние SELinux.

sestatus

SELinux находится в принудительном режиме.

Установите средство управления SELinux policycoreutils-python с помощью приведенной ниже команды yum.

yum -y install policycoreutils-python

Перейдите в каталог /var/www/.

cd /var/www/

Запустите приведенные ниже команды, чтобы изменить контекст безопасности для файлов и каталогов Magento.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www/magento2/'

Настройка SELinux завершена. Теперь нам нужно настроить firewalld.

Установите пакет firewalld, если он еще не установлен на вашем сервере.

yum -y install firewalld

Запустите брандмауэр и добавьте firewalld для запуска во время загрузки.

systemctl start firewalld
systemctl enable firewalld

Откройте порты для HTTP и HTTPS, чтобы мы могли получить доступ к URL-адресу Magento из веб-браузера.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

См. открытые порты для служб с помощью приведенной ниже команды.

firewall-cmd --list-all

HTTP и HTTPS готовы к соединениям.

Шаг 6 — Тестирование

Откройте веб-браузер и перейдите по URL-адресу Magento. Мой:

magento.hakase-labs.com

И вы увидите домашнюю страницу Magento по умолчанию.

Затем войдите в панель администратора, открыв URL-адрес входа в систему.

magento.hakase-labs.com/adminlogin

Войдите под своим именем администратора и паролем.

Панель администратора Magento.

Magento 2.1 был успешно установлен с Nginx, PHP-FPM7 и MySQL 5.7 на сервере CentOS 7.

Ссылка

  • https://linux-console.net/tutorial/how-to-install-magento-with-nginx-on-ubuntu/