Как установить Magento 2.1 на CentOS 7
Это руководство существует для этих версий ОС
- CentOS 8
- CentOS 7
На этой странице
- Шаг 1. Установите Nginx
- Шаг 2. Установка и настройка PHP-FPM
- Шаг 3. Установите сервер MySQL 5.7.
- Шаг 4. Установка и настройка Magento
- Шаг 5. Настройка SELinux и Firewalld
- Шаг 6. Тестирование
- Справочник
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/