Ubuntu LAMP Rehberi
Bu yazıda Ubuntu’da adım adım LAMP sunucusunu nasıl kuracağımızı ve konfigüre edeceğimizi anlatacağım. LAMP kelimesinin açılımı Linux, Apache, MySQL ve PHP olarak kabul görse de, şu anki durumda MySQL yerine PostgreSQL’i ve PHP yerine Perl ile Python’ı da ekleyebiliriz. Kendi bilgisayarınıza LAMP sunucusu kurarak projelerinizi lokal olarak geliştirebilir ve web sunucunuza gönderebilirsiniz. İsterseniz kendi bilgisayarınızı hem web yazılımı geliştirme için hem de web sunucusu olarak da kullanabilirsiniz.
Mesela sabit IP alarak ve DNS adreslerini değiştirerek sahip olduğunuz alan adınızı kendi bilgisayarınıza yönlendirip, tamamen kendinizin konfigure edebileceği bir web sunucunuz olabilir. ADSL kullanıcıları için küçük bir not düşeyim; kullandığınız ADSL paketi limitli de olsa limitsiz de olsa Türk Telekom upload miktarına herhangi bir limit koymuyor. Yani “fatura çok gelir mi” derdi olmadan istediğiniz pakette bilgisayarınızı web sunucusu olarak kullanabilirsiniz.
Şimdi adım adım Ubuntu üzerinde LAMP sunucusunu nasıl kuracağımızı görelim. Aslında Ubuntu’nun harika paket yönetim sistemiyle herşey ne kadar kolay olsa da, hiç bilmeyenler için adım adım göstermek daha yararlı olur.
İlk önce sistemimizin güncel olduğundan emin olmak için şu komutları çalıştıralım:
apt-get update apt-get upgrade
Sistemimiz tüm güncellemeleri yaptıktan sonra ilk önce Apache web sunucusunu kuralım:
apt-get install apache2
Sadece bir web sunucusu altında aynı anda birden fazla web sitesi barındırabileceğinizi biliyor muydunuz? Mesela kendi web sunucunuzda hem blogunuzu (ornekblog.com), hem arkadaşınızın kişisel web sitesini (orneksite.com) hem de şirketinizin sitesini (orneksirket.com) barındırabilirsiniz. Bunun için Apache’nin sanal sunucu (virtual hosting) özelliğini kullanmamız gerekecek. Eğer kendi web sunucunuzu kuracaksanız bir sabit IP’niz olduğunu varsayıyorum. Türk Telekom’un aylık sabit IP ücreti en son 3 TL idi, çok fazla değiştiğini sanmıyorum. Şimdi Apache’yi bize verilen sabit IP’yi dinlemesi için konfigüre edelim. Sabit IP’mizin 193.140.110.65 olduğu varsayalım. /etc/apache2/ports.conf dosyasını açarak NameVirtualHost satırına sabit IP’mizi ekliyoruz ve 80 nolu portu dinlemesini söylüyoruz. Bu port http için standart porttur ancak isterseniz modeminizde yapacağın yönlendirme ile farklı bir portu dinlemesini de sağlayabilirsiniz.
NameVirtualHost 193.140.110.65:80
Daha sonra da /etc/apache2/sites-available/default dosyasını açarak <VirtualHost > ile başlayan satıra yine kendi sabit IP’mizi yazıyoruz.
<VirtualHost 193.140.110.65:80>
Şimdi de oluşturmak istediğimiz her bir sanal sunucu için /etc/apache2/sites-available/ dizininin altında bir dosya oluşturuyoruz. Bu dosyaların ismini oluşturmak istediğimiz sitelerin alan adlarını verelim. Mesela kişisel blogunuz için ornekblog.com isminde bir dosya oluşturup içine de şunu ekliyoruz:
<VirtualHost 193.140.110.65:80>
ServerAdmin info@ornekblog.com
ServerName ornekblog.com
ServerAlias www.ornekblog.com
DocumentRoot /srv/www/ornekblog.com/public_html/
ErrorLog /srv/www/ornekblog.com/logs/error.log
CustomLog /srv/www/ornekblog.com/logs/access.log combined
</VirtualHost>
Aynı şekilde şirketinizin web sayfası için de orneksirket.com isminde bir dosya oluşturup içini de aşağıdaki gibi dolduruyoruz:
<VirtualHost 193.140.110.65:80>
ServerAdmin info@orneksite.com
ServerName orneksite.com
ServerAlias www.orneksite.com
DocumentRoot /srv/www/orneksite.com/public_html/
ErrorLog /srv/www/orneksite.com/logs/error.log
CustomLog /srv/www/orneksite.com/logs/access.log combined
</VirtualHost>
Bu yaptığımız konfigürasyonda sitemizde kullanacağımız tüm dosyalar /srv/www/ dizininin altında saklanacak fakat isterseniz dosyalarınızı başka bir dizinde tutup bu dizine sembolik link verebilirsiniz. Tercih size kalmış. ErrorLog ve CustomLog satırları zorunlu değil fakat ileride sitenizdeki hataları saklamak ve incelemek isteyebilirsiniz, o yüzden şimdiden tanımlamak daha yararlı olur. Yukarıdaki sanal sunucu konfigürasyonumuzu kullanmadan önce dosyalarda belirttiğimiz dizinleri oluşturmamız gerek.
mkdir -p /srv/www/ornekblog.com/public_html mkdir /srv/www/ornekblog.com/logs mkdir -p /srv/www/orneksite.com/public_html mkdir /srv/www/orneksite.com/logs
Daha sonra da şu komutları çalıştırarak sanal sunucularımızı aktive edelim.
a2ensite ornekblog.com a2ensite orneksite.com
Bu komut ile sites-available dizininin altındaki sanal sunucularımız için sites-enabled dizininin altında sembolik link oluşturuyor. Eğer herhangi bir sanal sunucumuzu deaktive etmek istersek şu komutu çalıştırmamız gerekecek:
a2dissite ornekblog.com
Daha sonra Apache’yi yeniden yükleyerek değişikliklerin etkin olmasını sağlayacağız.
/etc/init.d/apache2 reload
Şimdi geldik web sunucumuza bir database sunucusu kurmaya. Şu anda en çok kullanılan açık kaynak database sunucusu MySQL ancak bildiğiniz gibi MySQL her ne kadar açık kaynak bir proje olsa da lisans hakları Sun şirketine aitti. Ancak geçen sene Sun şirketi Oracle’a satıldı ve MySQL, Oracle’ın bir ürünü oldu. İroni olan şu ki Oracle’ın kendi ücretli database ürünü var ve MySQL’in geliştirilmesine daha ne kadar destek verecek bilmiyoruz. Fakat önümüzdeki birkaç yıl daha MySQL’in piyasada olacağını düşünüyorum eğer Oracle bize bir süpriz yapmazsa.
Şimdi şu komutla MySQL sunucumuzu kuralım:
apt-get install mysql-server
Kurulum esnasında size root kullanıcısı için şifre oluşturmanızı ve hangi web sunucusunu kullanmak istediğinizi soracaktır. Burada bir hatırlatma yapalım, şifresini oluşturduğumuz root kullanıcısı ile işletim sistemimizin root kullanıcısı tamamen farklı. Burada MySQL root kullanıcısının şifresini oluşturuyoruz.
Bu nokta da mysql_secure_installation programını çalıştırmanızı öneriyorum, bu programı çalıştırarak ve size soracağı sorulara evet ya da hayır cevapları vererek MySQL sunucunuzun güvenliğini önemli oranda arttırmış olursunuz.
mysql_secure_installation
Şimdi MySQL’e root kullanıcısı ile giriş yapalım ve örnek bir database oluşturalım:
mysql -u root -p
Aşağıdaki komutla deneme adında bir database oluşturuyoruz:
create database deneme;
Şimdi de bu oluşturduğumuz database için bir kullanıcı oluşturup, database üzerindeki tüm hakları bu kullanıcıya veriyoruz:
grant all on deneme.* to 'osman' identified by '146ct';
Burada osman adında bir kullanıcı oluşturduk ve şifresini de 146ct olarak belirledik. Artık PHP programlarınızda bu kullanıcı adı ve şifre ile bu database’e bağlanabilirsiniz ve üzerinde istediğiniz database işlemini gerçekleştirebilirsiniz.
quit
Bu komutla ile MySQL programından çıkış yapabilirsiniz.
Son olarak da web sunucumuza PHP yükleyelim.
apt-get install php5 php5-mysql php-pear
PHP programlarınızın güvenliğini arttırmak için de /etc/php5/apache2/ dizininin altında bulunan php.ini dosyasını açıp aşağıdaki satırları şöyle değiştiriyoruz:
max_execution_time = 30 memory_limit = 64M error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR display_errors = Off log_errors = On error_log = /var/log/php.log register_globals = Off
Şimdi de Apache’yi yeniden başlatarak herşeyin yüklenmesini ve çalışmaya hazır hale gelmesini sağlayalım.
/etc/init.d/apache2 restart
Böylelikle kendi bilgisayarımıza bir web sunucu kurmuş ve kullanılmaya hazır hale getirmiş olduk. Bir dahaki yazımızda da Eclipse geliştirme ortamını kullanarak nasıl PHP programları geliştireceğimizi göreceğiz.
- Ya da bu blogda yer alan bütün yazıları içindekiler sayfasında görüntüleyebilirsiniz. Tıklayın!
Ubuntu LAMP Rehberi yazısına 3 Yorum yapılmış.
Arama
E-Posta Aboneliği
RSS Aboneliği
En Çok Yorumlanan Yazılar
- Ajax ile dinamik listeleme (23)
- PHP ile sınırsız alt kategori mantığı (23)
- Blogger’da “devamını oku” bağlantısı (21)
- MySQL’de “join” kullanımı (17)
- MySQL’de Transaction ve PHP ile kullanımı (16)
- Kullanıcı dostu url hazırlamak (14)
- PHP’nin (muhtemelen) az bilinen 10 özelliği (12)
- Kullandığınız programlama dili ne kadar popüler? (12)
- Kullanıcı dostu URL oluşturma (2. teknik) (11)
- .htaccess konuları [Giriş] (11)
Etiketler
Son Yorumlar
- Murat: Güzel bir teknik, şu ana kadar sınırsız alt kategori lazım olmadı ama olmayacağı anlamına gelmiyor
- iilyas: Bu kodlar çalışmıyor arkadaşım. Localde olduğu içinmi acaba ?
- iilyas: Arkadaşım çok teşekkür ediyorum. Harika anlatmışsın ajaxla çalışmalara başlamak lazım estetik açısından.....
- Nuri: bende bu şekilde bir çalışma yaptım ancak bir sorunum var ne yaptıysam url den index.php bölümünü kaldıramadım....
- Kemal: Makale için çok teşekkürler, resimleri div tagları ile yapabilirmiyiz. Bu arada imagelara link verirsek daha...
24 / Şubat / 2010
Osman Akşit

Yazı için teşekkürler. sabit ip 2.75 tl. bu ücreti verip kendi web sunucumuzu kurabiliriz…
En yakın zamanda bu yazıdakileri uygulamaya koyacağım.
Teşekkürler.
cok guzel bir yazi. tesekkurler
google blog araması ile .net üzerinden hizmet veren web yazılım şirketi ararken tesadüfen bu web sayfasına eriştim. çok güzel bir websitesi olmuş yazıları ilgiyle takip edeceğim. rss beslemesine üye oluyorum hemen.