Friends
Alfanumerički hash fiksne dužine
Moj trud može nekom zatrebati, stoga evo kratke funkcije koja vraća jedinstveni hash fiksne dužine 10 slova/brojeva:
function tenhash($s) { $rlast = dechex((int)substr(sprintf("%09d", $s), -10)); for (; strlen($rlast) < 10; ) { $rlast = chr((($tx = rand(48, 90)) > 57) && $tx < 65 ? $tx+=9 : $tx ).$rlast; } return $rlast; }
Jedna napomena, maskimalni broj za kojeg se generiše hash može imati devet cifara.
Podešavanje suEXEC za PHP na Virtualminu GPL
Napomena pre početka, ovako se radi u Debianu, veoma slično je i za ostale GNU/Linux distribucije.
Prvo, napraviti skel za nove hostove, kao root:
cd /etc/skelmkdir -p etc/php5
cp /etc/php5/apache2/php.ini /etc/skel/etc/php5/php.ini
mkdir fcgi-bin
vi fcgi-bin/php5.fcgi
U fajl php5.fcgi upišite ovo:
#!/bin/bashexport PHPRC=$PWD/../etc/php5
umask 022
export SCRIPT_FILENAME=$PATH_TRANSLATED
exec /usr/bin/php-cgi
Promenite dozvole ovom fajlu:
chmod 744 fcgi-bin/php5.fcgiDalje, ulogujte se u Virtualmin, pa idite na System Settings -> Server Templates -> Default Settings -> Apache website i u polje Directives and settings ubacite sledeće:
ServerName ${DOM}ServerAlias www.${DOM}
DocumentRoot ${HOME}/public_html
ErrorLog /var/log/virtualmin/${DOM}_error_log
CustomLog /var/log/virtualmin/${DOM}_access_log combined
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory ${HOME}/public_html>
Options -Indexes IncludesNOEXEC FollowSymLinks ExecCGI
allow from all
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php
</Directory>
<Directory ${HOME}/cgi-bin>
AddHandler cgi-script cgi
allow from all
</Directory>
Pa kliknite na Save.
I to je to. Sada će se PHP fajlovi izvršavati preko suEXEC što znači da fajlovi koje uplodujete preko PHP skripti unutar nekog CMS-a, recimo, moći biti promenjeni ili obrisani ukoliko se ulogujete preko FTP ili SSH.
Važno je samo zapamtiti da PHP fajlovi i wrapper skripta ne smeju biti world/grou writable. Ukoliko nešto ne bude u redu, pogledati u /var/log/apache2/suexec.log.



