Помогите настроить Centos 6 32bit под связку php-fpm nginx mysql + magento2

Тема в разделе "Администрирование серверов", создана пользователем typus, 19 фев 2018.

Модераторы: mefish
  1. typus

    typus

    Регистр.:
    25 июл 2007
    Сообщения:
    748
    Симпатии:
    199
    Приветствую, получил по случаю vps для тестов, выбрать ос не могу, там уже centos 6 установлена.
    Если ставить lemp по дефолту,то встают версии, не совместимые с magento2.
    Ну вот конечно как бы информация есть, даже официально на магенто-дев-хелпе,
    вроде все встает, php70-fpm без проблем, а вот mysql- ставится без ошибок, но не запускается, при чем, что 5.6 что 5.7, одинаково -
    service mysqld start
    MySQL Daemon failed to start.
    С Centos вообще первый раз, на убунту и дебиан не раз все это ставил и приводил в более менее рабочее состояние, а тут что то встрял...
    Буду признателен за помощь.
     
  2. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    284
    Симпатии:
    118
    Начать с чтения логов. Ну и юзать вменяемые репозитории, например
    Код:
    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
    yum install yum-utils
    yum-config-manager --enable remi-php71
    yum install php php-memcached memcahced php-imagick php-opcache и т.д. 
    Ну и mysql (или mariadb) соответственно. Ошибки и их решение ищем в логах.
     
    Последнее редактирование: 19 фев 2018
    metsys нравится это.
  3. typus

    typus

    Регистр.:
    25 июл 2007
    Сообщения:
    748
    Симпатии:
    199
    нашел в логах mysqld следующие ошибки
    Код:
    2018-02-19 10:48:30 10358 [ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
    2018-02-19 10:48:30 10358 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
    2018-02-19 10:48:30 10358 [ERROR] Plugin 'InnoDB' init function returned error.
    2018-02-19 10:48:30 10358 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    2018-02-19 10:48:30 10358 [ERROR] Unknown/unsupported storage engine: InnoDB
    2018-02-19 10:48:30 10358 [ERROR] Aborting
    
    Первая запись в гугле предлагает огромное кол-во решений, мне помогло следующеe:
    не очень понимаю пока, насколько решение корректно, но работает. Сегодня попробую установить magento, по результату отпишусь.
     
  4. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    284
    Симпатии:
    118
    Вообще достаточно было грохнуть ibdata1 и ib_logfile* и рестрартануть mysql, раз уж свежая установка.
     
  5. typus

    typus

    Регистр.:
    25 июл 2007
    Сообщения:
    748
    Симпатии:
    199
    в общем, не знаю, возможно, из-за того, что впервые с этой centos, но интуитивно она определенно непонятнее и сложнее ubuntu или debian. Как по мне.
    Магента не ставится, хоть убейся. Сегодня выходной, убил его считай весь целиком на это дело, как бы подумалось, что некоторые манипуляции с новой неизведанной ОС будут полезны. В конце дня не выдержал, сбросил ос на ноль снапшот, итак:
    1.Имеется девственно чистая centos 6x32 -2.6.32-642.13.1.el6.i686 #1 SMP Wed Jan 11 20:21:04 UTC 2017 i686 i686 i386 GNU/Linux
    2. Основная задача - настроить php-fpm nginx mysql под magento 2.1 - это важно, т.к. под 2.1 не пойдет php-7.1, только 7.0, конкретно текущая вроде бы 7.0.27 подойдет. Поэтому yum-config-manager --enable remi-php71 - не для моего случая.
    3. mysql тоже подойдет не всякая версия, но 5.6 или 5.7 нормально.
    Может кто наведет на вменяемую howto - сколько сегодня пересмотрел - труба, на centos 7 в основном, на 6 - слезы и то все не работает как надо.
    Или может модераторы переместят тему в раздел по магенто2, если там место ей больше там чем тут...
     
  6. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    284
    Симпатии:
    118
    Ничуть. По факту, меняется только расположение конфигов и пакетный менеджер. А софт весь один и тот же, и ошибки типичны.

    Поэтому делаем yum-config-manager --enable remi-php70. Это сложно? Да нет, это в официальном репозитории, тут не надо никаких манов, кроме знания английского, хотя бы на уровне чтения.

    Все работает как надо и работает годами. Если не хватает знаний, то нечего на зеркало пенять - ставим vestacp, апргрейдим php до версии 7.0 по способу выше, создаем пользовательскую учетку и заливаем сайт. Работы - на 15 минут.
     
  7. typus

    typus

    Регистр.:
    25 июл 2007
    Сообщения:
    748
    Симпатии:
    199
    Думаете, я не додумался до этого первым делом? Конечный результат такой, что я целый день танцую вокруг этого костра, все в конце концов ставится, но магента так и не завелась. Конечно, где то ошибся.
    я не пеняю не на что и ни на кого. Я высказал свое мнение - для меня лично эта ос и ubuntu как земля и небо.
    Большой необходимости вникать в нее нет никакого смысла, все проекты на deb системах.
    Так что будет время, посмотрю, может что и соберу, не будет - да и пофиг. Я понял что centos не мое.
    Спасибо за помощь, и просто забудьте.
     
    Последнее редактирование: 21 фев 2018
  8. typus

    typus

    Регистр.:
    25 июл 2007
    Сообщения:
    748
    Симпатии:
    199
    приветствую, кто то может подсказать, как поставить Varnish, если возможно, 4 версию на данный Centos 6?
    По умолчанию тянется версия 2 c epel, по официальному мануалу создаю репо, выключаю все репы кроме вновь созданной, и все равно тянется 2 с epel.
    Если же в epel.repo прописываю жестко enabled=0, то yum install varnish - No package varnish available...
     
  9. typus

    typus

    Регистр.:
    25 июл 2007
    Сообщения:
    748
    Симпатии:
    199
    Ok, установил таки varnish 4.1 на centos, теперь новая проблема - не принимает конфиг, - вот этот конкретно конфиг генерирует magento 2
    Код:
    vcl 4.0;
    
    import std;
    # The minimal Varnish version is 4.0
    # For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'
    
    backend default {
        .host = "127.0.0.1";
        .port = "80";
    }
    
    acl purge {
        "localhost";
    }
    
    sub vcl_recv {
        if (req.method == "PURGE") {
            if (client.ip !~ purge) {
                return (synth(405, "Method not allowed"));
            }
            if (!req.http.X-Magento-Tags-Pattern) {
                return (synth(400, "X-Magento-Tags-Pattern header required"));
            }
            ban("obj.http.X-Magento-Tags ~ " + req.http.X-Magento-Tags-Pattern);
            return (synth(200, "Purged"));
        }
    
        if (req.method != "GET" &&
            req.method != "HEAD" &&
            req.method != "PUT" &&
            req.method != "POST" &&
            req.method != "TRACE" &&
            req.method != "OPTIONS" &&
            req.method != "DELETE") {
              /* Non-RFC2616 or CONNECT which is weird. */
              return (pipe);
        }
    
        # We only deal with GET and HEAD by default
        if (req.method != "GET" && req.method != "HEAD") {
            return (pass);
        }
    
        # Bypass shopping cart, checkout and search requests
        if (req.url ~ "/checkout" || req.url ~ "/catalogsearch") {
            return (pass);
        }
    
        # normalize url in case of leading HTTP scheme and domain
        set req.url = regsub(req.url, "^http[s]?://", "");
    
        # collect all cookies
        std.collect(req.http.Cookie);
    
        # Compression filter. See https://www.varnish-cache.org/trac/wiki/FAQ/Compression
        if (req.http.Accept-Encoding) {
            if (req.url ~ "\.(jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|flv)$") {
                # No point in compressing these
                unset req.http.Accept-Encoding;
            } elsif (req.http.Accept-Encoding ~ "gzip") {
                set req.http.Accept-Encoding = "gzip";
            } elsif (req.http.Accept-Encoding ~ "deflate" && req.http.user-agent !~ "MSIE") {
                set req.http.Accept-Encoding = "deflate";
            } else {
                # unkown algorithm
                unset req.http.Accept-Encoding;
            }
        }
    
        # Remove Google gclid parameters to minimize the cache objects
        set req.url = regsuball(req.url,"\?gclid=[^&]+$",""); # strips when QS = "?gclid=AAA"
        set req.url = regsuball(req.url,"\?gclid=[^&]+&","?"); # strips when QS = "?gclid=AAA&foo=bar"
        set req.url = regsuball(req.url,"&gclid=[^&]+",""); # strips when QS = "?foo=bar&gclid=AAA" or QS = "?foo=bar&gclid=AAA&bar=baz"
    
        # static files are always cacheable. remove SSL flag and cookie
            if (req.url ~ "^/(pub/)?(media|static)/.*\.(ico|css|js|jpg|jpeg|png|gif|tiff|bmp|mp3|ogg|svg|swf|woff|woff2|eot|ttf|otf)$") {
            unset req.http.Https;
            unset req.http.X-Forwarded-Proto;
            unset req.http.Cookie;
        }
    
        return (hash);
    }
    
    sub vcl_hash {
        if (req.http.cookie ~ "X-Magento-Vary=") {
            hash_data(regsub(req.http.cookie, "^.*?X-Magento-Vary=([^;]+);*.*$", "\1"));
        }
    
        # For multi site configurations to not cache each other's content
        if (req.http.host) {
            hash_data(req.http.host);
        } else {
            hash_data(server.ip);
        }
    
        # To make sure http users don't see ssl warning
        if (req.http.X-Forwarded-Proto) {
            hash_data(req.http.X-Forwarded-Proto);
        }
       
    }
    
    sub vcl_backend_response {
        if (beresp.http.content-type ~ "text") {
            set beresp.do_esi = true;
        }
    
        if (bereq.url ~ "\.js$" || beresp.http.content-type ~ "text") {
            set beresp.do_gzip = true;
        }
    
        # cache only successfully responses and 404s
        if (beresp.status != 200 && beresp.status != 404) {
            set beresp.ttl = 0s;
            set beresp.uncacheable = true;
            return (deliver);
        } elsif (beresp.http.Cache-Control ~ "private") {
            set beresp.uncacheable = true;
            set beresp.ttl = 86400s;
            return (deliver);
        }
    
        if (beresp.http.X-Magento-Debug) {
            set beresp.http.X-Magento-Cache-Control = beresp.http.Cache-Control;
        }
    
        # validate if we need to cache it and prevent from setting cookie
        # images, css and js are cacheable by default so we have to remove cookie also
        if (beresp.ttl > 0s && (bereq.method == "GET" || bereq.method == "HEAD")) {
            unset beresp.http.set-cookie;
            if (bereq.url !~ "\.(ico|css|js|jpg|jpeg|png|gif|tiff|bmp|gz|tgz|bz2|tbz|mp3|ogg|svg|swf|woff|woff2|eot|ttf|otf)(\?|$)") {
                set beresp.http.Pragma = "no-cache";
                set beresp.http.Expires = "-1";
                set beresp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";
                set beresp.grace = 1m;
            }
        }
    
       # If page is not cacheable then bypass varnish for 2 minutes as Hit-For-Pass
       if (beresp.ttl <= 0s ||
            beresp.http.Surrogate-control ~ "no-store" ||
            (!beresp.http.Surrogate-Control && beresp.http.Vary == "*")) {
            # Mark as Hit-For-Pass for the next 2 minutes
            set beresp.ttl = 120s;
            set beresp.uncacheable = true;
        }
        return (deliver);
    }
    
    sub vcl_deliver {
        if (resp.http.X-Magento-Debug) {
            if (resp.http.x-varnish ~ " ") {
                set resp.http.X-Magento-Cache-Debug = "HIT";
            } else {
                set resp.http.X-Magento-Cache-Debug = "MISS";
            }
        } else {
            unset resp.http.Age;
        }
    
        unset resp.http.X-Magento-Debug;
        unset resp.http.X-Magento-Tags;
        unset resp.http.X-Powered-By;
        unset resp.http.Server;
        unset resp.http.X-Varnish;
        unset resp.http.Via;
        unset resp.http.Link;
    }

    Заводится только со стандартным конфигом магенто, т.е. в котором только
    Код:
    backend default {
        .host = "127.0.0.1";
        .port = "80";
    }
    сервис логирования varnish включен, но папка логов его пуста.
    В чем может быть проблема?