Как установить и настроить Magento в Ubuntu 14.04

Вступление

Magento - самая популярная система управления контентом для сайтов электронной коммерции. Он используется как малыми, так и крупными корпоративными компаниями, и может быть дополнен тысячами расширений и тем. Magento использует систему баз данных MySQL, язык программирования PHP и части Zend Framework.

В этом руководстве мы расскажем, как установить Magento с веб-сервером Apache на Ubuntu 14.04, включая некоторые общие настройки производительности и безопасности.

Предпосылки

Прежде чем вы начнете с этим руководством, необходимо выполнить несколько шагов.

Из-за требований обработки операций Magento рекомендуется устанавливать Magento на VPS с минимум 2 ГБ ОЗУ. Это гарантирует, что все программное обеспечение, задействованное в управлении магазином, будет иметь достаточно памяти для работы.

Вам потребуется доступ к пользователю без полномочий root с правамиsudo. Если вы еще этого не сделали, вы можете запуститьUbuntu 14.04 initial server setup guide, чтобы создать эту учетную запись.

Кроме того, на вашем экземпляре VPS должен быть установлен стек LAMP (Linux, Apache, MySQL и PHP). Если у вас еще не установлены и настроены эти компоненты, вы можете использовать это руководство, чтобы узнатьhow to install LAMP on Ubuntu 14.04.

Когда вы закончите с этими шагами, вы можете подключиться к вашему серверу Ubuntu как пользователь без полномочий root и продолжить установку Magento.

[[step-1 -—- configure-apache-and-php]] == Шаг 1. Настройте Apache и PHP

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

Виртуальный хост Apache

Во-первых, нам нужно настроить файл виртуального хоста, чтобы Apache знал, как правильно управлять нашим сайтом Magento. Мы можем использовать наш текстовый редактор для создания нового файла виртуального хоста в/etc/apache2/sites-available/. В этом примере виртуальный хост называетсяmagento, но вы можете назвать его как-нибудь иначе, если хотите.

sudo nano /etc/apache2/sites-available/magento.conf

Потребности виртуального хоста Magento довольно просты. Начните с тега<VirtualHost>, который прослушивает весь трафик с порта 80, стандартного порта HTTP. Затем добавьте строку, сообщающую Apache, где найти файлы вашего сайта, с помощью директивыDocumentRoot:


    DocumentRoot /var/www/html

Нам нужно добавить некоторые дополнительные параметры для правильной работы Magento. Внутри тега<Directory>, указывающего на корень нашего документа, мы введем параметры для индексации каталогов Apache, поддержки символических ссылок и многоязычной поддержки. Мы также добавим строку, которая позволяет файлам.htaccess переопределять настройки Apache, что обеспечивает более детальный контроль над отдельными папками.

. . .
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    
. . .

Со всеми этими компонентами ваш файл виртуального хоста будет выглядеть так:


    DocumentRoot /var/www/html
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    

Когда вы закончите записывать блок сервера, сохраните и закройте файл. Чтобы включить новый сайт с Apache, используйте командуa2ensite:

sudo a2ensite magento.conf

Мы также хотим отключить виртуальный хост по умолчанию, поставляемый с Apache, так как он будет конфликтовать с нашим новым виртуальным хостом. Чтобы отключить сайт с помощью Apache, используйте командуa2dissite:

sudo a2dissite 000-default.conf

Настройки PHP

Далее нам нужно изменить объем памяти, предоставляемый Apache процессам PHP. Magento использует PHP практически для всего, что ему нужно, и ему необходим приличный объем памяти для сложных операций, таких как индексация продуктов и категорий. По умолчанию PHP выделяет максимум 128 МБ памяти для каждого скрипта, работающего на Apache. Мы должны увеличить это ограничение до разумного уровня, чтобы ни один из сценариев Magento не исчерпал память, что могло бы привести к сбою сценария.

Откройте файл конфигурации Apache PHP с вашим текстовым редактором и привилегиями root:

sudo nano /etc/php5/apache2/php.ini

Найдите следующую строку, в которой объявляется ограничение памяти для каждого скрипта PHP:

memory_limit = 128M

Измените эту строку, чтобы предел был увеличен до 512 МБ. Потребности в памяти вашего магазина могут быть выше в зависимости от количества товаров в вашем каталоге и количества посетителей, которых вы получаете ежедневно. Некоторым более крупным магазинам необходимо установить ограничение памяти на 2 ГБ или более, но 512 МБ должно быть достаточно.

memory_limit = 512M

Note: Обязательно используйте «M» в конце номера памяти.

Когда вы закончите вносить это изменение, сохраните и закройте файл. При следующем перезапуске Apache вступит в силу изменение ограничения памяти.

Magento нужна пара PHP-модулей в дополнение к тем, которые поставляются с PHP. Мы можем получить их непосредственно из репозиториев Ubuntu по умолчанию после того, как обновим наш индекс локального пакета:

sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt

Эти расширения позволят Magento правильно обрабатывать HTTP-запросы, миниатюры изображений и шифрование данных. Теперь, когда у нас есть все необходимые нам пакеты, мы можем включить поддержку перезаписи URL для Apache и поддержку шифрования для PHP:

sudo a2enmod rewrite
sudo php5enmod mcrypt

После внесения всех этих изменений в конфигурацию и расширение пора перезапустить экземпляр сервера Apache, чтобы изменения вступили в силу:

sudo service apache2 restart

[[step-2 -—- create-a-mysql-database-and-user]] == Шаг 2 - Создание базы данных MySQL и пользователя

Magento использует базу данных MySQL для управления данными сайта, такими как информация о продукте и заказе. Мы установили и настроили MySQL, но нам нужно создать базу данных и пользователя для работы с Magento.

Начните с входа в корневую учетную запись MySQL:

mysql -u root -p

Вам будет предложено ввести пароль учетной записи root MySQL, который вы установили при установке MySQL. После того, как правильный пароль будет введен, вы получите командную строку MySQL.

Во-первых, мы создадим базу данных, в которую Magento может записывать данные. В этом примере база данных будет называтьсяmagento, но вы можете назвать ее как хотите.

CREATE DATABASE magento;

Note: Каждый оператор MySQL должен заканчиваться точкой с запятой (;), поэтому убедитесь, что вы включили это, если у вас возникнут какие-либо проблемы.

Далее мы собираемся создать новую учетную запись пользователя MySQL, которая будет использоваться исключительно для работы с новой базой данных. Хорошей идеей является создание однофункциональных баз данных и учетных записей, поскольку они позволяют лучше контролировать разрешения и другие потребности безопасности.

Я собираюсь назвать новую учетную записьmagento_user и назначить ей парольpassword. Вы должны определенно использовать другое имя пользователя и пароль, так как эти примеры не очень безопасны.

CREATE USER magento_user@localhost IDENTIFIED BY 'password';

На данный момент у вас есть база данных и учетная запись пользователя, каждая из которых специально создана для Magento. Однако пользователь не имеет прав доступа к базе данных. Нам нужно связать два компонента вместе, предоставив нашим пользователям права доступа к базе данных:

GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';

Теперь, когда у пользователя есть доступ к базе данных, нам нужно сбросить привилегии, чтобы MySQL знал о последних изменениях привилегий, которые мы сделали. Как только это будет сделано, мы можем выйти из командной строки MySQL.

FLUSH PRIVILEGES;
exit

Теперь вы должны вернуться к обычной командной строке SSH.

[[step-3 -—- download-and-set-up-magento-files]] == Шаг 3 - Загрузите и установите файлы Magento

Теперь мы готовы загрузить и установить Magento. Чтобы узнать, что такое последняя стабильная версия Magento Community Edition, перейдите наcommunity download page. В этом примере текущий номер версии был 1.9.0.1, но вы должны заменить этот номер на последний доступный вам выпуск. Всегда рекомендуется использовать последнюю версию Magento, так как новые выпуски часто включают важные обновления безопасности в дополнение к новым и улучшенным функциям.

Используйтеwget, чтобы загрузить файловый архив Magento в свой домашний каталог:

cd ~
wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz

Мы можем извлечь заархивированные файлы, чтобы восстановить каталог Magento с помощьюtar:

tar xzvf magento-1.9.0.1.tar.gz

Теперь в вашем домашнем каталоге будет каталог с именемmagento. Нам нужно переместить распакованные файлы в корневой каталог документов Apache, где они будут доступны посетителям нашего веб-сайта. Мы будем использоватьrsync для передачи туда наших файлов Magento, посколькуrsync будет включать важные скрытые файлы, такие как.htaccess. После завершения передачи мы можем очистить наш домашний каталог, удалив папкуmagento и заархивировав ее.

sudo rsync -avP ~/magento/. /var/www/html/
rm -rf ~/magento*

rsync безопасно скопирует все содержимое из распакованного вами каталога в корень документа/var/www/html/. Теперь нам нужно присвоить права собственности на файлы и папки пользователю и группе Apache:

sudo chown -R www-data:www-data /var/www/html/

Это изменение позволит Apache создавать и изменять файлы Magento. Теперь мы готовы завершить процесс установки через интерфейс конфигурации на основе браузера Magento.

[[step-4 -—- complete-installation-through-the-web-interface]] == Шаг 4. Завершение установки через веб-интерфейс

Чтобы получить доступ к веб-интерфейсу через браузер, перейдите к доменному имени или общедоступному IP-адресу сервера:

http://server_domain_name_or_IP/

Если предыдущие шаги были выполнены правильно, вы увидите мастер установки Magento. На первой странице отобразится лицензионное соглашение, с которым вам нужно будет согласиться, прежде чем вы нажметеContinue.

Magento Installation Wizard

На следующей странице вы можете изменить настройки локали, такие как язык, часовой пояс и валюта. Измените их на настройки, наиболее подходящие для того места, где продаются ваши продукты, затем нажмитеContinue.

Magento Localization Settings

Страница конфигурации разбита на три раздела. В первом разделе вы можете настроить подключение Magento к своей базе данных MySQL. Убедитесь, что дляDatabase Type установлено значение «MySQL», а дляHost установлено значение «localhost». Затем вам нужно будет заполнитьDatabase Name,User Name иUser Password настройками, которые вы выбрали при создании базы данных MySQL и учетной записи пользователя ранее.

Magento Database Connection

В следующем разделе на странице «Конфигурация» вы можете настроить URL вашего магазина вместе с парой других функций, контролируемых Apache. Убедитесь, чтоBase URL совпадает с доменным именем вашего сервера; Если у вас еще не настроено доменное имя, вы можете использовать публичный IP-адрес своего сервера. Рекомендуется изменитьAdmin Path на что-нибудь менее очевидное, чем «admin», чтобы кому-то было труднее найти вашу панель администратора. Вам также следует рассмотреть возможность проверкиUse Web Server (Apache) Rewrites, чтобы сделать URL-адреса вашего сайта более удобными для пользователей и поисковых систем. Модуль Apache, необходимый для поддержки этой функции,mod_rewrite, уже включен и готов к использованию.

Magento Web Access Options

Последняя часть страницы конфигурации предназначена для выбора способа хранения данных сеанса. Magento поставляется с двумя способами сохранения пользовательских данных сессии. МетодFile System сохраняет сеансы в файлах на сервере и является самым простым методом для начала. МетодDatabase сохраняет сеансы как записи в базе данных MySQL и идеально подходит для установок Magento, которые охватывают несколько серверов. На данный момент мы можем придерживаться методаFile System, поскольку он обычно работает лучше из коробки.

Magento Session Storage Options

Выбрав параметры конфигурации и нажавContinue, вы перейдете на страницу создания учетной записи администратора. Здесь вы создадите административную учетную запись, отвечающую за обслуживание магазина Magento. Убедитесь, что имя пользователя и пароль безопасны и их трудно угадать. ПолеEncryption Key следует оставить пустым, если вы не переносите данные из существующей установки Magento. Если вы оставите поле пустым, Magento сгенерирует новый ключ шифрования, когда вы нажметеContinue, и отобразит его для вас на следующей странице. Обязательно сохраните этот ключ шифрования в безопасном месте на случай, если он понадобится вам позже.

Magento Admin Account

После завершения веб-конфигурации ваша установка Magento будет готова к использованию. Проверьте новую витрину магазина, посетив доменное имя вашего сервера или общедоступный IP-адрес в веб-браузере:

http://server_domain_name_or_IP/

Если все настроено правильно, вы должны увидеть витрину, которая выглядит примерно так:

Magento Storefront

Вы также можете посетить свой новый сайт администратора, перейдя в каталог администратора, который вы установили ранее:

http://server_domain_name_or_IP/admin/

Войдите под своим именем пользователя и паролем администратора, чтобы увидеть новую панель инструментов:

Magento Admin Dashboard

Заключение

Теперь, когда ваш магазин Magento запущен и работает, вы готовы приступить к созданию каталога вашего проекта и начать продажи!

Следующий важный шаг - шифрование трафика вашего сайта с помощью SSL-сертификата. Вот руководство, которое поможет вам начать работу:How To Install an SSL Certificate from a Commercial Certificate Authority.