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

    Vamp
    @Vamp
    В конфиге nginx нельзя устанавливать опции PHP с уровнем PHP_INI_SYSTEM, который как раз и имеют open_basedir (с оговорками), upload_tmp_dir и sys_temp_dir. Опция session.save_path имеет уровень PHP_INI_ALL, поэтому её можно установить откуда угодно. Хоть из php скриптов.

    PHP_INI_SYSTEM можно установить только в php.ini или конфигурации пула:

    php_value[open_basedir] = /var/www/mysite.ru/:/tmp/
    php_value[upload_tmp_dir] = /var/www/mysite.ru/tmp/
    php_value[sys_temp_dir] = /var/www/mysite.ru/tmp/
    php_value[session.save_path] = /var/www/mysite.ru/sessions/


    Конфигурации пулов могут быть в отдельных файлах в папке /etc/php7/pool или в одном - это дело вкуса. Проще разделять по разным.

    Что до разделения по юзерам, то нужно создавать отдельные пользовательские группы для каждого сайта:

    ; Имя пула
    [mysite]
    
    ; Пользователь и группа
    user = www-data
    group = mysite
    
    ; Прием FastCGI-запросов
    listen = /var/run/mysite.sock
    
    ; Пользователь и группа, который будет владельцем unix сокета
    listen.owner = nginx
    listen.group = nginx
    
    ; Права на чтение и запись
    listen.mode = 0660
    
    ; добавляем конфиг php
    php_value[open_basedir] = /var/www/mysite.ru/:/tmp/
    php_value[upload_tmp_dir] = /var/www/mysite.ru/tmp/
    php_value[sys_temp_dir] = /var/www/mysite.ru/tmp/
    php_value[session.save_path] = /var/www/mysite.ru/sessions/


    ; Имя пула
    [vasya]
    
    ; Пользователь и группа
    user = www-data
    group = vasya
    
    ; Прием FastCGI-запросов
    listen = /var/run/vasya.sock
    
    ; Пользователь и группа, который будет владельцем unix сокета
    listen.owner = nginx
    listen.group = nginx
    
    ; Права на чтение и запись
    listen.mode = 0660
    
    ; добавляем конфиг php
    php_value[open_basedir] = /var/www/vasya/:/tmp/
    php_value[upload_tmp_dir] = /var/www/vasya/tmp/
    php_value[sys_temp_dir] = /var/www/vasya/tmp/
    php_value[session.save_path] = /var/www/vasya/sessions/


    Соответственно, права и владелец папки /var/www/mysite.ru должны быть tolly:mysite и 750, а у /var/www/vasya - tolly:vasya и 750.

    Не сильно важно от какого пользователя будут запускаться разные php-fpm пулы, главное чтобы не от nginx или tolly. Разграничение доступа при такой схеме строится только на группах.

    Пользователь nginx должен состоять одновременно в группах mysite и vasya, чтобы иметь доступ к файлам всех сайтов, тогда как php-fpm пул будет иметь доступ только к своей папке, но не к папке соседа.
  • Неправильно приходят байты?

    Vamp
    @Vamp
    Возможно из-за того, что кор.
  • Неправильно приходят байты?

    Vamp
    @Vamp
    Размер пакета регулируется операционной системой. Повлиять на это вы не можете.
  • Неправильно приходят байты?

    Vamp
    @Vamp
    Никак. Это фундаментальная особенность работы сети. Если не хотите заниматься сборкой пакетов вручную, то найдите того, кто будет делать это за вас. Я не в курсе что предлагает spigot для решения этой проблемы, но видел плагин ProtocolLib. Вероятно, он может помочь.
  • Как команда ping преобразует адреса?

    Vamp
    @Vamp
    Тут не в протоколе дело, а в софте, его имплементирующем. Судя по всему, протестированные вами реализации SSH и RDP используют эту же самую функцию для преобразования адреса из char массива в структуру in_addr. Только и всего.
  • Как запретить на сайте нажатие CTRL+SHIFT+I и F12?

    Vamp
    @Vamp
    Так автор не знает - можно или нет. Иначе не спрашивал бы.
  • PHP SOAP и сертификат?

    Vamp
    @Vamp
    Тем не менее, другие люди будут приходить из гугла и копипастить ваш ответ в свои проекты бездумно, даже не догадываясь о последствиях. Хотя бы добавьте в ответ ремарку о том, что это решение костыльное и небезопасное.
  • Как вывести все существующие символы?

    Vamp
    @Vamp
    На каком языке требуется пример? В тегах java и javascript, а в примере вообще php. Три совершенно разных языка.
  • Зачем и где именно писать @Override?

    Vamp
    @Vamp
    Показателен пример с переопределением Object.equals(Object) - люди часто ошибаются с сигнатурой: class MyClass { public boolean equals(MyClass o) { /* blah-blah */ } }. В итоге определили новый метод, а не переопределили родительский. Причём ошибка может не сразу обнаружиться.

    Ладно equals() можно запомнить очень быстро. Базовый метод, как-никак. Часто на слуху. Но в нетривиальных случаях можно неплохо подпортить себе нервы, пытаясь отдебажить проблему, которую можно было переложить на компилятор аннотацией @Override.
  • Навыки PHP программиста

    Vamp
    @Vamp
    Получается я прав, но только на половину.
  • Навыки PHP программиста

    Vamp
    @Vamp
    Правильный ответ: обе одинаковые. На самом деле тут дело не в передаче объекта по ссылке, а во особенностях работы интерпретатора с памятью. Например, $str = '123'; $str2 = $str; В памяти будет только один объект со строкой '123', $str и $str2 указатели на один и тот же объект. Новый объект для $str2 выделится только во время модификации.

    $str = '123';
    $str2 = $str;
    $str2 .= '4'; // копирование объекта происходит только на этом этапе
    print $str.'-'.$str2; // 123-1234