Ubuntu’ya nginx, MySQL ve PHP kurulumu (LEMP)

By | 18 Ağustos 2013

Optimum Ayarlarla WordPress serisinin ikinci yazısında, Linux (Ubuntu) üzerine nginx, MySQL ve PHP kuracağız.

İçindekiler

LEMP Nedir?

Linux üzerinde web sitelerini çalıştırmak için açık kaynak kodlu program paketleri yüklememiz gereklidir. Bunlar kabaca; asıl sunucu görevi gören bir program (Apache, nginx, lightttpd, litespeed vs.), veritabanı programı (MySQL vs.) ve kodları yorumlamak için bir yorumlayıcıdır. (PHP, Ruby, Python vs.) LEMP ise kısaca Linux, nginx (Engine X şeklinde okunur), MySQL ve PHP’nin başharflerinden oluşan bir kısaltmadır.

Adım 1 – Paketleri Güncelleme

Kurmuş olduğumuz Ubuntu’yu güncellemekle işe başlayalım. SSH’ye girdikten sonra;

sudo apt-get update

kodunu girelim ve Ubuntu’nun kendini güncellemesini bekleyelim.

Adım 2 – MySQL Yükleme

MySQL, bir çok popüler uygulamanın kullandığı bir veritabanı sistemidir. Kurmak için terminalde aşağıdaki kodu çalıştıralım. Kurulum sırasında sizden MySQL root kullanıcısı için şifre girmeniz istenecektir. Kurulumun devam etmesi için şifre girmeniz zorunlu değildir ancak şiddetle öneririm. Şifreyi bir yere not etmeyi unutmayın.

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

Kurulum tamamlandıktan sonra MySQL’ı aktifleştirmek için

sudo mysql_install_db

kodunu girelim. Ardından aşağıdaki kod ile kurulumu tamamlayalım. Şifre istediğinde MySQL root şifresini giriniz. Terminal size mevcut şifrenizi değiştirmek isteyip istemedğinizi soracak, hayır seçeneğini seçin.

sudo /usr/bin/mysql_secure_installation

Ardından bazı ayarlar yapmanızı isteyecek. Tüm sorulara Y tuşu ile evet diyelim:

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

MySQL kurulumu tamamlandı. Şimdi nginx kurulumuna geçebiliriz.

Adım 3 – nginx Kurulumu

Nginx kurulumuna başlamak için aşağıdaki kodu çalıştıralım

sudo apt-get install nginx

Kurulumdan sonra nginx kendisi başlamayacaktır. Bu yüzden

sudo service nginx start

komutu ile nginx’i başlatalım. nginx’in başarılı bir şekilde kurulup kurulmadığını anlamak için sunucunuzun IP adresini tarayıcınıza girebilirsiniz.

Adım 4 – PHP Kurulumu

PHP kurulumu için

sudo apt-get install php5-fpm

kodunu çalıştıralım. Ayarları bir sonraki adımda yapacağız.

Adım 5 – PHP Ayarları

PHP ayarları ile çok fazla uğraşmamız gerekmeyecek ancak yapmamız gereken bir kaç ufak değişiklik var. PHP ayar dosyası sunucu üzerinde /etc/php5/fpm/php.ini konumundadır ve ayarları değiştirmek için bu dosyayı metin editörü ile açmamız gerekir. Aşağıdaki kod ile dosyayı açalım:

sudo nano /etc/php5/fpm/php.ini

cgi.fix_pathinfo=1 komutunu bulalım ve değeri 0 olarak değiştirelim. Dosyayı kapatmak için Ctrl+X kombinasyonunu kullanabilirsiniz. Değişiklikleri saklamak için Y, sonra da adını değiştirmeden kaydetmek için Enter tuşuna basalım.

Şimdi de www.conf dosyasını açalım:

sudo nano /etc/php5/fpm/pool.d/www.conf

listen = 127.0.0.1:9000 satırını bulup değerini /var/run/php5-fpm.sock olarak değiştirelim:

listen = /var/run/php5-fpm.sock

Dosyayı kaydedip çıkalım ve ardından php5-fpm işlemini değişikliklerin geçerli olması için tekrar başlatalım.

sudo service php5-fpm restart

Adım 6 – nginx Ayarları

Varsayılan sanal sunucu dosyasını açalım

sudo nano /etc/nginx/sites-available/default

Dosyadaki ayarları örnek kodda gösterildiği gibi değiştirelim.

[...]
server {
        listen   80;

        root /usr/share/nginx/www;
        index index.php index.html index.htm;

        server_name example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }

}
[...]

Şu değişiklikleri yaptık:

  • index satırına index.php ekledik
  • server_name satırını VPS IP adresiniz ya da domain isminiz ile değiştirin
  • “location ~ \.php$ {“ altındakileri yukarıdaki ayarlara göre değiştirin.

Kaydedip dosyayı kapatın ve nginx servisini tekrar başlatın.

sudo service nginx restart

Adım 7 – Ayarları test edelim

Yeni sunucumuzun çalışıp çalışmadığını anlamak için bir info.php sayfası yaratalım. Bunun için terminalden

sudo nano /usr/share/nginx/www/info.php

kodu ile web sunucunun kök dizinine (www) info.php adında bir dosya açalım ve içine aşağıdakileri yapıştıralım:

<?php phpinfo(); ?>

Kaydedip çıkalım. PHP ayarlarını yeni yarattığımız dosyayı açarak görebilirsiniz: http://sunucuipadresi/info.php
Tebrikler, artık sunucunuz hazır!

One thought on “Ubuntu’ya nginx, MySQL ve PHP kurulumu (LEMP)

  1. Pingback: WordPress Kurulumu | Hack3rz.org | Hack Sitesi

Comments are closed.