J'essaye de coder un url_rewriter personnalisé pour calamar. & également en utilisant d'autres programmes url_rewriter comme squidGuard donc devez utiliser un wrapper pour pouvoir utiliser les deux ou n'importe quel autre programme.PHP cli Optimisation de l'utilisation de la mémoire
lorsque j'essaie de boucler avec php. (c'est ainsi comment calmars communique avec des programmes externes. STDIN/STDOUT. Il vous donne une url & vous devez envoyer le nouveau ou ancien arrière.)
il a une utilisation de la mémoire dévastatrice faisant même rien. J'ai changé pour l'envelopper avec un autre script bash ce n'est que quelques lignes. & il boucle au lieu de php. appelle php en externe. Lorsque le script php est terminé avec l'URL, il retourne &. de cette façon est beaucoup plus préférable qu'au lieu de boucler le script PHP.
dans le script PHP presque il n'y a rien maintenant. (coz je le développe toujours.) il remplace seulement video.yahoo.com sur youtube.com. et quelques variables et un explode() pour analyser la chaîne d'entrée qui est tout ... mais le script utilise encore énorme quantité de mémoire
est ici la sortie supérieure:
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
ici est le script 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);
Et voici le script bash
#!/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
i déjà googlé pour trouver toute la documentation utile sur l'utilisation des sources PHP cli & mais pas de chance.
Avez-vous des conseils pour diminuer l'utilisation de la source?
désolé pour le code de vue problème. Je n'ai pas pu corriger via différentes méthodes de collage :( – risyasin
Façon facile de coller le code: copiez et collez-le, puis sélectionnez le code et appuyez sur le bouton 101010 dans la barre d'outils (ou appuyez sur Ctrl-K). code –
Merci John. :) cela a fonctionné. Je veux dire ctrl + K au lieu d'essayer de coller le texte sélectionné. – risyasin