Установка Magento 2, php-fpm, nginx, mysql
В этой статье речь пойдет о том, как установить Mysql, PHP 7.0, Nginx и Magento 2 для локальной разработки..
Перед установкой, можно сходить вот сюда https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements-tech.html и свериться с требованиями необходимыми под вашу версию Magento.
Mysql
Устанавливаем Mysql
1 2 3 |
sudo apt install -y mysql-server mysql-client |
Конфигурируем, указываем данные для подключения к MySQL
1 2 3 |
sudo mysql_secure_installation |
Далее нужно подключиться к базе данных каким-нибудь клиентом, например я использую DBear и создать пустую базу данных.
PHP-FPM
Устанавливаем PHP-FPM
1 2 3 4 5 6 7 8 |
sudo apt-get -y update sudo add-apt-repository ppa:ondrej/php sudo apt-get -y update sudo apt-get install -y php7.0 php7.0-common php7.0-fpm php7.0-cli \ php7.0-gd php7.0-mysql php7.0-curl php7.0-intl php7.0-xsl php7.0-mbstring \ php7.0-zip php7.0-bcmath php7.0-iconv php7.0-soap |
Открываем php.ini для fpm
1 2 3 |
sudo mcedit vim /etc/php/7.0/fpm/php.ini |
и устанавливаем там memory_limit в 2G и max_execution_time в 300 (5 минут)
1 2 3 4 |
memory_limit = 2G max_execution_time = 300 |
так же сразу включает отображение ошибок
1 2 3 4 |
display_errors = On display_startup_errors = On |
Чтобы не париться с правами, меняем пользователя от которого будет работать php-fpm с www-data на себя
Открываем
1 2 3 |
/etc/php/7.0/fpm/pool.d/www.conf |
и меняем там www-data
1 2 3 4 |
user = www-data group = www-data |
на своего пользователя, у меня это vitto
1 2 3 4 |
user = vitto group = vitto |
запускаем
1 2 3 |
systemctl start php7.0-fpm |
если все ок и это вам нужно, то можно добавить в автозагрузку
1 2 3 |
systemctl enable php7.0-fpm |
Composer
Для инсталляции Magento, нам понадобится composer. Если он еще не установлен, делаем это так
1 2 3 |
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer |
Magento 2
Прежде всего создаем папку где будут храниться файлы magento хоста
1 2 3 |
mkdir -p /progr/sites/magento.local/public_html |
Теперь, качаем архив отсюда: https://magento.com/tech-resources/download
Извлекаем его в папку хоста /progr/sites/magento.local/public_html/
Переходим в папку хоста и выполняем
1 2 3 |
composer install -v |
На этом этапе у вас попросят username и password, получить их можно зарегистрировавшись на сайте marketplace.magento.com. Процесс подробно описан тут: https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html . Так же я его описывал в статье: Magento 2: установка с тестовыми данными . Если вкратце, то регистрируетеся, в разделе Access Keys создаете новую связку и получаете Public Key и Private Key, которые и надо использовать в качестве username и password соответственно.
Далее можно сразу произвести первоначальную конфигурацию вот так
Переходим в папку домена: /progr/sites/magento.local/public_html/ и выполняем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
php bin/magento setup:install \ --base-url=http://magento.local:7070/ \ --db-host=localhost \ --db-name=magento \ --db-user=mysql \ --db-password=mysql \ --admin-firstname=admin \ --admin-lastname=admin \ --admin-email=admin@admin.com \ --admin-user=admin \ --admin-password=admin123 \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 |
Обратите внимание, что вам надо указать свои данные хоста и данные подключения к базе. Разумеется можно пропустить этот пункт, и сделать все тоже самое из веб-браузера
Так же при желании можно сразу включить режим разработчика
1 2 3 |
php bin/magento deploy:mode:set developer |
Nginx
Создаем папку где будет хост nginx-а по-умолчанию
1 2 3 |
mkdir -p /progr/sites/nginx-default/public_html |
Создаем файл конфигурации nginx-а
1 2 3 |
mcedit /etc/nginx/sites-available/magento.local.conf |
с таким содержимым
1 2 3 4 5 6 7 8 9 10 11 12 |
upstream fastcgi_backend { server unix:/run/php/php7.0-fpm.sock; } server { listen 7070; server_name taf.sv; set $MAGE_ROOT /store/sites/magento.local/public_html; include /store/sites/magento.local/public_html/nginx.conf.sample; } |
Тут обратите внимание на порт указанный в listen, если вы планируете использовать только nginx, то вместо 7070 туда надо указать 80. В моем случае на 80 порту уже сидит apache, поэтому я используя другой порт.
Создаем симлинк, в директорию sites-enabled
1 2 3 4 5 |
ln -s \ /etc/nginx/sites-available/magento.local.conf \ /etc/nginx/sites-enabled/ |
Теперь, я так же меняю порт 80 на порт 7070 в веб-директории по-умолчанию, а так же путь к этой директории на свой
1 2 3 |
mcedit /etc/nginx/sites-available/default |
1 2 3 4 5 6 7 8 9 10 11 12 |
... # Default server configuration # server { listen 7070 default_server; listen [::]:7070 default_server; ... root /store/sites/nginx-default/public_html; ... } |
Теперь можно проверять конфиги, сделать это можно так
1 2 3 |
sudo nginx -t |
Если все ок, выведет вот такое сообщение
1 2 3 4 |
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
теперь осталось его запустить
1 2 3 |
systemctl start nginx |
и при необходимости добавить в автозагрузку
1 2 3 |
systemctl enable nginx |
Hosts
Чтобы браузер резолвил домен в ip, нам нужна dns запись. Добавляем ее в hosts
1 2 3 |
sudo mcedit /etc/hosts |
и добавляем
1 2 3 |
127.0.0.1 magento.local www.magento.local |
Заключение
Теперь открываем в браузере magento.local или в моем случае magento.local:7070 и все работает
Author: | Tags: /
| Rating:
Leave a Reply