php etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
php etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Kasım 2009 Perşembe

Basit PHP Kurulumu

Eğer php ile çalışıyorsanız, bilgisayarınıza attığınız her formattan sonra apache, php, mysql, phpmyadmin gibi araçları kurmak sizi de sıkmış olmalı. Daha önce bir yazıda apache, php ve mysql'in nasıl kurulduğunu anlatmıştım, ancak bu işlemin bir alternatifi varken aynı işlemleri tekrar tekrar yapmak gereksiz ve sıkıcı olabilir. İşte bu yüzden, yine bir format sonrası, internette kısa bir araştırma yaptıktan sonra XAMPP'i buldum.

XAMPP, geliştirme sırasında kullanma ihtimaliniz yüksek olan bir çok araç barındırmaktadır. Windows paketinde apache, openssl, mysql, php, phpmyadmin, webalizer, geoip vb. programlar/araçlar içermekte. Ayrıca XAMPP çeşitli platformlarda da bulunmaktadır. Bu platformlar, Linux, Windows, Mac OS X ve Solaris.

Windows için son versiyonunu http://sourceforge.net/projects/xampp/files/ adresinden bulabilirsiniz. Bu sayfadaki kurulum dosyasını indirdikten sonra, bir kaç basit adımda kurulumu tamamlıyoruz.

xampp1

xampp2

Daha fazla bilgi için http://www.apachefriends.org/en/xampp.html adresini inceleyebilirsiniz.

9 Ağustos 2009 Pazar

Bilgisayarın IP'sinden Bağlandığı Ülke Nasıl Bulunur ?

Web sitenize giren kullanıcıların hangi ülkeden bağlandığını öğrenmek isteyebilirsiniz, böylelikle onlara uygun bir sayfa veya karşılama metni gösterebilirsiniz. Bu yazıda, geo ip veritabanı kullanarak, bunu nasıl yapılacağını anlatacağım.

Öncelikle işe veritabanı için gerekli csv dosyasını indirmekle başlıyoruz. Csv dosyasını http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip adresinden indirebilirsiniz.

İndirme işlemi tamamlandıktan sonra, bu dosyayı uygun bir veritabanına aktarmamız gerekiyor. Herhangi bir veritabanı oluşturun, ya da hali hazırdaki bir veritabanını kullanın. Daha sonra bu veritabanında bir tablo yaratın. Bu tablonun ismi 'geoip' olabilir. Uygun bir tablo oluşturmak için, aşağıdaki kodu çalıştırabilirsiniz.

CREATE TABLE IF NOT EXISTS `geoip` (
`start_ip` char(15) NOT NULL,
`end_ip` char(15) NOT NULL,
`start` int(10) unsigned NOT NULL,
`end` int(10) unsigned NOT NULL,
`cc` char(2) NOT NULL,
`cn` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Şimdi bu tabloya, indirdiğimiz csv'deki verileri yükleyeceğiz. Bunun için, indirdiğiniz csv dosyasının yerini bilmeniz gerekiyor. Aşağıdaki SQL sorgusunu

çalıştırdığınızda csv dosyası veritabanına yüklenecektir.

LOAD DATA LOCAL INFILE [dosyanın yolu] INTO TABLE [tablo adı] FIELDS TERMINATED BY [kolon ayıracı] ENCLOSED BY [kapatma işareti] LINES TERMINATED BY [satır ayıracı];

Yukarıdaki koddan tam anlaşılmayabilir. Ben kendi durumum için doldurduğumda aşağıdaki sonucu elde ediyorum.

LOAD DATA LOCAL INFILE 'c:\\GeoIPCountryWhois.csv' INTO TABLE geoip FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

Tablomuz hazır olduğuna göre, küçük bir php script'i ile ip'lerin hangi ülkeye ait olduğunu bulabilirsiniz.

<?php
$pth = "localhost";
$user = "root";
$psw = "123456";
$dbname = "country";

$con = mysql_connect($pth,$user,$psw);

if (!$con)
{
     die("Veritabanı bağlantısı sağlanamıyor: " . mysql_error());
}

mysql_select_db($dbname, $con);

// IPden Ülke kodunu ve ismini array olarak döndüren fonksiyon.
function getCountry($ip) {

          $ip = explode(".",$ip);
          
          $result = 16777216 * $ip[0] + 65536 * $ip[1] + 256 * $ip[2] + $ip[3];
          
          $sql = "SELECT cc, cn FROM geoip WHERE ".$result." BETWEEN start AND end";
          $result = mysql_query($sql);
          $country[0] = mysql_result($result,0,"cc");
          $country[1] = mysql_result($result,0,"cn");
          if(empty($ccode)) $ccode = "default";
          return $country;
}

$myip = $_SERVER['REMOTE_ADDR'];
$myip = "85.100.153.122"; // eğer localhostta çalıştırısanızi 127.0.0.1 döneceğinden, herhangi bir ülke bulunmayacaktır.
                // O yüzden örnek olarak bir ip adresi yazıyorum buraya, scripti kullanırken silmeyi unutmayın.
echo "IP Address = <b>".$myip."</b><br>n";
$code = getCountry($myip);
echo "Code = <b>".$code[0]."</b><br>n";
echo "Country = <b>".$code[1]."</b><br>n";

?>

17 Haziran 2009 Çarşamba

Apache, PHP ve MySQL Kurulumu


Apache Kurulumu

İlk önce, apache'nin kurulum dosyası indirilir. Son versiyonunu http://httpd.apache.org/download.cgi adresinden ya da http://godel.cs.bilgi.edu.tr/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi linkinden apache 2.2.11'i indirebilirsiniz.

Apache sunucusunu kurmadan önce, IIS'in kapalı olduğundan emin olun. IIS'i kapatmak için Denetim Masası->Yönetimsel Araçlar->Hizmetler'i açın. Sonra "World Wide Web Publishing" hizmetine sağ tıklayıp bu hizmeti durdurun. Bu hizmet sizde yüklü olmayabilir, yüklü değilse herhangi bir işlem yapmanıza gerek yok.


İndirdiğiniz dosyayı açın. Yukarıdaki ekrana geldiğinizde, alanları yukarıdaki gibi doldurabilirsiniz, zaten geliştirme amaçlı bir sunucu kurduğunuzdan bu bilgilerin çok da doğru olmasına gerek yok. İlk seçeneği seçerseniz, sunucu windows açıldığında otomatik başlatılacaktır. İkinci seçenekte ise, sunucuyu kullanmak istediğinizde sunucuyu başlatmanız gerekmektedir. Yüklemeyi herhangi bir değişiklik yapmadan tamamlıyoruz.Yükleme sırasında windows güvenlik duvarı uyarı verirse, engellemeyi kaldır seçeneğini seçmelisiniz. Yüklemeden sonra bilgisayarınızı yeniden başlatın.

Eğer yükleme düzgün olarak tamamlandıysa, windows'ta saatin yanında üzerinde yeşil ok bulunan bir apache logosu görmeliyiz. Şimdi internet explorer veya firefox gibi bir tarayıcıdan "http://localhost" adresine gidin. Eğer düzgün çalışıyorsa, "It works!" veya buna benzer bir mesaj/sayfa ile karşılaşacaksınız.

Eğer yeşil ok görünüyor ancak bu sayfaya ulaşamıyorsanız, apache'nin yükleme klasörüne gidin, bende "C:\Program Files\Apache Software Foundation\Apache2.2\conf" şeklinde bir dizinde. Bu dizindeki httpd.conf dosyasını açın, "Listen 8080" gibi bir satır görürseniz, bu sizin sunucunuzun 8080 portunu dinlediğini belirtir. Bu sefer, tekrar tarayıcınızı açın, adres olarak "http://localhost:8080/" yazın. Artık yukarıda bahsettiğim gibi bir mesajlar karşılaşmalısınız.

httpd.conf dosyasında, 'ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"' satırı, sunucu kök dizinini belirtiyor. Bu dizini daha basit bir dizinle değiştirebilirsiniz.

Bu dizinin kullanımına örnek olarak "C:/Program Files/Apache Software Foundation/Apache2.2/deneme.jpg" dosyasına, "http://localhost/deneme.jpg" olarak tarayıcınızdan ulaşabilirsiniz.

Son olarak, windows'un kendi WWW hizmetini kullanıyorsanız, apache'nin portunu değiştirmeniz gerekebilir. httpd.conf dosyasında "Listen 80" satırındaki 80 portunu istediğiniz bir sayıyla değiştirebilirsiniz.


Php Kurulumu

Php kurulumuna ilk olarak, php kurulum dosyasını indirerek başlıyoruz. http://www.php.net/downloads.php adresinden, ya da http://www.php.net/get/php-5.2.9-2-Win32.zip/from/a/mirror adresinden versiyon 5.2.9'u indirebilirsiniz.

İndirdiğiniz dosyayı, herhangi bir klasöre çıkarın. "C:\php" klasörü örnek olabilir. Açtığınız klasörde bulunan "php.ini-dist" dosyasını "php.ini" olarak yeniden adlandırıyoruz. Bu dosyayı not defteri veya herhangi bir yazı editörüyle açıyoruz. "doc_root =" satırını buluyoruz. Bunun için arama fonksiyonunu kullanmanızı öneririm. Bu satırı apache'nin kök diziniyle aynı yapın. Ben herhangi bir değişiklik yapmadığım için "doc_root = C:\Program Files\Apache Software Foundation\Apache2.2\" olarak değiştiriyorum. Aynı şekilde 'extension_dir = "./"' satırını da 'extension_dir = "C:\php\ext"' olarak değiştiriyoruz.

Şimdi ise, Php'yi apache'ye tanıtmamız gerekiyor. Bunun için "C:\Program Files\Apache Group\Apache2\conf\httpd.conf" dosyasını açıyoruz. Bu dosyada LoadModule bulunan satırların en altına gidip oraya birkaç satır eklememiz gerekiyor.

LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"

Bu satırlarıda ekledikten sonra dosyayı kaydedip, apache'yi yeniden başlatıyoruz. Bunun için saatin yanındaki apache simgesine sol tıklayıp Restart seçeneğini seçin. Eğer bir hata oluşmazsa apache'nizin artık php desteği olmalı. Eğer restart esnasında hata alırsanız, büyük ihtimalle versiyonlar uymuyordur.

LoadModule php5_module "c:/php/php5apache2.dll" satırını
LoadModule php5_module "c:/php/php5apache2_2.dll" olarak değiştirip kaydedin ve tekrar apache'yi yeniden başlatın. Bu kez herhangi bir sorun çıkmaması gerekiyor.

Apache simgesine çift tıkadığınızda açılan pencerede artık php yazısını görmeniz gerekiyor. (Resimdeki gibi)


Çalışan php sunucunuzun özelliklerini öğrenmek için, info.php adlı bir dosya oluşturun ve içine aşağıdaki satırları yazın.

<?php
phpinfo();
?>

Bu dosyayı çalıştırdığınızda aşağıdaki gibi bir sonuç almalısınız.



MYSQL Kurulumu

Her zamanki gibi, yine kurulum dosyasını indirmekle başlıyoruz işe. Şu an ki son versiyonu 5.1 olduğundan http://dev.mysql.com/downloads/mysql/5.1.html#win32 linkinden, windows için olan kurulumlardan Windows Essentials (x86)'yı indiriyoruz. İster kayıt olarak, ister olmayarak indirme işlemini tamamlıyoruz. İndirme işlemi bittikten sonra, kurulum dosyasını çalıştırarak, kurulumu bitiriyoruz. Diyaloğu bitirmeden önce, Configure Server seçeneğini seçili bırakıyoruz. Yeni çıkan pencerede sunucumuzu ayarlıyoruz.

Yeni pencerede, Next diyip "Detailed Configuration"ı seçiyoruz. Bir sonraki sayfada, Developer Machine'i seçiyoruz ve devam ediyoruz. Sonraki sayfada Multifunctional Database'i işaretleyip bir sonraki sayfaya geçiyoruz. Bu sayfada C'ye kurulum yapıcağımız için geçiyoruz ve sonraki sayfalarda, Decision Support, sonrakinde değişiklik yapmadan devam ediyoruz. Bir sonraki sayfada Best Support For Multilingualism seçeneğini seçiyoruz. Sonraki sayfayıda geçiyoruz. En son olarak root şifremizi girip, işlemi sonlandırıyoruz. "Execute" demeden önce, Zone Alarm gibi bir firewall kullanıyorsanız, ya 3306 portu için izin verin, ya da firewall'u kapatın.

Hepsinin beraber çalışabilmesi için mysql'i php'ye tanıtmamız gerekiyor. C:\php\php.ini dosyasında
;extension=php_mysql.dll
satırındaki noktalı virgülü kaldırıyoruz.
extension=php_mysql.dll

Bir sonraki adımda C:\php klsaöründe bulunan libmysql.dll dosyasını C:\Windows\system32 klasörüne kopyalamamız gerekiyor. Son olarak da apache'yi yeniden başlatıyoruz.

Bu adımıda uyguladıktan sonra, daha önce hazırladığımız http://localhost/info.php adresine gittiğinizde aşağıdaki resimdeki gibi bir sonuç almanız gerekiyor.