Задать вопрос
  • Какой путь прописать для upload_tmp_dir?

    Tolly
    @Tolly Автор вопроса
    А в пуле можно прописывать несколько хостов? Типа:

    [HOST=example.com]
    open_basedir /var/www/example.com/:/tmp/
    upload_tmp_dir /var/www/example.com/temp/
    sys_temp_dir /var/www/example.com/temp/
    session.save_path /var/www/example.com/sessions/

    [HOST=mysite.com]
    open_basedir /var/www/mysite.com/:/tmp/
    upload_tmp_dir /var/www/mysite.com/temp/
    sys_temp_dir /var/www/mysite.com/temp/
    session.save_path /var/www/mysite.com/sessions/

    или это делается, просто путем перечисления все возможных путей, типа:
    php_value[open_basedir] = /var/www/example.com/:/tmp/:/var/www/mysite.com/ ?

    Немного запутался в пользователях и группах, к примеру
    ; Имя пула
    [mysite]
    
    ; Пользователь и группа
    user = www-data
    group = mysite
    
    ; Прием FastCGI-запросов
    listen = /var/run/mysite.sock
    
    ; Пользователь и группа, который будет владельцем unix сокета
    listen.owner = nginx
    listen.group = nginx
    
    ; Права на чтение и запись
    listen.mode = 0660


    Вот что я понял:
    1) [mysite] - это имя пула mysite по аналогии с доменом
    2) user = www-data - это некто, не важно кто, но не nginx
    3) group = mysite - группа созданная для домена
    4) listen = /var/run/mysite.sock - имя сокета от имени домена
    5) listen.owner = nginx и listen.group = nginx - запуск самого php-fpm
    верно?

    Имея 2 домена: example и mysite, задаем права:
    chmod nginx:mysite -R 750 /var/www/mysite/
    chmod nginx:example -R 750 /var/www/example/

    тем самым пользователь www-data - или другой, но не nginx, который не имеет прав доступа к этой папке

    Все правильно понял?
  • Какой путь прописать для upload_tmp_dir?

    Tolly
    @Tolly Автор вопроса
    Виктор Таран, "затем что есть проекты в которых это очевидно важно, а так же есть ресурсы следить за всем вместе", еще раз повторю, что оно работать не будет не на одном проекте, так как так делать нельзя!
    К сожалению не вспомню урлы, где читал этот бред.
  • Какой путь прописать для upload_tmp_dir?

    Tolly
    @Tolly Автор вопроса
    В Nginx попробовал изменить путь, для каждого сайта прописал (домен заменен на фейковый):
    location ~ \.php$ {
            try_files $uri =444;
            fastcgi_pass backend7;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
     
            fastcgi_param PHP_VALUE open_basedir="/var/www/mysite.ru/:/tmp/";
            fastcgi_param PHP_VALUE upload_tmp_dir="/var/www/mysite.ru/tmp/";
            fastcgi_param PHP_VALUE sys_temp_dir="/var/www/mysite.ru/tmp/";
            fastcgi_param PHP_VALUE session.save_path="/var/www/mysite.ru/sessions/";
    
            include fastcgi_params;
    }


    Но почему-то настройка применилась только для session.save_path, а для остальных осталась дефолтной. Проверял phpinfo(), сейчас - "no value", т.к. не прописана в php.ini.

    Как изменить пул в php-fpm, добавив новых пользователей?
    Сейчас /etc/php7/pool/pool.conf имеет вид:
    ; Имя пула
    [php7]
    
    ; Пользователь и группа
    user = nginx
    group = nginx
    
    ; Прием FastCGI-запросов
    listen = /var/run/php7-fpm.sock
    
    ; Пользователь и группа от чьего имени запущен сервер
    listen.owner = nginx
    listen.group = nginx
    
    ; Права на чтение и запись
    listen.mode = 0660


    В php-fpm.conf прописана строка:
    include=/etc/php7/pool/*.conf

    Будет ли достаточно создать новый файл /etc/php7/pool/vasya.conf
    и прописать:
    [vasya]
    user = vasya
    listen = /var/run/php7-fpm.vasya.sock


    А потом для того, чтобы работать от этого юзера, достаточно прописать строку в конфиг домена, типа:
    fastcgi_pass unix:/var/run/php7-fpm.vasya.sock;

    так?
  • Можно ли организовать учёт трафика ютуб для групп пользователей средстами Mikrotik?

    Ну.. вот у меня есть скрипт, который блокирует рекламу (некоторые сайты), можете его доделать, указать только домены youtube и правило блокировки заменить, на правило пропуска, т.е. трафик идти будет, но он будет считаться в байтах и в пакетах.
    Экзотику по поводу, сколько раз заходили на сайт, реализуйте сами, там надо через proxy настраивать, на борту он есть, но я не пользовался.

    /ip firewall layer7-protocol
    add name=Block_URL regexp="^.+(apps.skype.com|ads.viber.com|googleads.g.doubleclick.net|googleapis.l.google.com|\
    |an.yandex.ru|ads.youtube.com).*\$"\
    comment="Blocklist URL baners"
    
    /ip firewall mangle 
    add action=mark-connection protocol=udp dst-port=53 \
    chain=prerouting connection-mark=no-mark layer7-protocol=Block_URL new-connection-mark=Block_URL passthrough=yes 
    
    add action=mark-packet \
    chain=prerouting connection-mark=Block_URL new-packet-mark=Block_URL passthrough=no
    
    /ip firewall filter 
    add action=drop chain=forward packet-mark=Block_URL comment="Block URL baners"
    add action=drop chain=input packet-mark=Block_URL comment="Block URL baners"


    PS. Правила файрвола должны быть в самом верху! Перезагрузите компьютеры и роутер, чтобы сбросить dns везде, а то не заработает.
  • Какой путь прописать для upload_tmp_dir?

    Tolly
    @Tolly Автор вопроса
    Ввести пару команд для обновления (системы, ядра, пхп), как бы не проблематично, скрипт все делает легко и быстро.
    По вопросу понял, закрываю его.

    PS. Зачем же пишут эти статьи по безопасности?
  • Как сделать, завершение bash скрипта, если другая программа уже запущена?

    Tolly
    @Tolly Автор вопроса
    а смысл переписывать мой вопрос? у меня точно такой же скрипт

    кроме того, мне не помогает выйти даже exit
  • Яндекс (pdd.yandex.ru) перешел на API2?

    Tolly
    @Tolly Автор вопроса
    там априори нельзя менять ip-адрес, функционала у яндекса нет
    хотя может уже сделали, я уже давно не пользуюсь pdd, взял у провайдера статический ip..
  • Как сделать, завершение bash скрипта, если другая программа уже запущена?

    Tolly
    @Tolly Автор вопроса
    Методов определения, что программа запущена великое множество, и что?
    pgrep -c optimize.sh делает тоже самое, в чем смысл вашего поста?

    Вы отвечаете на вопрос, который я не задавал! Я спрашиваю как остановить скрипт, а не как его не запускать.
  • Как сделать, завершение bash скрипта, если другая программа уже запущена?

    Tolly
    @Tolly Автор вопроса
    planc, там я увидел ответ как не запускать процесс, но я не увидел как выйти из скрипта.
    По сути там написано, тоже самое, что и у меня, только вместо pgrep -c, используется pgrep -x

    Вот к примеру, переписал скрипт так:
    if ! `pgrep -x "optimize.sh"` > /dev/null; then
    echo "Скрипт не работает, поэтому запускаем его" >> /var/www/oo.log
    echo `pgrep -x "optimize.sh"` >> /var/www/oo.log
    /var/www/optimize.sh
    else
    echo "Passed.." >> /var/www/oo.log
    fi

    В итоге лог такой:
    Скрипт не работает, поэтому запускаем его
    Скрипт не работает, поэтому запускаем его
    Скрипт не работает, поэтому запускаем его
    ..

    Хотя второй скрипт работает по несколько минут, и я во втором терминале, запускаю команду
    pgrep -с "optimize.sh"
    и получаю количество процессов, при
    pgrep -x "optimize.sh"
    получаю PID процесса, или что он там выводит

    Почему же я не разу не получил в логе: Passed..?
    Уже варианты кончились, почему так.
  • Как написать регулярное выражение?

    Tolly
    @Tolly Автор вопроса
    xoo, вот еще не работает так:
    string=aaa_bbb_ccc_1_480x300.jpg
    получаю: string=aaa_bbb_ccc, а должно aaa_bbb_ccc_1
  • Как написать регулярное выражение?

    Tolly
    @Tolly Автор вопроса
    А при string="3_480x300.jpg" или при pict3_480x300.jpg
    Вы получаете 3 и pict3?
  • Как найти файл командой find?

    Tolly
    @Tolly Автор вопроса
    Спасибо, еще раз, все работает как надо.
  • Как найти файл командой find?

    Tolly
    @Tolly Автор вопроса
    Спасибо, красивое решение. Можно несколько уточнений?
    1) "+" означает {1,}, но почему если заменить, то не работает?
    2) почему если заменить ".*/modified/[^/]+\.jpg" на ".*/modified/[^/]+\.(jpg|webp)" то не работает?
  • Как найти файл командой find?

    Tolly
    @Tolly Автор вопроса
    Антон Кутузов, а куда яснее пару find и пару регулярок.
    Завтра попробую сам написать, только перечитать нужно много чего.
  • Как найти файл командой find?

    Tolly
    @Tolly Автор вопроса
    Почти.. нужно учесть, что файл pict, не один, т.е. их может быть 1..99999.
    Названия файлов тоже отличаются, может быть не pict, а к примеру pictures.
    В папке modified хранятся только jpg файлы, и все их нужно проверить.
    Есть окончание типа _1024x768.jpg или _800x600.jpg от него нужно отталкиваться, т.е. для
    pictures_1024x768.jpg нужно искать на уровень выше родителя pictures_parent.jpg
    для
    foto_800x600.jpg нужно искать foto_parent.jpg
    и т.д.

    Проще говоря, c помощью регулярного выражением находим имя - до знака "_", поднимаемся на уровень выше и ищем такое же имя до знака "_".
  • Есть ли функция, которая выводит текущую директорию?

    Tolly
    @Tolly Автор вопроса
    что pwd?
    Вы не внимательно прочитали вопрос!
    Поясняю: В цикле нахожу некий файл, мне нужно узнать директорию, в которой он находится.
    Имя файла узнаю через basename, а как узнать директорию, т.е. без имени файла.
    Есть ли такая функция?!
  • Яндекс (pdd.yandex.ru) перешел на API2?

    Tolly
    @Tolly Автор вопроса
    К сожалению, не подскажу, где сохраняется динамический ip-адрес, и сохраняется ли он вообще.