пятница, 5 июля 2019 г.

Nginx CORS

На одном нашем сайт site1.com добавили статистику с двух других наших сайтов site2.com site3.com . Нужно разрешить CORS на 2 и 3 сайте для 1 сайта, иначе видим ошибку

Access to XMLHttpRequest at 'https://www.site2.com/api/get-registered-users-count' from origin 'http://www.site1.com' has been blocked by CORS policy.

Пользовался этой статьей
добавил

location / 
    add_header 'Access-Control-Allow-Origin' 'https://www.site1.com'; 
    add_header 'Access-Control-Allow-Credentials' 'true'; 
    add_header 'Access-Control-Allow-Headers' 'Content-Type,Accept'; 
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; 
}

Тест

curl -H "Access-Control-Request-Method: GET" -H "Origin: https://www.site1.com" --head http://www.site2.com

После разрешения появились записи

Access-Control-Allow-Origin: https://site1.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type,Accept
Access-Control-Allow-Methods: POST, OPTIONS

Git замена мастера другой веткой

Было много изменений и проще было мастер заменить другой веткой.
https://stackoverflow.com/questions/2862590/how-to-replace-master-branch-in-git-entirely-from-another-branch
Использовали

git checkout v1.0.1
git merge -s ours master

Про стратегии статья
Стратегия ours ^
Не следует путать стратегию ours и опцию ours стратегии recursive.

Выполняя git merge -s ours obsolete, вы как бы говорите: я хочу слить истории веток, но проигнорировать все изменения, которые произошли в ветке obsolete. Иногда рекомендуют вместо стратегии ours использовать следующий вариант:

git checkout obsolete 
git merge -s recursive -Xtheirs master

Стратегия ours — более радикальное средство.

среда, 3 июля 2019 г.

Linux /bin/ls: Argument list too long

Нужно было чистить каталог, но стандартная очистка с созданием списка ls показала ошибку при первом запуске с большим количеством файлов (~400 000)
Решение https://www.in-ulm.de/~mascheck/various/argmax/ , из параграфа
How to avoid the limit in a shell выбрал этот вариант:
find /home/folder -mtime +7 -print0 -type f | xargs -0 rm -rf

Все файлы старше семи дней удаляются

Linux rabbitmq-server add read-only user

Включаем плагины менеджмента

rabbitmq-plugins enable rabbitmq_management
Заводим нового пользователя

rabbitmqctl add_user username usernamePassword

Права по порядку config, write, read Даем полные права только на чтение ".*"

rabbitmqctl set_permissions -p / username "^username.*" "^username.*" ".*"

Чтобы подключаться удаленно, нужно дать доступ
по описанию monitiring самый подходящий для этого

rabbitmqctl set_user_tags radly monitoring

Linux Nginx страница обслуживания

При появлении в каталоге файла maitainance_on отображать 503 страницу обслуживания
Проверка на файл:

    location / {
        if (-f /home/www/site/maintenance_on) {
            return 503;
        }

        # try to serve file directly, fallback to index.php
        try_files $uri /index.php$is_args$args;
    }

и обработка 503 ошибки

    error_page 503 /maintenance.html;

    location = /maintenance.html {
         root /home/www/site/public;
    }

    location ~ ^/maintenance-assets/(.+\.(jpg|png))$ {
         alias /home/www/site/public/maintenance-assets/$1;
    }

вторник, 2 июля 2019 г.

PHP Phpunit errors in pipeline

Куча разных ошибок в пайплайне
[InvalidArgumentException]
Project directory phpunit-6.5/ is not empty.

PHP Fatal error: Uncaught Error: Class 'Symfony\Bridge\PhpUnit\TextUI\Command' not found in

Failed to download sebastian/global-state from dist: No such zip file