Процесс ожидает на некотором системном ресурсе, возможно, NFS? это не позволяет этому 'отпускать'. Хотел бы услышать некоторые решения этого вне моего...
перезагрузите поле или позвольте процессу сидеть без дела.
Интересно, смогли ли Вы 'ОСТАНАВЛИВАТЬ' процесс через уничтожение - ОСТАНОВКА {PID}, чтобы препятствовать тому, чтобы он использовал больше CPU.
Перезапуск его должен быть возможным даже с другим остановленным заседанием процесса, но это может потребовать порта списка или сегмента общей памяти, который все еще используется другим процессом.
Если Вы не изменили настройки, данные сессии PHP хранятся в изменении, самостоятельно сериализируют () формат во временном каталоге, и не легко достигнуть это, не используя сам PHP.
unfortuantly, Вы, кажется, хотите скорость статических подаваемых файлов, динамично авторизовывая каждый запрос, которые не являются действительно совместимыми целями. Вы могли бы comprimise при наличии сверхлегкого Сценария PHP, к которому Вы затем используете mod_rewrite для перезаписи запросов в файлы в нем, который передает, хотя вещи, которые прекрасны. Супер простой пример:
.htaccess:
RewriteEngine On
RewriteMap auth prg:auth.php
RewriteRule (.*) ${auth:$1}
auth.php:
#!/usr/bin/php
<?PHP
set_time_limit(0); # This program needs to run forever.
$stdin = fopen("php://stdin","r"); # Keeps reading from standard in
while (true) {
$line = trim(fgets($stdin));
if (isset($_SESSION['USER_LOGGED_IN'])) {
echo $line\n";
} else {
echo "authfailed.html\n";
}
}
особенно, тот Сценарий PHP работает навсегда, таким образом, необходимо будет перезапустить апача при изменении его я думаю.
Это все не тестируется, но это - примерно направление, я думаю, что необходимо было бы войти.
Ссылки:
Если у Вас был конкретный cookie, можно ожидать, то можно протестировать на его отсутствие с mod_rewrite и дать Запрещенные 403.
RewriteCond %{HTTP_COOKIE} !LoggedIn=true
RewriteRule .* - [F,L]
Но, если бы кто-либо знал, что им был нужен набор cookie с "LoggedIn=true", то затем они могли легко обойти Вашу "защиту".
Сессия PHP характерна для PHP. Apache не имеет никакого способа использовать любую информацию на сессии PHP. У Вас должен был бы быть некоторый модуль аутентификации специально для выполнения проверки сессии.
Что я видел, что большинство людей сделать, имеют дескриптор Сценария PHP обслуживание статического содержания, в котором это получает запрос, проверяет сессию, читает в файле и отсылает содержание с соответствующей информацией о MIME.
Да Основному Автору, если Вы используете mod_php. http://php.net/manual/en/features.http-auth.php
The conventional solution for that problem is to redirect every call on that folder to a php file, which checks the user permissions, and after that it reads the file, and send it to the output stream or redirects the user to the "no permission" site. For example...
Another tricky way to protect you files is to generate a token from the session_id, and a static salt (and optianally from the static file path), and check it by the file accessing. So you have to regenerate that token in you htaccess file. I don't know whether it's possible only with .htaccess, or you have to use php for that. I found a similar solution here. I'm 99% convinced, that the md5 is not a built in mod rewrite feature.
Мой план по решению этой проблемы теперь заключается в
Перенаправлении запроса на PHP
RewriteEngine on
RewriteRule ([0-9a-z-_]+)$ authenticateUser.php?&file=$1 [L]
Аутентификация пользователя в PHP (все остальные методы аутентификации, возможно, слишком слабые или требуют записи в файлы постоянно)
if ( User::hasPermission() && isSane( $filePath ) ) {
//
header( 'X-Sendfile: ' . $filePath );
}
Используйте mod_xsendfile
(docs, github)