Инфо Гайд настройка VPS для Prestashop 1.7 для новичков

Тема в разделе "PrestaShop", создана пользователем Azarn1k, 12 ноя 2017.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. Azarn1k

    Azarn1k

    Регистр.:
    2 сен 2012
    Сообщения:
    155
    Симпатии:
    94
    Методом проб и ошибок сервер был настроен.
    Вожможно кому то пригодится этот Гайд.
    В этом гайде VPS настраивался на Linode, вы можете использовать любой другой. Среди часто упоминаемых DigitalOcean, UA-hosting.company.
    Мы заказали и оплатили VPS на CentOS 7.

    1. Общая настройка системы.
    2. Установка PHP 7 и PHP-FPM
    3. PHP + MariaDB (MySQL)
    4. Установка phpMyAdmin
    5. Установка Memcached
    6. Установка Mcrypt, Zip, Curl, GD, PDO
    7. Postfix
    8. Конфигурация сервера
    9. Создаем каталоги для сайта
    10. Получение бесплатного сертификата Let's Encrypt

    Тема будет редактироватся и наполнятся.
     
    Последнее редактирование: 12 ноя 2017
    Makar0n, evgenij.sobolev, etreyo и 6 другим нравится это.
  2. Azarn1k

    Azarn1k

    Регистр.:
    2 сен 2012
    Сообщения:
    155
    Симпатии:
    94
    Общая настройка системы.

    Обновляем CentOS:
    Код:
    yum update
    Устанавливаем репозиторий EPEL:
    Код:
    yum install epel-release
    Настраиваем время:
    Код:
    yum install ntpdate
    ДЛЯ РОССИИ
    Код:
    \cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
    Код:
    ntpdate ru.pool.ntp.org
    ДЛЯ УКРАИНЫ
    Код:
    \cp /usr/share/zoneinfo/Europe/Kiev/etc/localtime
    Код:
    ntpdate ua.pool.ntp.org
    Настраиваем cron для автоматической синхронизации времени:
    Код:
    crontab -e
    И настраиваем запуск задания ежедневно в 00:00:
    ДЛЯ РОССИИ
    Код:
    0 0 * * * /sbin/ntpdate ru.pool.ntp.org
    ДЛЯ УКРАИНЫ
    Код:
    0 0 * * * /sbin/ntpdate ua.pool.ntp.org
    Отключаем SELinux:
    Код:
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
    Код:
    setenforce 0
    Открываем необходимые порты в брандмауэре:
    Код:
    firewall-cmd --permanent --add-port=80/tcp
    Код:
    firewall-cmd --permanent --add-port=443/tcp
    Код:
    firewall-cmd --permanent --add-port=8080/tcp 
    Код:
    firewall-cmd --permanent --add-port=20-21/tcp
    Код:
    firewall-cmd --permanent --add-port=40900-40999/tcp
    Код:
    firewall-cmd --permanent --add-port=25/tcp
    Код:
    firewall-cmd --permanent --add-port=465/tcp
    Код:
    firewall-cmd --permanent --add-port=587/tcp 
    Код:
    firewall-cmd --reload
    * 80, 443 и 8080 порты для веб-сервера; 20, 21 порты нужны для работы FTP; 40900-40999 также необходимы для работы FTP (динамические порты для пассивного режима); 25, 465 и 587 порты нужны для работы почтового сервера по SMTP; последняя команда перезапускает firewalld, чтобы применить новые правила.
    Установка NGINX
    Код:
    nano /etc/yum.repos.d/nginx.repo
    Код:
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    Код:
    yum install nginx
    Внесем небольшую корректировку в файл nginx.conf:
    Код:
    nano etc/nginx/nginx.conf
    Код:
    http {
        ...
        server_names_hash_bucket_size 64;
        ....
    }
    * на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.

    Код:
    systemctl enable nginx
    Код:
    systemctl start nginx
    Проверим, что веб-сервер работает. Для этого открываем браузер и вводим в адресной строке IP-адрес сервера. В итоге мы должны увидеть заголовок «Welcome to nginx!»:
    <-------------- добавлено через 65 сек. -------------->
    Установка PHP 7 и PHP-FPM

    Устанавливаем репозиторий на webtatic.com:
    Код:
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    
    Теперь устанавливаем php7:
    Код:
    yum install php70w
    Проверить рабочую версию php можно следующей командой:
    Код:
    php -v
    Код:
    yum install php70w-fpm php70w-opcache
    Настройка связки NGINX + PHP
    Код:
    nano /etc/nginx/nginx.conf
    В секции location редактируем параметр index на следующее значение:
    Код:
        location / {
            index  index.php;
        }
    А внутри секции server добавим следующее:
    Код:
        location ~ \.php$ {
            set $root_path /usr/share/nginx/html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }
    * где /usr/share/nginx/html — корневой путь хранения скриптов; 9000 — порт php-fpm.
    Проверяем правильность настроек nginx:
    Код:
    nginx -t
    И перезагружаем его:
    Код:
    systemctl restart nginx
    Заходим в каталог хранения настроенного сайта:
    Код:
    cd /usr/share/nginx/html
    Создаем index.php со следующим содержимым:
    Код:
    nano index.php
    PHP:
    <?php phpinfo(); ?>
    Открываем в браузере IP-адрес нашего сервера. Теперь мы должны увидеть сводную информацию по PHP и его настройкам:
    Установка MariaDB:
    Устанавливаем MariaDB следующей командой:
    Код:
    yum install mariadb mariadb-server
    * для установки mysql выполняем команду yum install mysql
    Разрешаем автозапуск и запускаем СУБД:
    Код:
    systemctl enable mariadb
    Код:
    systemctl start mariadb
    * для работы с mysql меняем mariadb на mysql.
    Сразу создаем пароль для учетной записи root:
    Код:
    mysqladmin -u root password
    <-------------- добавлено через 65 сек. -------------->
    PHP + MariaDB (MySQL)

    Для возможности подключаться к базе данных скриптами PHP необходимо установить следующие модули:

    Код:
    yum install php70w-mysql
    После перезагружаем php-fpm:
    Код:
    systemctl restart php-fpm
    И открываем наш сайт в браузере. В phpinfo появится новая секция MySQL.

    * нас не должно смущать, что установили мы mariadb, а заголовок mysql. Если посмотреть в таблицу, можно увидеть ячейку Client API version, в которой указано, что используется именно mariadb.
    <-------------- добавлено через 62 сек. -------------->
    Установка phpMyAdmin

    Для установки phpMyAdmin вводим следующую команду:
    Код:
    yum install phpmyadmin
    Теперь создадим для него отдельный виртуальный домен в NGINX:

    Код:
    nano /etc/nginx/conf.d/phpmyadmin.conf
    И добавим в него следующее содержимое:

    Код:
    server {
            listen       80;
            server_name  phpmyadmin.mydomain.com;
            set $root_path /usr/share/phpmyadmin;
    
            location / {
                    root $root_path;
                    index index.php;
            }
    
            location ~ \.php$ {
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
                    include fastcgi_params;
                    fastcgi_param DOCUMENT_ROOT $root_path;
            }
    }
    * где phpmyadmin.dmosk.local — адрес для виртуального домена, именно этот адрес должен быть введен в адресную строку браузера, чтобы открылся нужный сайт. Поэтому есть нет возможность зарегистрировать домен и имя узла в DNS, можно воспользоваться локальным файлом hosts. /usr/share/phpmyadmin — это каталог, в который по умолчанию устанавливается phpMyAdmin.

    После перезапускаем NGINX:

    Код:
    systemctl reload nginx
    Также нужно перезапустить php-fpm, так как в процессе установки был добавлен модуль mbstring:
    Код:
    systemctl restart php-fpm
    И открываем в браузере наш домен, в данном примере, phpmyadmin.mydomain.com. Откроется форма для авторизации — вводим логин root и пароль, который мы указали после установки и запуска mariadb.
    <-------------- добавлено через 65 сек. -------------->
    Установка Memcached

    Для начала, выполняем установку пакетов:

    Код:
    yum install php70w-pecl-memcached
    После разрешаем автозапуск и запускаем сервис кэширования:

    Код:
    systemctl enable memcached
    Код:
    systemctl start memcached
    Перезапускаем php-fpm:

    Код:
    systemctl restart php-fpm
    <-------------- добавлено через 60 сек. -------------->
    Установка Mcrypt, Zip, Curl, GD, PDO

    Код:
    yum install php70w-mcrypt
    Код:
    yum install zip unzip
    Код:
    yum install php70w-common
    Код:
    yum install php70w-gd
    Код:
    yum install php70w-pdo
    <-------------- добавлено через 67 сек. -------------->
    Postfix

    В CentOS 7 postfix уже установлен и запущен. Нам необходимо сделать несколько простых настроек:

    Код:
    nano /etc/postfix/main.cf
    Код:
    myorigin = $mydomain
    smtp_generic_maps = hash:/etc/postfix/generic_map
    * где myhostname — имя узла для почтового сервера (его он будет использовать в представлениях другим почтовым серверам); mydomain — домен сервера; myorigin — имя домена, которое будет подставляться всем отправляемым сообщениям без явного указания оного; smtp_generic_maps указывает на карту с общими правилами пересылки.

    Открываем карту пересылки:

    Код:
    nano /etc/postfix/generic_map
    И добавляем:

    Код:
    @mydomain.com    no-reply@mydomain.com
    * данной настройкой мы будем подставлять всем отправляемым письмам без поля FROM адрес no-reply@mydomain.com

    Создаем карту:

    Код:
    postmap /etc/postfix/generic_map
    Для применения настроек перезагружаем почтовый сервер:
    Код:
    systemctl restart postfix
    <-------------- добавлено через 64 сек. -------------->
    Конфигурация сервера:

    PHP

    Открываем на редактирование следующий файл:

    Код:
    nano /etc/php.ini
    И правим следующее:

    Код:
    upload_max_filesize = 256M
    post_max_size = 256M
    short_open_tag = On
    date.timezone = "Europe/Moscow"
    Перезапускаем php-fpm
    Код:
    systemctl restart php-fpm
    NGINX

    Открываем на редактирование следующий файл:

    Код:
    nano /etc/nginx/nginx.conf
    И правим следующее:

    Код:
    worker_processes  auto;
    И внутри секции http добавляем:

    Код:
    client_max_body_size 256M;
    Код:
    systemctl restart nginx
    Подключаем домен магазина:

    Создаем новый файл виртуального домена NGINX:
    Код:
    nano /etc/nginx/conf.d/prestashopstore.conf
    * обязательно на конце должен быть .conf, так как только такие файлы веб-сервер подгружает в конфигурацию.

    И добавляем следующее содержимое:

    Код:
    server {
        listen 80;
        listen [::]:80;
        server_name prestashopstore.com www.prestashopstore.com;
        root /var/www/prestashopstore/www;
        access_log /var/www/prestashopstore/log/nginx/access.log;
        error_log /var/www/prestashopstore/log/nginx/error.log;
    
        index index.php index.html;
       
        location ~ /.well-known {
        root /var/www/prestashopstore/www/;
        allow all;
        }
        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }
        location = /robots.txt {
            auth_basic off;
            allow all;
            log_not_found off;
            access_log off;
        }
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
        gzip on;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 1;
        gzip_buffers 16 8k;
        gzip_http_version 1.0;
        gzip_types application/json text/css application/javascript;
       
        rewrite ^/[a-zA-Z][a-zA-Z]/(index\.php.*)$ /$1 last;
        rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
        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;
        location /admin-dev/ {
            if (!-e $request_filename) {
                rewrite ^/.*$ /admin-dev/index.php last;
            }
        }
        location / {
            if (!-e $request_filename) {
                rewrite ^/.*$ /index.php last;
            }
        }
        location ~ .php$ {
            fastcgi_split_path_info ^(.+.php)(/.*)$;
            try_files $uri =404;
            fastcgi_keep_conn on;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }
    }
    * где prestashopstore.com — домен, для которого создается виртуальный домен; /var/www/prestashopstore — каталог, в котором будет размещаться сайт.
    ** обратите внимание на выделения полужирным — здесь нужно подставить свои данные.
    *** Заменить admin-dev на свой путь к панели управления.
    <-------------- добавлено через 70 сек. -------------->
    Создаем каталоги для сайта:

    Код:
    TMP_SITE=prestashopstore
    * где prestashopstore — имя каталога. Нам будет намного удобнее копировать и вставлять команды с переменной (не придется править после копипасты).
    Код:
    mkdir -p /var/www/$TMP_SITE/{www,tmp}
    Код:
    mkdir -p /var/www/$TMP_SITE/log/{nginx}
    Создаем индексный файл со следующим содержимым:

    Код:
    nano /var/www/$TMP_SITE/www/index.php
    Код:
    <?php echo "<h1>Hello from Prestashopstore</h1>"; ?>
    Проверяем корректность настроек конфигурационных файлов:

    Код:
    nginx -t
    Перезапускаем веб-сервер:
    Код:
    systemctl reload nginx
    Открываем сайт в браузере.

    Устанавливааем Prestashop.
    <-------------- добавлено через 64 сек. -------------->
    Получение бесплатного сертификата Let's Encrypt

    Запрашивать сертификат Let's Encrypt проще всего с веб-сервера, на котором запущен сайт для домена. Возможен альтернативный вариант с монтирование сетевой папки, но его рассматривать не будем.

    Устанавливаем утилиту certbot.

    Код:
    yum install certbot
    Код:
    certbot certonly --webroot --agree-tos --email postmaster@prestashopstore.com --webroot-path /var/www/prestashopstore/www -d prestashopstore.com -d www.prestashopstore.com
    * где:

    certonly — запрос нового сертификата;
    webroot — проверка будет выполняться на основе запроса к корню сайта;
    agree-tos — даем согласие на лицензионное соглашение;
    email — почтовый адрес администратора домена;
    webroot-path — каталог в системе Linux, который является корневым для сайта;
    d — перечисление доменов, для которых запрашиваем сертификат.

    После успешного выполнения команды, сертификаты будут созданы в каталоге /etc/letsencrypt/archive/prestashopstore.com, а также симлинки на них в каталоге /etc/letsencrypt/live/prestashopstore.com. При настройке приложений, стоит указывать пути до симлинков, так как при обновлении файлы в первом каталоге будут меняться, во втором — нет. Публичный ключ будет с именем cert.pem, а приватный — privkey.pem.

    Автоматическое продление

    Смотрим полный путь до скрипта certbot:

    Код:
    which certbot
    Открываем на редактирование cron и добавляем следующее:

    Код:
    crontab -e

    0 0 * * 1,4 /usr/bin/certbot renew

    * в данном примере проверка и продление сертификата будет выполняться по понедельникам и четвергам (1,4) в 00:00. /usr/bin/certbot — путь, который мне выдала команда which certbot.

    Команда certbot renew проверяет для всех наших сертификатов срок окончания, и если осталось менее 30 дней, запрашивает новый, сохраняет его в каталоге /etc/letsencrypt/archive/<домен> и обновляет симлинк.

    Редактируем настройки виртуального домена
    Код:
    nano /etc/nginx/conf.d/prestashopstore.conf
    После последней скобки добавляем конфигурацию:
    Код:
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/prestashopstore/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/prestashopstore/privkey.pem;
        server_name prestashopstore.com www.prestashopstore.com;
        root /var/www/prestashopstore/www;
        access_log /var/www/prestashopstore/log/nginx/access.log;
        error_log /var/www/prestashopstore/log/nginx/error.log;
    
        index index.php index.html;
       
        location ~ /.well-known {
        root /var/www/prestashopstore/www/;
        allow all;
        }
        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }
        location = /robots.txt {
            auth_basic off;
            allow all;
            log_not_found off;
            access_log off;
        }
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
        gzip on;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 1;
        gzip_buffers 16 8k;
        gzip_http_version 1.0;
        gzip_types application/json text/css application/javascript;
       
        rewrite ^/[a-zA-Z][a-zA-Z]/(index\.php.*)$ /$1 last;
        rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
        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;
        location /admin-dev/ {
            if (!-e $request_filename) {
                rewrite ^/.*$ /admin-dev/index.php last;
            }
        }
        location / {
            if (!-e $request_filename) {
                rewrite ^/.*$ /index.php last;
            }
        }
        location ~ .php$ {
            fastcgi_split_path_info ^(.+.php)(/.*)$;
            try_files $uri =404;
            fastcgi_keep_conn on;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }
    }
    Теперь Prestashop работает как по HTTP так и по HTTPS по протоколу HTTP2.
    Переходим в Панель управления магазином. В настройках включаем SSL.
     
    MockoB, silenty, Anvar6120 и 8 другим нравится это.
  3. Alexpro2011

    Alexpro2011 Постоялец

    Регистр.:
    11 дек 2012
    Сообщения:
    122
    Симпатии:
    266
    Один вопрос, почему(зачем) используете Машу вместо Мускуля?
     
    _sashok нравится это.
  4. Azarn1k

    Azarn1k

    Регистр.:
    2 сен 2012
    Сообщения:
    155
    Симпатии:
    94
    Сам не разбирался в чем особенности. Пишут что развивается быстрее, поддерживает все то же что и мускул. В гайде описано как вместо mariadb ставить mysql.
     
    trace, fortuner и _sashok нравится это.
  5. fortuner

    fortuner

    Регистр.:
    26 июн 2012
    Сообщения:
    550
    Симпатии:
    858
    Спасибо, это супер-полезная тема!:beer:

    А можно еще узнать, как назначить каждому домену свой ip?
    И как правильно прописать конфиг для мультишопа?
    И есть ли переадресация с www на без-www?
     
    _sashok нравится это.
  6. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    274
    Симпатии:
    112
    Пробежался краем глаза...

    Почему не взять remi repo, имхо, он более предсказуем. Плюс php71, плюс есть смысл обновлять марию до 10.x

    Для HTTP2 нужно собирать nginx с поддержкой ALPN. Или искать готовый репозиторий - парочку публичных видел, но для себя, любимого, держу свой.

    Есть смысл заменить на acme-client

    Да, и memcached сразу прибивать к 127.0.0.1 или к сокету, по дефолту он слушает везде и при открытом фаерволле (мало ли что бывает) может быть источником неприятностей. Например
    Код:
    PORT="11211"
    USER="memcached"
    MAXCONN="2024"
    CACHESIZE="2096"
    OPTIONS="-l 127.0.0.1"
     
    mrjohn, _sashok и GiT нравится это.
  7. Azarn1k

    Azarn1k

    Регистр.:
    2 сен 2012
    Сообщения:
    155
    Симпатии:
    94
    Я не говорю что это лучший мануал и 100% верный. Дело в том что если делать все по нему то магазин 100% работает.
    На webstatic так же есть php 7.1. Пишут что 7.1 пока рановато использовать с prestashop 1.7 + есть нюансы с работой функционала магазина и сторонних модулей.
    Я дополню гайд возможностью утсановки 7.1

    По поводу HTTP2 и nginx. то с такой конфигурацией HTTP2 работает отлично и проходит успешно тест.

    Заменой на acme-client конфиг memcached дополню гайд позже.
     
    _sashok нравится это.
  8. Jame

    Jame

    Регистр.:
    16 июл 2012
    Сообщения:
    371
    Симпатии:
    190
    Интересно а 1.6 взлетит по этому гайду или нет ?
     
    Последнее редактирование: 13 ноя 2017
    _sashok нравится это.
  9. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    274
    Симпатии:
    112
    Это просто рекомендации.
    И лучше заменить
    Код:
        location / {
            if (!-e $request_filename) {
                rewrite ^/.*$ /index.php last;
            }
    На
    Код:
     location / {
    try_files $uri $uri/ /index.php$uri&$args;
    }
    
    admin-dev аналогично
     
  10. iden86

    iden86 Создатель

    Регистр.:
    30 окт 2017
    Сообщения:
    26
    Симпатии:
    11
    Сам пришел к примерно такой же конфигурации, методом проб и ошибок. Только у меня freebsd и mysql. Вопрос про Memcached, стоит ли ставить, заметен какой то прирост по скорости?