Я пытаюсь закодировать пользовательский url_rewriter для squid. & также с использованием некоторых других программ url_rewriter, таких как squidGuard , поэтому вам необходимо использовать обертку, чтобы использовать обе или любую другую программу.PHP cli Оптимизация использования памяти
Когда я пытаюсь зацикливаться на php. (именно так, как кальмар обменивается данными с внешними программами. STDIN/STDOUT. Это дает вам URL & вы должны послать новый один или старый один назад.)
имеет разрушительное использование памяти даже ничего не делая. Я изменил, чтобы обернуть его другим скриптом bash, это всего лишь несколько строк. & это петли вместо php. вызывает php извне. когда php-скрипт выполняется с URL-адресом, возвращает его &. этот способ намного лучше, чем вместо того, чтобы зацикливать скрипт php.
В php-скрипте почти ничего нет. (coz я все еще разрабатываю его.) это только замена video.yahoo.com на youtube.com. и несколько переменной и взрываться() для разбора входной строки, все ... но сценарий все еще использует огромное количество памяти
здесь верхний выход:
PID USER VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32059 squid 19720 7432 4396 R 0.9 2.9 0:00.02 php
32063 squid 19720 7436 4396 R 0.9 2.9 0:00.02 php
32066 squid 19720 7436 4396 R 0.9 2.9 0:00.02 php
32068 squid 19460 6188 3472 R 0.9 2.4 0:00.02 php
32070 squid 19720 7432 4396 R 0.9 2.9 0:00.02 php
32074 squid 19588 6792 3924 R 0.9 2.6 0:00.02 php
32077 squid 19720 7436 4396 R 0.9 2.9 0:00.02 php
здесь есть PHP скрипт
#!/opt/lampp/bin/php -q
<php
ini_set('html_errors',false);
ini_set('implicit_flush',true);
ini_set('max_execution_time',0);
ini_set('register_argc_argv',true);
$nl="\n"; $tab="\t";
$ds=DIRECTORY_SEPARATOR;
$lamppdir='/opt/lampp/';
$htdocsdir='/opt/lampp/htdocs/';
$wdir='/opt/lampp/htdocs/bin/';
$incdir=$htdocsdir.'inc/';
$logfile=$wdir.'log.txt';
if ($argc>1){
$return=$argv[1];
$return=explode(' ',trim($return));
$url=$return[0];
$sourceip=$return[1];
$user=$return[2];
$method=$return[3];
$urlgroup=$return[4];
$myip=$return[5];
$myport=$return[6];
$logdata=$argv[1];
// if(strlen($logdata)>50){ file_put_contents($logfile,$logdata.$nl,FILE_APPEND); }
fwrite(STDOUT,$return[0]."\r\n");
}
exit(0);
А вот Баш скрипт
#!/bin/bash
lamppdir=/opt/lampp/
phpexecpath=/opt/lampp/bin/php
phpredirectorpath=/opt/lampp/htdocs/bin/redir.php
logdfile=/opt/lampp/htdocs/bin/log.txt
forcedexit=false
while [ "${forcedexit}" != "true" ]
do
read squidinput
phpout=`"${phpexecpath}" "${phpredirectorpath}" "${squidinput}"`
echo "${phpout}"
done
echo "\r\n"
exit 0
я уже гугле найти любую полезную документацию по PHP кли & использования источника, но не повезло.
У вас есть советы по уменьшению использования источника?
Извините, что проблема связана с кодом. Я не мог исправить с помощью разных методов пасты :( – risyasin
Простой способ вставить код: скопируйте и вставьте его, затем выберите код и нажмите кнопку 101010 на панели инструментов (или нажмите Ctrl-K). Это будет отформатировать его как код –
Спасибо, Джон. :) Это сработало. Я имею в виду ctrl + K вместо того, чтобы вставлять выделенный текст. – risyasin