Selam,
Üzerinde birden fazla sanal uç tanımli bir web makinesinde her alan adının
kök dizininden başka yere gidememesi için PHP-FPM ve fastcgi ayarı
yapmıştım ama bir türlü istediğim gibi olmadı. PHP içerisindeki chdir,
readdir gibi dizin değiştirme komutları ile başka dizinlere gidilebiliyor.
Bu komutları yasaklayabilirim ama bunları kullanan başka alan adları
etkileniyor. Derdim bir alan adı kendisi için tanımlanmış kök dizininden
başka yerlere gidemesin.
Debian Squeeze kullanıyorum.
/etc/php5/fpm/pool.d/foo.conf ayarı şu şekilde
[foo]
user = foo
group = foo
listen = 127.0.0.1:9018
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chroot = /var/www/foo
chdir = /
php_admin_value[disable_functions] = dir,chdir,opendir,readdir
php_admin_value[doc_root] = /var/www/ybm
php_admin_value[open_basedir] = /var/www/ybm
access.log = /var/log/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
/etc/apache2/sites-enables/foo.com ayarı şu şekilde
<VirtualHost 19x.xxx.xxx.xx>
DocumentRoot /var/www/foo
ServerName foo.com
<IfModule mod_fastcgi.c>
FastCgiExternalServer /ybmcgi/php5-wrapper -host 127.0.0.1:9018
-user foouser -group foogroup
ScriptAlias /foocgi/ /var/www/foo/cgi-bin/
AddHandler php5-fastcgi .php
Action php5-fastcgi /foocgi/php5-wrapper
AddType application/x-httpd-php .php
<Directory /var/www/foo/cgi-bin/>
SetHandler fastcgi-script
Options +ExecCGI
</Directory>
</IfModule>
<Directory /var/www/foo>
allow from all
Options -Indexes SymLinksIfOwnerMatch
</Directory>
</VirtualHost>
/var/www/ybm/cgi-bin/php5-wrapper dosyası şu şekilde
#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
#export PHP_FCGI_MAX_REQUESTS=5000
#export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php
/etc/apache2/mods-enabled/fastcgi.conf ayarı şu şekilde
<IfModule mod_fastcgi.c>
# FastCgiConfig -minProcesses 5 -maxProcesses 100
FastCgiConfig -autoUpdate -singleThreshold 100 -killInterval 300
-idle-timeout 240 -maxClassProcesses 1 -pass-header HTTP_AUTHORIZATION
FastCgiWrapper /usr/lib/apache2/suexec
<Directory /usr/local/sbin>
Options ExecCGI FollowSymLinks
SetHandler fastcgi-script
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/cgi-bin/">
AllowOverride none
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</IfModule>
Bir şekilde /etc/php5/fpm/pool.d/foo.conf dosyasındaki php_admin_value
ifadeleri çalışmıyor. /var/log/foo.access.log dosyasının içeriği hep boş.
Ama sayfa açılıyor. netstat çıktısında 9018 numaralı port dinlemede.
Daha önce bu tür sorunlarla karşılaşmış olanlar varsa yorumlarını
bekliyorum.
Kolaylıklar.
--
Oğuz Yarımtepe
http://about.me/oguzy
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu