Сквид Pfsense внешний ACL со сценарием PHP

Я хочу использовать Сценарий PHP, чтобы позволить или отклонить просьбу прокси Сквида INA pfsense установка, таким образом, я использую эту конфигурацию для внешнего ACL:

external_acl_type mysqlAuth %SRC /usr/local/bin/php -f /var/scripts/mysqlacl.php
acl extGrant external mysqlAuth
http_access allow extGrant

Мой сценарий Mysql похож на это:

<?php
file_put_contents("/var/scripts/out.txt",date("Y/m/d H:i:s")."Started\r\n",FILE_APPEND);

$STDIN=fopen("php://stdin", "r");
$STDOUT=fopen("php://stdout", "w"));


while (!feof($STDIN)) {
        $line = trim(fgets($STDIN));
        file_put_contents("/var/scripts/out.txt",date("Y/m/d H:i:s")." ".$line,FILE_APPEND);
        fwrite($STDOUT, "OK\n");
        //break;
}
?>

Если я запускаю этот скрипт из командной строки, все работает для каждой входной строки, я получаю выходную строку "OK".

Проблема состоит в том, что, когда Сквид работает, я получил это ошибки (журнал из system.log):

сквид [43190]: Родитель Сквида: (Сквид 1), обрабатывают 56700, запустился

(сквид 1): mysqlAuth помощники отказывают слишком быстро, нуждаются в помощи!

сквид [43190]: Родитель Сквида: (Сквид 1), обрабатывают 56 700 вышедших с состоянием 1

сквид [43190]: Родитель Сквида: (Сквид 1), обрабатывают 56700, не будет перезапущен из-за повторных, частых отказов

И это - cache.log:

kid1 | ipcCreate:/usr/local/bin/php: (2) Никакой такой файл или каталог

Но этот файл, конечно, существует и быть уверенным, что это не происходит из-за ошибки доступа к файлу, я пытался установить оболочку для "проксирования" пользователя и входа в систему как пользователь прокси (su proxy) и здесь от вызова оболочки /usr/local/bin/php -f /var/scripts/mysqlacl.php и это работает!

Это - моя php версия:

PHP 5.5.22 (cgi-fcgi) (созданный: 26 февраля 2015 18:00:22) Copyright (c) 1997-2015 The PHP Group Механизм Zend v2.5.0, Copyright (c) 1998-2015 Zend Technologies с Suhosin v0.9.37.1, Copyright (c) 2007-2014, SektionEins GmbH

Каково это может быть?

0
задан 10 April 2015 в 11:17
1 ответ

Это мой ответ на использование PHP-скриптов в качестве внешнего ACL для squid в pfsense:

ln -s /usr/local/bin/php /usr/pbi/squid-amd64/local/bin/php
ln -s /usr/local/lib/php /usr/pbi/squid-amd64/local/lib/php
ln -s /usr/local/etc/php.ini /usr/pbi/squid-amd64/local/etc/php.ini
0
ответ дан 5 December 2019 в 12:52

Теги

Похожие вопросы