[117984] Разрешения всех папок [118401]777[118402] можно изменить на [118403]755[118404], воспользовавшись приведенным ниже списком.
Вышеприведенная команда изменит все папки внутри [118405]/var/www [118406] на [118407]755[118408]. Для проверки можно воспользоваться командой, приведенной ниже.
Для изменения разрешений всех php-файлов можно воспользоваться приведенной ниже командой.
Как [118411]stat[118412], так и [118413]ls -ld[118414] отобразят восьмеричные разрешения файла. [117993]
] Из случайного обзора источника видно, что автор(ы) слишком усердно использовали []set_nonblock[
] в []sslh-select.c[].[
] Если пометить каждый сокет (как он есть) как неблокирующий, то цикл [
] [while(1) {
select(… a bunch of non-blocking sockets …);
}
]
[] вокруг линии 230 в связанном файле становится занят-ожиданием. То есть, даже если нет доступных для чтения данных ни в одном из сокетов, select возвращается мгновенно, а затем снова вызывается немедленно. Это довольно ресурсоемкий процессор.[
] []Автор близко подошел к тому, чтобы сделать это правильно, с некоторым условным использованием аргумента []timeout[
] для []select[
], но это не имеет никакого эффекта, если все равно все установлено в неблокирующее состояние.[
]Я не профилировал []sslh[
], что является лучшим способом подтвердить, что это реальная причина.[
]Так что теперь эта проблема решается здесь: []https://github.com/yrutschle/sslh/issues/24[][
] []msw ответ может быть исчерпывающим, но также ошибочным: []select()[
] будет блокировать независимо от статуса сокета []O_NONBLOCK[
], в основном это то, для чего он существует, и на самом деле код, который использует блокирующие сокеты при использовании []select()[
], является неверным. Из Linux' []select(2)[
]: "Под Linux, []select()[
] может сообщить дескриптор файла сокета как "готовый к чтению", в то время как последующие блоки чтения".[
]Другими словами, отсутствие установки []O_NONBLOCK[
] при использовании []select()[
] может привести к полной блокировке программы.[
]Таким образом, хотя что-то и может быть не так, но это не так.[
]: "Под Linux" []select()[
]: "Под Linux" []select()[
]: "Готов к чтению".