<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gurcanozturk.com &#187; php</title>
	<atom:link href="http://gurcanozturk.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://gurcanozturk.com</link>
	<description>başka türlü birşey benim istediğim</description>
	<lastBuildDate>Fri, 20 Apr 2012 14:09:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>NAGIOS ile Wowza sunucusunu ve kullanıcı sayısını kontrol etmek</title>
		<link>http://gurcanozturk.com/2011/03/nagios-ile-wowza-sunucusunu-ve-kullanici-sayisini-kontrol-etmek/</link>
		<comments>http://gurcanozturk.com/2011/03/nagios-ile-wowza-sunucusunu-ve-kullanici-sayisini-kontrol-etmek/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 11:21:32 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[Nagios]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Wowza]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wowza]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/?p=191</guid>
		<description><![CDATA[NAGIOS NRPE ile Wowza sunucusunu ve kullanıcı sayısını kontrol etmek yazısının geliştirilmiş ve NRPE yerine Wowza &#8216;nın XML arayüzü kullanılarak değiştirilmiş halidir. Ocak ayında yazdığım makalede kullandığım JMX arayüzü Wowza &#8216;nın ve haliyle Java &#8216;nın doğası gereği oldukça yavaştı. Eğer sunucuda yoğun bir kaynak (CPU, RAM, disk I/O) kullanımı varsa JMX arayüzü kısa sürede timeout [...]]]></description>
			<content:encoded><![CDATA[<p><strong> <a href="http://gurcanozturk.com/2011/01/17/nagios-nrpe-ile-wowza-sunucusunu-ve-kullanici-sayisini-kontrol-etmek/">NAGIOS NRPE ile Wowza sunucusunu ve kullanıcı sayısını kontrol etmek</a> yazısının geliştirilmiş ve NRPE yerine Wowza &#8216;nın XML arayüzü kullanılarak değiştirilmiş halidir.<br />
</strong><br />
Ocak ayında yazdığım makalede kullandığım JMX arayüzü Wowza &#8216;nın ve haliyle Java &#8216;nın doğası gereği oldukça yavaştı. Eğer sunucuda yoğun bir kaynak (CPU, RAM, disk I/O) kullanımı varsa JMX arayüzü kısa sürede timeout olup hata veriyordu. Bu sebeple işlemi hem daha basit hale getirmek hem de tek bir noktada toplayabilmek için Wowza &#8216;nın XML arayüzünü kullanmaya karar verdim. İşte nasıl yapıldığı.<br />
<span id="more-191"></span><br />
- Wowza sunucuların XML arayüzünde bağlantı sayısını veren kısım aktif olarak geliyor, ancak güvenlik sebebiyle bu bilgileri parola ile korumak isteyebilirsiniz. Parola koruması ekleyebilmek için Wowza &#8216;nın yapılandırma dizinininde <strong>VHost.xml</strong> dosyasında TCP <strong>8086</strong> portunda çalışan <strong>Admin HostPort</strong> yapılandırmasında aşağıdaki değişiklik yapılmalıdır.<br />
( 120. satırdaki <strong>AuthenticationMethod</strong> parametresi &#8220;<strong>None</strong>&#8221; yerine &#8220;<strong>admin-digest</strong>&#8221; yapılmalıdır.)</p>
<blockquote><p><HTTPProvider><br />
       <BaseClass>com.wowza.wms.http.HTTPConnectionCountsXML</BaseClass><br />
       <RequestFilters>connectioncounts*</RequestFilters><br />
       <AuthenticationMethod><strong>admin-digest</strong></AuthenticationMethod><br />
</HTTPProvider></p></blockquote>
<p>- Daha sonra bağlantı istatistikleri için Wowza yapılandırma dizinindeki <strong>admin.password</strong> dosyasını düzenleyerek bir kullanıcı ve parola belirleyin. Dosyanın içeriği aşağıdaki gibi olmalıdır.</p>
<blockquote><p>
Linux için dosyanın tam adresi; /usr/local/WowzaMediaServer/conf/admin.password</p>
<p># Admin password file (format [username][space][password])<br />
wowzastats wowzastatspassword
</p></blockquote>
<p>- Parola belirledikten sonra Wowza &#8216;yı yeniden başlatın ve <strong>connectioncounts</strong> linkini aşağıdakine benzer şekilde deneyin. </p>
<blockquote><p><strong>http://[wowza-ip-adresi]:8086/connectioncounts/</strong></p></blockquote>
<p>- Yapılandırma normal bir şekilde çalışıyorsa kullanıcı ismi ve parola girmenizi isteyen bir pencere çıkacaktır. Kullanıcı ve parolayı girdiğinizde bağlantı istatistiklerini ekrana gönderen bir XML arayüzü ile karşılacaksınız. Amacımız bu arayüzden herhangi bir yazılım dili ile (ben PHP kullanacağım siz isterseniz başka dil de kullanabilirsiniz) istediğimiz veriyi okuyarak NAGIOS &#8216;a göndermek.<br />
<code><br />
<strong>* Parola korumalı bir web sayfasından veri okuyabilmek için ben php-CURL kullandım, kullandığınız yazılım diline göre bu değişebilir. PHP kullanacaksanız <a href="http://php.net/manual/en/book.curl.php">php-curl</a> paketinin kurulu olduğundan emin olun.</strong></code></p>
<p>Amelece yazılmış PHP scriptimi <a href='http://gurcanozturk.com/wp-content/uploads/2011/03/check_wowzacount.php_.txt'>check_wowzacount.php</a> adresinden görebilirsiniz. Scripti php cli ile calıştırarak deneyebilirsiniz.</p>
<p>Sıra geldi scripti NAGIOS &#8216;tan çağırmak için ayarlara:</p>
<p>- Scripti NAGIOS scriptleri arasına (örn: <strong>/usr/local/nagios/libexec/</strong>) check_wowzacount.php olarak kopyalayın.<br />
- Scripti NAGIOS içerisinden çağırmak için NAGIOS komut tanımları (örn: <strong>/usr/local/nagios/etc/objects/commands.cfg</strong>)  içine aşağıdaki satırları ekleyin.</p>
<blockquote><p># Check Wowza Connected Users<br />
define command {<br />
command_name check_wowzacount<br />
command_line $USER1$/check_wowzacount.php<br />
}
</p></blockquote>
<p>- Oluşturduğumuz özel NAGIOS komutu Wowza sunucunun NAGIOS host ayarları aşağıdakine benzer şekilde oluşturulmalı.</p>
<blockquote><p>   define host{<br />
    use stream-server<br />
    host_name TMD-wowza2<br />
    alias TMD-wowza2<br />
    address 10.10.5.53<br />
    contact_groups stream-admins<br />
    }</p>
<p>    define service{<br />
    use local-service<br />
    host_name TMD-wowza2<br />
    service_description PING<br />
    check_command check_ping!300.0,20%!800.0,60%<br />
    notifications_enabled 1<br />
    contact_groups stream-admins<br />
    }</p>
<p>    define service{<br />
    use stream-service<br />
    host_name TMD-wowza2<br />
    service_description ConnectedUsers<br />
    check_command check_wowzacount<br />
    notifications_enabled 1<br />
    contact_groups stream-admins<br />
    }
</p></blockquote>
<p>NAGIOS yapılandırmasını yeniden okuttuktan sonra Wowza &#8216;ya bağlı kullanıcı sayısını, Wowza sunucuda script oluşturmadan, almanız mümkün. Afiyet olsun <img src='http://gurcanozturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2011/03/nagios-ile-wowza-sunucusunu-ve-kullanici-sayisini-kontrol-etmek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netscaler HTTP Callout ve PHP ile IP adresine göre coğrafik yönlendirme yapılması</title>
		<link>http://gurcanozturk.com/2011/03/netscaler-http-callout-ve-php-ile-ip-adresine-gore-cografik-yonlendirme-yapilmasi/</link>
		<comments>http://gurcanozturk.com/2011/03/netscaler-http-callout-ve-php-ile-ip-adresine-gore-cografik-yonlendirme-yapilmasi/#comments</comments>
		<pubDate>Sat, 12 Mar 2011 13:53:38 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[NetScaler]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[geographical redirection]]></category>
		<category><![CDATA[HTTP Callout]]></category>
		<category><![CDATA[netscaler]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[policy]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/?p=175</guid>
		<description><![CDATA[NetScaler 9.0 versiyonu ile birlikte, gelen isteklerin NetScaler arkasındaki herhangi bir Virtual Server&#8217;a, back-end sunucuya veya 3. bir servise gönderilerek işlenmesi mümkün olabiliyor. Bu işleme &#8220;HTTP Callout&#8221; adı verilmiş. (Türkçe bu kadar kötü anlatılabilirdi.) Bir HTTP callout işlemi aşağıdaki aşamalardan oluşuyor; 1. Kullanıcı isteği NetScaler tarafindan karşılanır. 2. Policy 3. parti servise önceden tanımlanmış bir [...]]]></description>
			<content:encoded><![CDATA[<p>NetScaler 9.0 versiyonu ile birlikte, gelen isteklerin NetScaler arkasındaki herhangi bir Virtual Server&#8217;a, back-end sunucuya veya 3. bir servise gönderilerek işlenmesi mümkün olabiliyor. Bu işleme &#8220;HTTP Callout&#8221; adı verilmiş. (Türkçe bu kadar kötü anlatılabilirdi.)</p>
<p>Bir HTTP callout işlemi aşağıdaki aşamalardan oluşuyor;<br />
<span id="more-175"></span><br />
1. Kullanıcı isteği NetScaler tarafindan karşılanır.<br />
2. Policy 3. parti servise önceden tanımlanmış bir HTTP (GET veya POST) isteği (HTTP CALLOUT) yapar.<br />
3. Servisten dönen yanıta göre  bir policy (responder, filter, rewrite) çalıştırılır.</p>
<p>Benim ihtiyacım ise, gelen isteklerin IP adresinden ülkelerini bulup kontrol etmek ve Türkiye dışındaki IP adreslerine girişi engellemek ve  istekleri ülkelerine coğrafik olarak en yakın sisteme eriştirmekti. Biraz PHP bilgisi ve HTTP Callout ile bu oldukça basit bir çalışmayla mümkün.</p>
<p>Aşağıdaki örnekte Netscaler <a href="http://gurcanozturk.com">gurcanozturk.com</a> adlı virtual servise gelen HTTP isteklerinin IP adresilerini 192.168.1.10 IP adresli HTTP sunucudaki geocheck.php scriptine göndermektedir. Callout sunucu isteği yapan IP adresinin hangi ülkeden geldiğini <a href="http://www.maxmind.com/app/geolitecountry">Maxmind GeoLite Country</a> veritabanını kullanarak kontrol edip, istek Türkiye&#8217;den yapılmış ise isteği <a href="http://gurcanozturk.com.tr">gurcanozturk.com.tr</a> adresine yönlendirir, Türkiye dışından yapılmış ise kullanıcıyı <a href="http://gurcanozturk.com">gurcanozturk.com</a> adresinde tutar.</p>
<blockquote><p>add policy httpCallout redirect_callout<br />
set policy httpCallout redirect_callout -IPAddress 192.168.1.10 -port 80 -returnType BOOL -hostExpr &#8220;&#8221;192.168.1.10&#8243;&#8221; -urlStemExpr &#8220;&#8221;/geocheck.php&#8221;" -headers Client_IP(CLIENT.IP.SRC) -parameters Client_IP(CLIENT.IP.SRC) -resultExpr &#8220;HTTP.RES.BODY(100).CONTAINS(&#8220;ULKE:TR&#8221;)&#8221;<br />
add responder action callout_test_responder redirect &#8220;&#8221;http://www.gurcanozturk.com&#8221;" -bypassSafetyCheck YES<br />
add responder policy callout_respond &#8220;SYS.HTTP_CALLOUT(redirect_callout)&#8221; callout_test_responder<br />
bind lb vserver gurcanozturk.com.tr -policyName callout_respond -priority 100 -gotoPriorityExpression END
</p></blockquote>
<p>Bunun için öncelikle 192.168.1.10 IP adresli callout sunucuya <a href="http://www.maxmind.com/app/geolitecountry">Maxmind GeoLite Country</a> veritabanı kurulmalı. Veritabanının binary halini <a href="http://www.maxmind.com/app/geolitecountry">http://www.maxmind.com/app/geolitecountry</a> adresinden download edebilirsiniz. Ayrica bu veritabanını PHP ile kullanmak için <a href=" http://geolite.maxmind.com/download/geoip/api/php/geoip.inc"> http://geolite.maxmind.com/download/geoip/api/php/geoip.inc</a> adresindeki GeoIP PHP API&#8217; ye de ihtiyacınız var. Her iki dosyayı web sunucuda bir dizine koyduktan sonra aşağıdaki kodu geocheck.php olarak kullanabilirsiniz.</p>
<blockquote><p><?<br />
include("geoip.inc");</p>
<p>$ip = $_GET["Client_IP"];<br />
$handle = geoip_open("GeoIP.dat", GEOIP_LITE);<br />
$ulke = geoip_country_code_by_addr($handle, $ip);</p>
<p>print "ULKE:$ulke";</p>
<p>geoip_close($handle);<br />
?>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2011/03/netscaler-http-callout-ve-php-ile-ip-adresine-gore-cografik-yonlendirme-yapilmasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NAGIOS mesajlarını iPhone&#8217;a göndermek</title>
		<link>http://gurcanozturk.com/2011/02/143/</link>
		<comments>http://gurcanozturk.com/2011/02/143/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 11:57:34 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[Nagios]]></category>
		<category><![CDATA[NetApp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[nagios]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[prowl]]></category>
		<category><![CDATA[push notification]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/?p=143</guid>
		<description><![CDATA[Sistem yöneticisi olarak, çalışan tüm sistemleri NAGIOS ile izlediğimi bir çok kez yazmıştım. Aynı zamanda siz de benim gibi meraklı bir iPhone kullanıcısı iseniz bu yazıyı oldukça seveceksiniz. iPhone için hazırlanmış Prowl adlı uygulama sayesinde NAGIOS&#8217;un gönderdiği arıza/uyarı mesajlarını, iPhone&#8217;da &#8220;Push Notification&#8221; olarak görmek mümkün. Bu işlemin çalışması için aşağıdaki işlemlerin yapılması gerekiyor: 1) Prowlapp.com [...]]]></description>
			<content:encoded><![CDATA[<p>Sistem yöneticisi olarak, çalışan tüm sistemleri NAGIOS ile izlediğimi bir çok kez yazmıştım. Aynı zamanda siz de benim gibi meraklı bir iPhone kullanıcısı iseniz bu yazıyı oldukça seveceksiniz.</p>
<p>iPhone için hazırlanmış <strong>Prowl</strong> adlı uygulama sayesinde NAGIOS&#8217;un gönderdiği arıza/uyarı mesajlarını, iPhone&#8217;da <strong>&#8220;Push Notification&#8221;</strong> olarak görmek mümkün. Bu işlemin çalışması için aşağıdaki işlemlerin yapılması gerekiyor:<br />
<span id="more-143"></span><br />
<strong>1) <a href="http://prowlapp.com">Prowlapp.com</a> sitesine uye olarak <strong>&#8220;API KEY&#8221;</strong> alınması,</strong></p>
<p><a href="https://www.prowlapp.com/register.php">https://www.prowlapp.com/register.php</a> adresine girerek kendinize bir kullanıcı adı ve parola oluşturun ve <a href="https://www.prowlapp.com/api_settings.php">https://www.prowlapp.com/api_settings.php</a> adresinden bir API KEY oluşturun.</p>
<p><strong>2) iPhone &#8216;a Prowl uygulamasının kurulması.</strong><br />
iPhone &#8216;a Prowl uygulamasını kurmak için, <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=320876271">http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=320876271</a> linkinden uygulamayı iTunes ile kurun veya iPhone&#8217;daki App Store uygulamasından Prowl uygulamasını arayarak kurun.</p>
<p>Uygulamayı calıştırdıktan sonra Settings kısmına girin ve <a href="http://prowlapp.com">prowlapp.com</a> sitesine girdiğiniz kullanıcı adı ve parolasını yazın.</p>
<p><strong>3) NAGIOS kurulu sunucuya prowl scriptinin ayarlanması ve test edilmesi</strong></p>
<p>Öncelikle Prowl için PERL scriptinin download edilmesi ve çalıştırma yetkisinin verilmesi gerekiyor.</p>
<p><a href="http://prowl.weks.net/static/prowl.pl"> http://prowl.weks.net/static/prowl.pl</a> adresinden scripti download edip calistirma hakki verin.</p>
<p>Perl scriptinin prowlapp.com sitesine SSL ile erişebilmesi için aşağıdaki PERL modüllerinin kurulması gerekiyor. (Modüllerin kaynak kodlarını <a href="http://search.cpan.org">http://search.cpan.org</a> adresinden bulabilirsiniz.)</p>
<p><code>cpan install Crypt::SSLeay<br />
cpan install LWP::UserAgent<br />
</code></p>
<p>Sıra test aşamasında. Test için <a href="http://prowlapp.com">prowlapp.com</a> sitesinden aldığınız API KEY bilgisini aşağıdaki şekilde komuta parametre olarak girin ve komut satırından çalıştırın.</p>
<p><code>/path/to/prowl.pl -apikey='APIKEY' -application='prowl.pl' -event='test' -notification='Se Se 1 2 DENEME'</code></p>
<p>Her şey düzgün bir şekilde ayarlanmışsa komutu çalıştırdıktan hemen sonra komut satırında <strong>&#8216;Notification successfully posted.&#8217;</strong> mesajını, iPhone ekranında ise <strong>&#8216;Se Se 1 2 DENEME&#8217;</strong> mesajını göreceksiniz. Bu denemenin başarılı şekilde çalıştığından emin olun ve NAGIOS için ayarları tamamlayın.</p>
<p><strong>4) NAGIOS&#8217;un uyarı gönderme ayarlarının yapılması.</strong></p>
<p>iPhone sahibi şanslı arkadaş için <strong>/usr/local/nagios/etc/objects/contacts.cfg</strong> içinde yeni bir contact bilgisi oluşturun veya varolan bilgiyi aşağıdakine benzer şekilde değiştirin. </p>
<p><code>define contact{<br />
        contact_name                    gurcanozturk<br />
        alias                           Gurcan OZTURK<br />
        service_notification_period     24x7<br />
        host_notification_period        24x7<br />
        service_notification_options    w,u,c,r<br />
        host_notification_options       d,u,r<br />
        service_notification_commands   notify-service-by-prowl<br />
        host_notification_commands      notify-host-by-prowl<br />
        _prowl_apikey                   APIKEY<br />
}<br />
</code></p>
<p>Bu bilgideki <strong>&#8220;_prowl_apikey&#8221;</strong> satırındaki alt çizgi işareti zorunlu, değiştirmeyin. </p>
<p>Daha sonra <strong>/usr/local/nagios/etc/objects/commands.cfg</strong> dosyasına Prowl için özel ayarları eklemek gerekiyor. Aşağıdaki satırları aynen girin ve NAGIOS yapılandırmasını reload edin.</p>
<p><strong>Not: Eğer NAGIOS &#8216;un sadece CRITICAL uyarılarını göndermesini isterseniz &#8220;-priority=1&#8243; parametresini &#8220;-priority=2&#8243; olarak değiştirin.</strong></p>
<p><code></p>
<p>define command{<br />
            command_name notify-host-by-prowl<br />
            command_line /usr/bin/perl -w /usr/local/bin/prowl.pl -apikey="$_CONTACTPROWL_APIKEY$" -priority=1 -application="Nagios" -event="Host" -notification="$HOSTNAME$ $HOSTDESC$ '$HOSTOUTPUT$'"<br />
    }</p>
<p>define command{<br />
            command_name notify-service-by-prowl<br />
            command_line /usr/bin/perl -w /usr/local/bin/prowl.pl -apikey="$_CONTACTPROWL_APIKEY$" -priority=1 -application="Nagios" -event="Service" -notification="$HOSTNAME$ $SERVICEDESC$ '$SERVICEOUTPUT$'"<br />
    }</code></p>
<p>Artık herhangi bir sunucunuzda veya servisinizde problem olduğunda NAGIOS uyarılarını iPhone &#8216;da popup mesaj olarak görebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2011/02/143/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aynı sunucu üzerinde PHP4 ile PHP5 kurulumu</title>
		<link>http://gurcanozturk.com/2009/05/ayni-sunucu-uzerinde-php4-ile-php5-kurulumu/</link>
		<comments>http://gurcanozturk.com/2009/05/ayni-sunucu-uzerinde-php4-ile-php5-kurulumu/#comments</comments>
		<pubDate>Fri, 22 May 2009 13:07:54 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/2009/05/22/ayni-sunucu-uzerinde-php4-ile-php5-kurulumu/</guid>
		<description><![CDATA[Genelde yaşadığım problemlerden biridir: PHP4 ile gelen XML fonksiyonlarını kullanarak yazılmış bir PHP yazılımı, PHP5 çalıştıran bir sunucuda çalışmaz, hatalarla uğraşmak programı yeniden yazmaktan zor gelir. Programı yeniden yazmak ise ölümdür. Bu durumda en mantıklı çözüm, ya iki ayrı web sunucu kullanmak (farklı portlarda çalışan iki ayrı web server instance) veya PHP4 ve PHP5&#8242;i aynı [...]]]></description>
			<content:encoded><![CDATA[<p>Genelde yaşadığım problemlerden biridir: PHP4 ile gelen XML fonksiyonlarını kullanarak yazılmış bir PHP yazılımı, PHP5 çalıştıran bir sunucuda çalışmaz, hatalarla uğraşmak programı yeniden yazmaktan zor gelir. Programı yeniden yazmak ise ölümdür. Bu durumda en mantıklı çözüm, ya iki ayrı web sunucu kullanmak (farklı portlarda çalışan iki ayrı web server instance) veya PHP4 ve PHP5&#8242;i aynı sunucuya yüklemek.<br />
<br />
İşte aynı sunucu üzerinde ikinci bir web sunucu çalıştırmadan, aynı web sunucu üzerinde hem PHP4 hem PHP5 kullanabilmek için yapılacaklar. Sunucu olarak RHEL 5/CentOS 5 kullandığım için bu dağıtıma göre anlattım.<br />
<span id="more-50"></span><br />
RHEL5/CentOS5 kurduğunuzda eğer web sunucu/php kurulmasını istemişseniz PHP5.x kurulacaktır. Öncelike PHP5 kurduktan sonra sonra PHP4 kurulacaktır. PHP5&#8242;i normal bir şekilde RPM ile kurun.<br />
<br />
Daha sonra, http://tr.php.net adresinden PHP4 source kodunu indirin ve kaynak kodu uygun bir geçici dizine açın. Ben bu örnekte PHP 4.4.9 kullandım. (Copy/Paste yapabilirsiniz.)</p>
<p><code>cd /usr/local/src/<br />
wget http://tr.php.net/get/php-4.4.9.tar.gz/from/a/mirror<br />
tar -zxf php-4.4.9.tar.gz<br />
cd php-4.4.9<br />
./configure --prefix=/usr/local/php4 --enable-force-cgi-redirect --enable-fastcgi --with-config-file-path=/usr/local/etc/php4/cgi --with-curl<br />
--with-curl-dir=/usr/local/lib --with-gd --with-gd-dir=/usr/local/lib --with-gettext --with-jpeg-dir=/usr/local/lib --with-kerberos --with-mcrypt<br />
--with-mhash --with-mysql=/usr --with-pear --with-png-dir=/usr/local/lib --with-xml --with-zlib --with-zlib-dir=/usr/include --with-zip<br />
--enable-bcmath --enable-calendar --enable-ftp --enable-magic-quotes --enable-sockets --enable-track-vars --enable-mbstring --enable-memory-limit</p>
<p>make<br />
make install</p>
<p>mkdir -p /usr/local/etc/php4/cgi<br />
cp /usr/local/src/php-4.4.9/php.ini-dist /usr/local/etc/php4/cgi/php.ini<br />
cp /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php4.conf</p>
<p>echo "DirectoryIndex index.php4 index.php3" >> /etc/httpd/conf.d/php4.conf<br />
echo "Action php4-script /cgi-bin/php4" >> /etc/httpd/conf.d/php4.conf<br />
echo "AddHandler php4-script .php3 .php4" >> /etc/httpd/conf.d/php4.conf</p>
<p>cd /var/www/cgi-bin/<br />
ln /usr/local/php4/bin/php php4<br />
</code><br />
<br />
/etc/httpd/conf.d/php4.conf dosyasındaki &#8220;LoadModule php5&#8230;&#8221; satırını kapatın ya da sildikten sonra Apache web sunucusunu yeniden başlatın ve PHP4&#8242;u test edin. Test için iki ayrı php dosyası kullanın ve her birinin içinde phpinfo() fonksiyounu çağırın. Fonksiyon çıktılarında PHP4 CGI, PHP5 ise DSO olarak çalışacaktır.</p>
<p><code>/var/www/html/info.php4<br />
/var/www/html/info.php</p>
<p><?<br />
phpinfo();<br />
?><br />
</code></p>
<p>
Artık web sunucunuzda .php3 ve .php4 uzantılı PHP dosyalarınız PHP4 kullanılarak, .php uzantılı PHP dosyalarınız ise PHP5 kullanılarak çalıştırılacaktır.</p>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2009/05/ayni-sunucu-uzerinde-php4-ile-php5-kurulumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phpmyadmin error: “Cannot start session without errors”</title>
		<link>http://gurcanozturk.com/2009/02/phpmyadmin-error-%e2%80%9ccannot-start-session-without-errors%e2%80%9d/</link>
		<comments>http://gurcanozturk.com/2009/02/phpmyadmin-error-%e2%80%9ccannot-start-session-without-errors%e2%80%9d/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 16:43:31 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/2009/02/03/phpmyadmin-error-%e2%80%9ccannot-start-session-without-errors%e2%80%9d/</guid>
		<description><![CDATA[RHEL 5 uzerinde, phpmyadmin kurup web sunucu olarak apache2 yerine lighttpd kullanmaya karar verirseniz, dikkat etmeniz gereken bir nokta var: Kurulum sonrasi, phpmyadmine web uzerinden erismeye calistiginizda, &#8220;Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.&#8221; gibi hata aldiysaniz, sorun php session [...]]]></description>
			<content:encoded><![CDATA[<p>RHEL 5 uzerinde, phpmyadmin kurup web sunucu olarak apache2 yerine lighttpd kullanmaya karar verirseniz, dikkat etmeniz gereken bir nokta var:</p>
<p>Kurulum sonrasi, phpmyadmine web uzerinden erismeye calistiginizda, </p>
<blockquote><p>&#8220;Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.&#8221;
</p></blockquote>
<p>gibi hata aldiysaniz, sorun php session bilgilerini tutacak olan dizinin kullanici haklarini, hangi akla hizmetse lighttpd yerine apache kullanicisi olarak ayarlamasi. Bu durumda da lighttpd, session bilgisini dizine yazamadigi icin hata veriyor.</p>
<p>Cozum oldukca basit;<br />
<br />
/var/lib/php/session/ dizininin kullanici hakkini apache degil lighttpd yapmlisiniz. Daha sonra gerekirse bu dizine yazma hakkini 777 yapin. Gerekli komutlar;</p>
<blockquote><p>chown lighttpd.lighttpd -R /var/lib/php/session/<br />
chmod -R 777 /var/lib/php/session/
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2009/02/phpmyadmin-error-%e2%80%9ccannot-start-session-without-errors%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

