Ubuntu/Debian Üzerine Standart LAMP Kurulumu

Kısa Bir Giriş

Bu aşamada elimizde temiz bir Ubuntu veya Debian sunucumuz olduğunu varsayıyorum. Eğer yoksa hemen Panel > Sunucu Oluştur bağlantısından bir adet 64 bit Ubuntu 14.04 (LTS sürümü) veya Debian 8 kurabilirsiniz. (Ben Ubuntu tercih ediyorum)

LTS, Long Term Support (Uzun dönem destek gibi bir şey) demek. Ubuntu’nun normal (LTS olmayan) bir sürümünü kurarsanız, 9 ay boyunca bu sürüm için güvenlik güncelleştirmeleri alırsınız, bu dönem bittiğinde zaten Ubuntu’nun yeni sürümü çıkmış olur (6 ayda bir sürüm çıkıyor), sisteminizi sonraki sürüme yükseltmezseniz güncelleme alamazsınız. Kurduğunuz sürüm LTS ise bu süre -sanırım- 3 yıl. Yani sunucuya LTS kurmak çok mantıklı ve bence gerekli bir şey. Evet, yeni çıkan 15.10 sürümü yerine 1.5 yıl önce çıkmış 14.04 LTS kurmalısınız.

İlk defa giriş yapıyorsanız tek kullanıcının root olduğunu göreceksiniz. Bu biraz tehlikeli bir şey. Önce bir standart kullanıcı oluşturalım ve bu kullanıcıya su yetkisi verelim.

# adduser KULLANICI_ADI
# adduser KULLANICI_ADI sudo

Bundan sonra bu kullanıcıyla bağlanıp, yalnızca gerektiğinde sudo komutuyla root yetkisi alacağız. Şimdi çıkış yapıp tekrar giriş yapalım.

Temel Paketlerin Kurulumu

Paket indeksini güncelliyoruz…

sudo apt-get update

Gerekli paketlerimizi kuruyoruz…

sudo apt-get install apache2 php5 mysql-server-5.6

İşte LAMP bundan ibaret. Paketler kurulunca elinizde çalışır halde bir web sunucusu olacak.

Şimdi biraz ayar yapalım.

Ayarlar

Apache Ayarları

Apache dosyaları /etc/apache2 altında durur. Her domain için ayarlar, /etc/apache2/sites-enableddizininden okunur. Ama bu dizine dosya yazmak teamüle aykırıdır. Ayarlar, /etc/apache2/sites-available altına yazılır, enabled altına buradan link yapılır. Aslında bir fark yok. Sites-available dizinine yazmamıza gerek yok, ama racon budur. Linux’ta raconun dışına çıkmanın cezası penguen tarafından tokatlanmaktır. Bunu göze alıyorsanız bildiğiniz gibi yapabilirsiniz.

cd /etc/apache2/sites-available
sudo vim example.com

komutuyla birinci ayar dosyamızı oluşturup içine şunları yazıyoruz:

<VirtualHost *:80>
        ServerName      example.com
        ServerAlias     www.example.com
        ServerAdmin     admin@nv.com.tr

        DocumentRoot    /home/kullanici/www/example.com/htdocs
        <Directory />
                Options +FollowSymLinks
                AllowOverride All 
        </Directory>
        <Directory /home/kullanici/www/example.com/htdocs>
                Options -Indexes +FollowSymLinks +MultiViews
                AllowOverride All 
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Burada ServerName, girilecek adres. ServerAlias ise buna takma ad. Bir tane ServerName, ve istediğiniz kadar ServerAlias olabilir. Example.com ve www.example.com istersenizwww2.example.com bu VirtualHost ayarı tarafından yorumlanacak demektir.

Dosyalarımız /home/kullanici/www/example.com/htdocs altında duracak. Bu konuda farklı yaklaşımlar mevcut. Bazı gençler bu dosyaları /srv/http/domain{1,2,3,4,5}.com altında tutuyor. Ben herkesin kendi sitelerinin home altında tutulması taraftarıyım. FTP işlemleri yaparken sistem daha güvenli, ayarlar daha kolay oluyor. Her kullanıcının home dizininde www adlı bir dizin açıp içine domainleri koyuyoruz, bu domain dizinlerinde de htdocs ve subdomains diye iki dizin oluyor. Dosyalar bunların içinde duruyor.

Dosyamızı kaydedip çıkıyoruz. Şimdi bu dosyamız etkin değil. Çünkü sites-available dizininde.

sudo a2ensite example.com

komutuyla sitemizi aktif hale getiriyoruz. DNS ayarlarımızı yaptıysak adresinize tarayıcıdan girdiğinizde hata almamalısınız. Ya da en fazla forbidden hatası alırsınız, çünkü henüz dosyaları yerine koymamışsınızdır.

echo “slm nbr” > /home/kullanici/www/domain.com/htdocs/index.php
echo “<?php phpinfo(); ?>” > /home/kullanici/www/domain.com/htdocs/info.php

komutlarıyla iki dosya oluşturuyoruz. Şimdi sayfayı yenileyince slm nbr yazmalı. Domain.com/info.php adresinde ise PHP ayarlarımız görünmeli.

Tebrikler kurulumu tamamladınız.

Bundan sonrası ayrıntı..

PHP Ayarları

Php için iki dosyamız var. /etc/php5/apache2/php.ini ve /etc/php5/cli/php.ini. Bize lazım olan apache2. Diğeri konsolda çalışan php ayarları.

Önemli olan ayarlar:

upload_max_filesize: Yüklenebilecek en fazla dosya büyüklüğü. M, MB demek. 4M (veya 8M) iyidir bu ayar için. Artık süper akıllı telefonlarımızın çektiği fotoğraflar 2.5-3MB olabiliyor. Basit bir fotoğraf bile varsayılan ayarlarda hata verdirebilir.

date.timezone: PHPnin çalışacağı zaman dilimi. Date fonksiyonları için gerekli. Europe/Istanbul yazınız buraya da.

display_errors: Hata gösterimi. Sunucuyu geliştirme sunucusu olarak kullanacaksanız bunu On yapın.

Başka da çok önemli bir şey yok sanırım. Gerisi ihtiyaçlarınıza kalmış.

Mysql Ayarları

Burada bir ayar yok. Dilerseniz phpmyadmin kurabilirsiniz kullanım kolaylığı için.

sudo apt-get install phpmyadmin
phpmyadmin çalışabilmesi için apache2.conf editleyip

sudo nano /etc/apache2/apache2.conf

Include /etc/phpmyadmin/apache.conf ekliyoruz

komutuyla ek bir şey yapmadan kurulum yapıyorsunuz. Kurulum esnasında birkaç soru soruyor phpmyadmin. Web sunucuya apache2 diyelim, db-config yapayım mı? sorusuna evet. Bundan sonra mysql root parolasını soracak. Onu da yazalım ve phpmyadmin kuruldu.

http://ip/phpmyadmin adresinden giriş yapabilirsiniz.