25
Ara
Giriş
LAMP, Linux Apache Mysql PHP kısaltması olarak aklımızda kalıyor. Bazı yerlerde P yerine PHP'den başka bir dil gelebilir ama bu yazıda PHP'yi anlatacağız. Günümüzde çoğu Linux dağıtımı temel ayarlarla gelmektedir, ben Ubuntu 10.04 LTS kullanıyorum ve temel Birkaç ayarı burada anlatmaya çalışmayacağım, uzmanlar anlatsın :) Aslında kendime not almak için yazıyorum bu yazıyı ama belki ihtiyacı olan vardır diye blogda yayınlıyorum tutorial kıvamında, yanlışım varsa şimdiden affola, yorumlarla bana düzelttirile!

Apache Web Sunucusu Kurulumu ve Ayarları
Apache günümüzde en yaygın olarak kullanılan web sunucularından birisidir. Bu yüzden apache ile ilgili bir çok doküman bulmak mevcut bu kısımda ayrıntıya girmeden apache kurulumu ve yapılandırılmasından bahsedeceğim. Öncelikle sisteminizde ki paketleri güncelleyin.
apt-get update
apt-get upgrade --show-upgraded
Ubuntu üzerinde apache’yi kurmak için aşağıdaki komutu kullanın. Bu komut apache version 2 serisini bilgisayarınıza kuracaktır.
apt-get install apache2
Bu işlemi tamamladıktan sonra sanal konaklama(Virtual Hosting) ayarlarını yapacağız.

Sanal Konaklamayı Ayarlamak
Öncelikle /etc/apache2/ports.conf dosyamızı kontrol edelim. Ben bu dökümanı hazırlarken içersinde
NameVirtualHost *:80
Listen 80
değerleri yazılmış ve hazır şekildeydi. Burada 80. portu dinlediğimizden ve sunucumuzun tüm ipleri dinlediğiden emin oluyoruz. Ardından açacağımız site için /etc/apache2/sites-available/ dizinine bir dosya oluşturuyoruz. Örnek olarak:
touch siteminadi.com
Bu dosyayı vim ile açıyor ve düzenlemeye başlıyoruz:
VirtualHost *:80>
ServerName www.siteminadi.com
ServerAlias siteminadi.com
DocumentRoot /srv/www/siteminadi.com/dosyalarhangidizindeyse/
ErrorLog /srv/www/siteminadi.com/logs/error.log
CustomLog /srv/www/siteminadi.com/logs/custom.log
/VirtualHost> (VirtualHostların başında < şu işaret var ama burada yazınca blogger sapıtıyor)

ServerAlias kullanıcılarınızın sitenize erişmek için kullandığı adresleri içerir, Log dosyaları sitenizin kayıtlarını tutar, document root sitenizi barındırdığınız dizini adresler, servername hangi barınağın hangi adrese gideceğini belirler. Elbette bunları buraya yazmanız direkt çalışacağı anlamına gelmez, DNS'lerini düzggün bir şekilde sunucunuzun IP'sine yönlendirmeniz gerekir. Bundan böyle sunucunuza bir istek geldiğinde önce izin verilen iplerden birisi olup olmadığına bakılır ardından uygun servername aranmaya başlanır ve bulunduğunda bu documentrootta bulunan içeriğe yönlendirilir. Bu dosyayı oluşturduktan sonra ya da önce belirttiğiniz dizinleri oluşturmanız gerekir, yoksa apache hata verir.

mkdir -p /srv/www/siteminadi.com/dosyalarhangidizindeyse
mkdir /srv/www/siteminadi.com/dosyalarhangidizindeyse/logs

Eğer dosyalar zaten ayarlıysa şu komut ile siteyi aktif hale getirirsiniz
a2ensite siteminadi.com
Bu komutla dosyanız sites-enabled dizine kopyalanır ardından apache'yi restart ederek ya da reload ederek siteyi açarsınız.

/etc/init.d/apache2 restart
/etc/init.d/apache2 reload
Mysql Kurulumu ve Ayarları
Öncelikle şu komutu çalıştırın

apt-get install mysql-server

Kurulum sırasında sizden root şifrenizi ayarlamanız istenir, bir şifre belirleyip not ediniz.
Mysql başlı başına bir konudur ama biz sadece bir veritabanı oluşturacağız şu komutla mysql sistemine giriş yaparsınız

mysql -u root -p

Şifrenizi girmenizi isteyecek root şifrenizi girip giriş yapınız.
Database oluşturmak için aşağıdaki komutu kullanın, sonuna ; işareti koymayı unutmayın, mysql'de komutlar ; işareti ile biter.

create database benimdb;

Database oluştu üzerinde bir kullanıcı oluşturup tüm haklarını bu kullanıcıya vermek için aşağıdaki komutu yazınız kullanıcı adı dbadmin şifre 12345 yaptım, siz daha düzgün bir şey seçersiniz.

grant all on benimdb.* to 'dbadmin' identified by '12345';

Flush komutuyla ayrıcalıkları güncelliyoruz.

flush privileges;

İşimiz bitince çıkış yapıyoruz

quit
PHP Kurulumu ve Ayarları
PHP bir programlama dilidir ve LAMP rehberinde onun kurulumunu anlatacağız. Şu komutla kurulumu yaparsınız.

apt-get install php5 php-pear

İsterseniz şu adresteki ayar dosyasını güncelleyebilirsiniz, başlangıç seviyesi kullanıcılar gerekmedikçe bu dosyayı güncellemek zorunda değildir. Çoğu ayar standart şekilde zaten yapılmıştır. Bir değişiklik yaparsanız Apache'yi restart etmeniz gerekir.

/etc/php5/apache2/php.ini

Mysql desteği için şu paketi kurunuz böylece PHP ile Mysql güzelce anlaşmaya başlar, Apache ise zaten PHP'nin dilinden çok iyi anlar ve kısaca LAMP kısmını geride bırakırız.

apt-get install php5-mysql libapache2-mod-auth-mysql

Grafiksel araçlar, çeşitli ayarlar bunların hepsi sonra yapılabilir ama öncelikli olarak sunucunuz artık bu bileşenlere sahiptir. Ayrıntılar vakit bulursam belki ileride burada yayınlanır. Okuduğunuz için teşekkürler

Kaynakça:

http://httpd.apache.org/docs/2.0/en/vhosts/name-based.html

http://library.linode.com/lamp-guides/ubuntu-10.04-lucid/

https://help.ubuntu.com/community/ApacheMySQLPHP

14
Eki
Şimdi Pardus üzerinde Apache ile küçük bir uygulama yapacağız. Amacımız apache'den bir sayfa yayınlamak ve Bind ile kullanıcıyı bu yayınladığımız sayfaya yönlendirmek. Bunun içinden youtube.com adresini kullanacağız. Yani sistemimizde Bind ve apache kurulu olacak ve dns adresi olarak bizim dns sunucumuzu kullanan birisini youtube.com adresine bağlanmak istediğinde bizim web sunucumuzdan yayınlanan bir sayfaya erişicek. Umarım anlatabildim. Bind sunucusuyla ilgili bişeylerden daha önce bahsetmiştim[1]. Apache kurulumu için ise bu adrese bakabilirsiniz.

Apache kurulumu yapıldıktan sonra yapmamız gereken sanal konak oluşturmak. Okuduğum bazı belgelerde /etc/apache2/ dizininin altında sites-enabled, sites-available gibi dizinlerin olması gerektiği yazılıydı. Ama Pardus'ta bu dizinleri göremedim ve şöyle bir yol izledim:

#cd /etc/apache2/vhost.d

komutu ile vhost.d klasörüne girdim. Başlangıçta bu klasörde 00_default_vhost.conf dosyası bulunmaktaydı.

#vi youtube.conf

komutuyla yeni bir dosya oluşturdum. İçini şu şekilde doldurdum:
Image and video hosting by TinyPic

ip adresleri sunucumuzun ip adresi olacak. Diğer seçeneklerle ilgili bilgilere şu ve bu adreslerinden bakabilirsiniz. Dosyamızı kaydedip çıkalım. Sonra /var/www/youtube adında bir klasör oluşturup içinde yayınlamak istediğimiz bi index.html dosyası oluşturalım. Daha sonra Bind'le ilgili ayarları yapmalıyız. /etc/bind/named.conf dosyasına şu satırları ekleyelim:
Image and video hosting by TinyPic

Daha sonra /etc/bind/zones/youtube.com.db dosyasının içeriğini şu şekilde dolduralım(bu dosya yoksa oluşturalım):
Image and video hosting by TinyPic

Buradaki ip adresleri bilgisayarınızın ip si olacaktır. En son /etc/resolv.conf dosyasının başına nameserver 127.0.0.1 satırını ekleyip kaydedelim. bind ve apache servislerini başlatalım (ya da yeniden başlatalım):

#service bind start ya da restart
#service apache start ya da restart

Her şey yolunda gittiği taktirde tarayıcınızdan youtube.com adresine girmeye çalıştığınızda karşınıza kendi hazırladığınız index.html sayfası çıkması gerekir.
27
May

Bu 3′lüyü yan yana getirmek benim için zordu. Fakat en sonunda bunu başardım. Diğer sitelerdeki gibi sadece konfigürasyonu yazıp, bırakmayacağım. Hepsini tek tek adımlar şeklinde yazdım. Süreç kısacası Django projesi oluşturup bunu Apache ile ilişkilendirmeniz.

1. Edinmek:

Django, Apache ve mod_python üçlüsünü indirmemiz gerek. (Bu adımlar sadece Pardus içindir. Diğer dağıtımlar hakkında bir şey diyemeceğim.)

sudo pisi it Django apache mod_python

2. Django işine başlamak ve bitirmek:

Dikkat: Projeyi oluşturmadan önce lütfen django projenizi koyacağınız bir klasör oluşturun ki Apache’de sıkıntı yaşamayın.

Bir Django projesi oluşturmamız gerek.

django-manage.py startproject newsite

“/home/tdgunes/django/mysite”‘da duruyor diyelim.

Ve Django Test Sunucusu’nun çalışıp çalışmadığını kontrol edebilirsiniz..

python manage.py runserver

3.  Apache’yi Ayarlamak:

Konsola tek tek yazın:

cd /etc/apache2/modules.d/

sudo nano 16_mod_python.conf

Sonra alttakileri dosyanın en sonuna yazın.

<Location “/”>

SetHandler python-program

PythonHandler django.core.handlers.modpython

PythonPath “['/home/yourname/django/] + sys.path ”

SetEnv DJANGO_SETTINGS_MODULE newsite.settings

PythonDebug On

</Location>

4. Apache’yi çalıştırmak:

Yazın:

sudo service apache start

Her açılışta çalışmasını istiyorsanız:

sudo service apache on

ya da servis yöneticisinin plasmoidini kullanabilirsiniz.

Hepsi bu kadar. Tüm bu parçaları yerine koymak zordu fakat şu an bu yöntem ile sunucunuz sorunsuz bir şekilde çalışmalı.

24
Mar

Drupal‘de başlıktaki gibi bir hata ile karşılaşırsanız büyük ihtimalle dosya izinlerinde veya sahipliklerinde bir problem var demektir. Dosya yükleme işlemlerinde bu hata ile karşılaşabilirsiniz. Ben bu hata ile dil dosyası yüklemeye çalışırken karşılaştım.

Başlıktaki %directory yükleme işlemine göre değişebilir. Örneğin benim aldığım hatadaki %directory, sites/default/lanuages idi. Şu kod ile dizin sahipliğini düzeltince sorun ortadan kalktı;

chown nobody:nobody sites/default/languages

Bu kodun sizin probleminizi çözeceği kesin değil, sizin server ayarlarınıza göre nobody yerine başka bir şey yazmanız gerekiyor olabilir ama önce yukarıdaki kod denemenizde fayda var.

8
Kas

Şuan da yayın yapan internet sitelerinin büyük bir kısmı Linux dağıtımları üzerinde barındırılıyor. Yani bir internet sitesine girdiğinizde büyük ihtimalle Linux yüklü bir bilgisayara bağlantı kuruyorsunuz. Peki Linux olmasaydı internet bugün ki durumuna gelebilir miydi? Aşağıda 1994′den günümüze kullanılan server yazılımlarının bir grafiği var. Grafik news.netcraft.com adresnden alınmş.

overallc

Görüldüğü üzere 1994′den bu yana Apache pazar payının büyük bir bölümünü elinde bulunduruyor. Son zamanlarda biraz düşüş gösterse de hala zirvede. Her ne kadar apache’nin windows versiyonu bulunsa da, windows işletim sistemlerinde pek tercih edilmediği bilinen bir gerçek.

Grafiğe biraz göz attığımızda Linux’ın uzun süredir internetin temel omurgasını oluşturduğunu görüyoruz. Peki neden? Bunun iki sebebi var

  1. Fiyat (Ücretsiz)
  2. Performans

1994 senesinde kendinize bir server kurmak istediğinizde önünüzde pek fazla seçenek yoktu. O dönemde Windows 3.1 vardı ve sizin işinize yaramıyordu. Elinizde ki tek seçenekler Linux ve Unix’di. Ayrıca donanıma ayıracak 10.000 $ kadar bir bütçeniz yoksa Linux sizin için idealdi, çünkü server işlemlerini gerçekleştirmek için mükemmel bir bilgisayara ihtiyaç duymuyordu.

İşte modern internetin ilk adımları böyle bir ortamda atıldı. Evlerin garajlarında kurulu pekçok server ve hepsinde Linux.

Bu bilgiler ışığında düşünün bakalım, Linux olmasaydı İnternet bugün ki durumuna gelebilir miydi?

      
18
Haz
Debian üzerine kurulu Apache web sunucusunda SSL şifrelemesinden yararlanmak için takip edilmesi gereken adımlar aşağıdaki şekilde. Diğer dağıtımlarda da SSL modülünü yükleyip yeni bir Virtual host oluşturmanın yolu farklı olabilir ama genel ayarlar aynı kalıyor.

Öncelikle elinizde bir ssl sertifikası olması lazım. startcom gibi ücretsiz sertifika veren bir yeri tercih edebilirsiniz. Aşağıdaki komutla "self-signed" bir sertifika üretebilirsiniz ancak web tarayıcıların yeni sürümleri bu sertifikalarla karşılaştığında hata mesajı gibi görünen uyarılar gösteriyorlar. Bu komutun sorduğu sorulara size uygun cevapları verin, dikkat etmeniz gereken nokta "Common Name (eg, YOUR name) []:" sorusuna cevap olarak sunucunuzun tam adresini girmelisiniz, bu adres ziyaretçileriniz sayfaya girmek için https://'den sonra yazacakları adres, yani "denemesunucum.example.com" gibi.
openssl req -new -x509 -days 999 -nodes \
-out apache.pem -keyout apache.pem
Sertifikayı /etc/apache2/apache.pem olarak kaydedin. İşlemlerin geri kalanını /etc/apache2/ dizini altında yapın.

"sites-available/default" dosyasının "sites-available/ssl" adında bir kopyasını alın. Bu kopyaladığınız ssl dosyasının baş tarafını aşağıdaki biçimde değiştirin. Kalın ve eğikgörünenler yapacağınız değişiklikler.
NameVirtualHost *:443
<VirtualHost *:443>
  SSLEngine on
  SSLCertificateFile /etc/apache2/apache.pem
sites-available/default dosyasını da aşağıdaki şekilde değiştirin.
NameVirtualHost *:80
<VirtualHost *:80>
ports.conf dosyasına, Apache'nin https portu olan 443. portu dinlemesi için gereken satırı ekleyin.
Listen 80
Listen 443
Aşağıdaki komutlarla Apache'nin SSL modülünü ve yeni eklediğimiz SSL vhostunu etkinleştirin.
a2enmod ssl
cd sites-enabled; ln -s ../sites-available/ssl 001-ssl
Daha sonra güvenlik duvarından 443/tcp portunun açık olduğundan emin olun ve apache servisini yeniden başlatın. Bunu yaptıktan sonra https üzerinden sayfanıza erişip her şeyin düzgün çalıştığından emin olun.