
PrestaShop — это бесплатная платформа электронной коммерции с открытым исходным кодом. Она основана на PHP и MySQL и может быть расширена бесплатными и платными плагинами и темами.
Благодаря таким функциям, как интуитивно понятный административный интерфейс, несколько платежных шлюзов, многоязычность, аналитика и отчетность, PrestaShop является платформой, которую выбирают многие интернет-торговцы.
В этом руководстве мы покажем вам, как установить PrestaShop на сервер Ubuntu 18.04. Мы будем использовать Nginx в качестве веб-сервера, последнюю версию PHP 7.2 и MySQL/MariaDB в качестве сервера базы данных.
Предпосылки
Прежде чем продолжить изучение этого руководства, убедитесь, что выполнены следующие предварительные условия:
- Укажите доменное имя, указывающее на IP-адрес вашего публичного сервера. Мы будем использовать
example.com. - Nginx устанавливается на ваш сервер Ubuntu, следуя этим инструкциям .
- SSL-сертификат, установленный для вашего домена, для шифрования данных пользователя. Вы можете установить бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям .
Обновите системные пакеты до последних версий и установите утилиту unzip :
sudo apt update && sudo apt upgradesudo apt install unzip
Создание базы данных MySQL
PrestaShop хранит свою информацию в базе данных MySQL.
Если на вашем сервере установлены MySQL или MariaDB , вы можете пропустить этот шаг. В противном случае установите пакет сервера MySQL 5.7 из стандартных репозиториев Ubuntu, выполнив команду:
sudo apt install mysql-server mysql-client
Для новых установок MySQL рекомендуется выполнить команду mysql_secure_installation , чтобы повысить безопасность вашего сервера MySQL.
Чтобы создать базу данных, войдите в оболочку mysql:
sudo mysql
В оболочке MySQL выполните следующий оператор SQL, чтобы создать новую базу данных с именем prestashop :
CREATE DATABASE prestashop;
Затем создайте учетную запись пользователя MySQL с именем prestashop и предоставьте пользователю необходимые разрешения, выполнив следующую команду:
GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Не забудьте изменить change-with-strong-password на надежный пароль.
После этого выйдите из консоли MySQL, введя:
EXIT;
Установка и настройка PHP
PHP 7.2 — версия PHP по умолчанию в Ubuntu 18.04, она полностью поддерживается и рекомендуется для PrestaShop.
Выполните следующую команду для установки PHP и всех необходимых модулей PHP:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap
После завершения установки служба PHP-FPM запустится автоматически. Вы можете проверить это, введя:
sudo systemctl status php7.2-fpm
Вывод должен выглядеть примерно так:
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-03-24 11:53:33 PDT; 14s ago Docs: man:php-fpm7.2(8) Main PID: 15853 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Выполните следующие команды sed , чтобы задать рекомендуемые параметры PHP:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
Загрузка PrestaShop
На момент написания статьи последней стабильной версией PrestaShop является версия 1.7.6.2 .
Загрузите последнюю версию PrestaShop со страницы загрузок PrestaShop с помощью следующей команды wget :
cd /tmpwget https://download.prestashop.com/download/releases/prestashop_1.7.6.2.zip
После завершения загрузки создайте каталог, в котором будут храниться файлы PrestaShop:
sudo mkdir -p /var/www/html/example.com
Далее извлеките архив PrestaShop :
unzip prestashop_*.zip
Этот архив содержит ещё один zip-файл «prestashop.zip», содержащий все файлы PrestaShop. Распакуйте файлы в корневой каталог документов домена:
sudo unzip prestashop.zip -d /var/www/html/example.com
Установите правильные разрешения, чтобы веб-сервер имел полный доступ к файлам и каталогам сайта, с помощью следующей команды chown :
sudo chown -R www-data: /var/www/html
Настройка Nginx
К настоящему моменту на вашем сервере Ubuntu уже должен быть установлен Nginx с SSL-сертификатом. Если нет, проверьте предварительные требования для этого руководства.
Откройте текстовый редактор и создайте следующий файл:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80 ; listen 443 ssl http2 ; server_name example.com www.example.com ; root /var/www/html/example.com ; index index.php ; # SSL parameters 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 ; include snippets/ssl.conf ; include snippets/letsencrypt.conf ; # Cloudflare / Max CDN fix location ~ * .(eot|otf|ttf|woff(?:2)?) $ { add_header Access-Control-Allow-Origin * ; } # Do not save logs for these location = /favicon.ico { auth_basic off ; allow all ; log_not_found off ; access_log off ; } location = /robots.txt { auth_basic off ; allow all ; log_not_found off ; access_log off ; } # Images rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$1$2$3.jpg last ; rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$1$2$3$4.jpg last ; rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$3/$1$2$3$4$5.jpg last ; rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$3/$4/$1$2$3$4$5$6.jpg last ; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last ; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last ; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last ; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg $ /img/p/ $1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last ; rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg $ /img/c/ $1$2$3.jpg last ; rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg $ /img/c/ $1$2.jpg last ; # AlphaImageLoader for IE and fancybox rewrite ^images_ie/?([^/]+).(jpe?g|png|gif) $ js/jquery/plugins/fancybox/images/ $1.$2 last ; # Web service API rewrite ^/api/?(.*) $ /webservice/dispatcher.php?url= $1 last ; # Installation sandbox rewrite ^(/install(?:-dev)?/sandbox)/(.*) / $1/test.php last ; #Change this block to your admin folder location /admin_CHANGE_ME { if (!-e $request_filename ) { rewrite ^/.* $ /admin_CHANGE_ME/index.php last ; } } # File security # .htaccess .DS_Store .htpasswd etc location ~ /. { deny all ; } # Source code directories location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ { deny all ; } # Prevent exposing other sensitive files location ~ .(yml|log|tpl|twig|sass)$ { deny all ; } # Prevent injection of php files location /upload { location ~ .php$ { deny all ; } } location /img { location ~ .php$ { deny all ; } } # PHP FPM part location ~ .php$ { include snippets/fastcgi-php.conf ; fastcgi_pass unix:/run/php/php7.2-fpm.sock ; } }
Не забудьте заменить example.com на ваш домен PrestaShop, а «admin_CHANGE_ME» — на ваш каталог admin. Имя каталога можно узнать, просмотрев содержимое корневого каталога PrestaShop:
sudo ls -l /var/www/html/example.com | grep admin
Также убедитесь, что вы используете правильный путь к файлам SSL-сертификата. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве .
Перед перезапуском службы Nginx проверьте конфигурацию на наличие синтаксических ошибок:
sudo nginx -t
Вывод должен выглядеть так:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, перезапустите службу Nginx , введя:
sudo systemctl restart nginx
Установка PrestaShop
Теперь, когда PrestaShop загружен и настройка сервера завершена, вы можете завершить установку через веб-интерфейс.
Откройте браузер, введите свой домен, и появится экран, подобный следующему:

Выберите нужный вам язык и нажмите кнопку «Далее».
На следующем экране вам будет представлено лицензионное соглашение PrestaShop. Ознакомьтесь с ним и выберите «Я согласен с вышеуказанными условиями». Чтобы продолжить:

Далее вы увидите следующую информационную страницу:

Убедитесь, что выполнены все требования по предустановке и ваша система совместима с PrestaShop.
На следующем экране вам потребуется ввести данные вашего магазина. Адрес электронной почты — это имя пользователя для доступа к панели управления PrestaShop.

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

Нажмите кнопку «Далее», и установка начнется:

Установка может занять несколько минут. После ее завершения откроется следующая страница с сообщением об установке PrestaShop.

В целях безопасности вам необходимо удалить каталог установки. Для этого вернитесь в терминал и введите следующую команду rm :
sudo rm -rf /var/www/html/example.com/install
Чтобы получить доступ к панели управления PrestaShop, нажмите кнопку «Управление магазином». Введите адрес электронной почты и пароль, и вы будете перенаправлены на панель управления.
Отсюда вы можете начать настраивать установку PrestaShop и добавлять новые продукты.
Заключение
Вы успешно установили PrestaShop на свой сервер Ubuntu 18.04. Документация PrestaShop — хорошая отправная точка для получения дополнительной информации об управлении установкой PrestaShop.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
ubuntu prestashop mysql php nginx электронная коммерция
Связанные руководства
- Как установить OpenCart на Ubuntu 18.04
- Как установить Magento 2 на Ubuntu 18.04
- Как установить phpMyAdmin с Nginx в Ubuntu 18.04
- Как установить и настроить Redmine в Ubuntu 18.04
- Как установить phpMyAdmin с Nginx на CentOS 7
- Как установить и защитить phpMyAdmin с помощью Apache в Ubuntu 18.04
- Как установить WordPress с Nginx в Ubuntu 18.04