Показаны сообщения с ярлыком Magento. Показать все сообщения
Показаны сообщения с ярлыком Magento. Показать все сообщения

понедельник, 3 января 2022 г.

четверг, 30 декабря 2021 г.

Magento 2 How to throw report error page (500 error) for testing purpose

 The goal is to get a report page for testing purpose 

So, we have to break magento somehow.

The fast way is:

1. pub/media is symlink to media folder

2. rename real media folder to media.bk

3. open PLP and enjoy the error

var/report will be:

Directory \"\/mnt\/data\/www\/project\/releases\/pub\/media\" cannot be created Warning!mkdir(): File exists" ...

пятница, 23 апреля 2021 г.

Magento 2 Multistore one domain

domain.com/store1

domain.com/store2

  1. Admin Panel: Stores/Settings/Stores (table store for checking code for MAGE_RUN_CODE)
    website: base, store: store1_code, store view: store1
    website: base, store: store2_code, store view: store2
  2. Admin Panel: Configuration/Web/URL Options/Add Store Code to Urls - Yes
  3. NGINX: 

    .php

        fastcgi_param  MAGE_RUN_TYPE    $MAGE_RUN_TYPE;

        fastcgi_param  MAGE_RUN_CODE    $MAGE_RUN_CODE;

    http

    map $request_uri $MAGE_RUN_CODE {

        ~^/store1 store1;

        ~^/store2 store2;

    }

    server
        set $MAGE_RUN_TYPE store;

среда, 29 апреля 2020 г.

Magento 500 error Premature end of script headers: index.php, Error parsing script headers, (22)Invalid argument

[Wed Apr 29 13:55:43.181652 2020] [proxy_fcgi:error] [pid 113977] [client 127.0.0.1:38830] Premature end of script headers: index.php, referer: https://domain.tld/us/catalogsearch/result/?q=jacket

[Wed Apr 29 13:55:43.181721 2020] [proxy_fcgi:error] [pid 113977] [client 127.0.0.1:38830] AH01070: Error parsing script headers, referer: https://domain.tld/us/catalogsearch/result/?q=jacket

[Wed Apr 29 13:55:43.181726 2020] [proxy_fcgi:error] [pid 113977] (22)Invalid argument: [client 127.0.0.1:38830] AH01075: Error dispatching request to : , referer: https://domain.tld/us/catalogsearch/result/?q=jacket

Issue https://github.com/magento/magento2/issues/7657
https://cloud.githubusercontent.com/assets/3441674/20826784/5002f712-b8a8-11e6-95cf-ab8d9d94e239.png

header X-Magento-Tags size more than header size limit

среда, 22 апреля 2020 г.

Magento rewrite 404 error with checkout

It was dev site with enabled basic auth
Access log displayed 404 error
There was an error in nginx error log
 is not found (2: No such file or directory)

Working Apache config was
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule .* index.php [L]
</IfModule>

I was moving to Nginx and got an error 404, because I only disabled auth with
location /onestepcheckout/ {
    auth_basic off; 
}
I had to add auth off for checkout, but I forgot about rewrite
try_files $uri/ $uri/ /index.php$is_args$args;
It was a reason.
Resolving error was

location / {     
    try_files $uri/ $uri/ /index.php$is_args$args;
}

location /onestepcheckout/ {
    auth_basic off;
    try_files $uri $uri/ /index.php$is_args$args;
}

# POST response
location /rest/ {
    auth_basic off;
    try_files $uri $uri/ /index.php$is_args$args;
}

пятница, 17 апреля 2020 г.

Magento CORS error (Access-Control-Allow-Origin)

https://absolutecommerce.co.uk/blog/cors-in-magento-2

/etc/nginx/magento2-cors.conf
add_header 'Access-Control-Allow-Origin' '*' 'always'; 
if ($request_method = 'OPTIONS') { 
  add_header 'Access-Control-Allow-Origin' '*' 'always'; 
  add_header 'Access-Control-Allow-Headers' 'x-requested-with' 'always'; 
  add_header 'Access-Control-Max-Age' 86400 'always'; 
  add_header 'Content-Length' 0 'always'; return 204; 
}

location /static/ { 
  location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { 
    add_header X-Frame-Options "SAMEORIGIN"; 
    include /etc/nginx/magento2-cors.conf; 
  } 
  location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { 
    add_header X-Frame-Options "SAMEORIGIN"; 
    include /etc/nginx/magento2-cors.conf; 
  } 
  add_header X-Frame-Options "SAMEORIGIN"; 
  include /etc/nginx/magento2-cors.conf; 
}

explanation CORS:

Header Access-Control-Allow-* - это заголовки ответа, их должен отправлять сервер в ответ на запрос. 
Если запрос OPTIONS (браузер шлет сам перед основным запросом для проверки прав), то сервер должен так же ответить этими заголовками, но со статусом 204 и без тела
с клиента должен быть только заголовок Origin (откуда пришел запрос), если клиент в браузере, то браузер сам его отправит (X-Requested-With кстати тоже сам отправит)
а эти:
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
должны быть с сервера, притом из Access-Control-Allow-Headers можно смело убрать Access-Control-Allow-Headers и X-Requested-With (первый Вы и не должны отправлять, а второй разрешен по умолчанию)

четверг, 9 апреля 2020 г.

Magento 2 Some links from staging home page redirect to the production site

Some links from staging home page redirect to the production site.
Analyzing...
It is home page, so, I have to check cms* tables.
I checked with

select title,content from cms_block where content like '%www.prod.com%';

and found three records
I modified them with  variable {{config path="web/secure/base_url"}} instead of prod domain.
It could be done via Admin Panel or via

Cleared FPC cache
UPDATE cms_block set content = REPLACE(content, 'https://www.prod.com/', '{{config path="web/secure/base_url"}}') WHERE content LIKE '%https://www.prod.com/%';

понедельник, 23 марта 2020 г.

Magento Site Load-Testing via Jmeter

1) gather links of the site;

All needed links are in url_rewrite table. I need the result file with random link lines from the table.
So, I will use RAND() function in select query. It will be enough if I use only category, product, cms_page links, so I will use such entity_type from the table as ones. I need avoid duplicates, so I will use distinct in the query.

    Finally, the result query is
mysql -uuser_name -p -hdatabase -e "select distinct request_path from url_rewrite where entity_type='caterory' or entity_type='product' or entity_type='cms_page' order by RAND();" db_name > load_test.log

2) I noticed that product records begins with slash as the fist character. I need to remove it.
 Such script should help there

./remove_first_slash.sh > load_test-ready.log

#!/bin/bash
for request_path in $(cat load_test.log); do
    tmp_val=$(echo "$request_path" | cut -c -1)
    if [[ "$tmp_val" == "/" ]]; then
        tmp_clear=$(echo "$request_path" | cut -c 2-)
        echo "$tmp_clear"
        continue
    fi
    echo "$request_path"
done

3) use it with Jmeter

Tips&tricks:

I got unexpected good results with higher concurrent users number after previous bad with lower ones.
The reason were FPC cache (redis in my case) and OpCache.
So, tricks are cleaning FPC and OpCache caches before each test.
In my case,
redis-cli -p 6380 FLUSHALL 
and restarting php

четверг, 24 октября 2019 г.

Linux Ububntu 18.04 Use memcached for PHP session storage

https://devdocs.magento.com/guides/v2.3/config-guide/memcache/memcache_ubuntu.html

apt update -y && apt install php-memcached memcached
/etc/php/7.2/fpm/php.ini
session.save_handler = "memcached"
session.save_path = "127.0.0.1:11211"

or /etc/php/7.2/fpm/pool.d/user.conf
php_admin_value[session.save_path] = '127.0.0.1:11211'
php_admin_value[session.save_handler] = 'memcached'

phpinfo should display memcached info on the page.

Check working with a script cache-test.php