Ubuntu 12.10 Lighttpd PHP5 (PHP-FPM) ve MySQL kurulumu

Lighttpd (Lighty) Nedir? Güvenli, hızlı ve esnek bir web sunucusu olarak tanımlanıyor. Diğer web serverlara göre daha düşük RAM kullanımı, CPU yu etkin kullanması FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting gibi özellikleri ile özellikle yük sorunu olan sunucular için güzel bir çözüm. Ve tabiki Açık Kaynak Kodlu. Youtube, wikipedia ve meebo gibi siteler tarafından da kullanıldığını belirtelim.

1- Giriş

Bu makale de anlatılanlar Ubuntu 12.10 üzerinde uygulanmıştır. Sistemin ip adresi 192.168.0.15. Eğer farklı bir IP adresi kullanıyorsanız gerekli yerleri kendinize göre değiştirmeyi unutmayın. Tüm işleemleri root kullanıcısı ile yaptık. Root olalım ve kuruluma başlayalım.

sudo su

2- MySQL 5 Kurulumu

Daha önce Ubuntu 12.10 üzerine Percona Server Kurulumu yapmıştık. Bu makale de MySQL yerine Percona kullanmayı düşünüyorum. Eğer MySQL kurmak isterseniz aşağıdaki komut ile kurabilirsiniz.

apt-get install mysql-server mysql-client

root için şifre belirlememizi isteyecek. mysql root şifresini girelim

New password for the Percona Server “root” user: <–rootsqlşifremiz
Repeat password for the Percona Server “root” user: <–rootsqlşifremiz

3- Lighttpd Kurulumu

Lighttpd ubuntu yansılarında mevcut. kolayca kurulumu gerçekleştirebiliriz.

apt-get install lighttpd

Browser a 192.168.0.15/index.lighttpd.html yazdığımızda Lighttpd Placeholder Page görüyorsak kurulum başarılı bir şekilde tamamlanmış demektir.

Lighttpd

Lighttpd nin varsayılan document root u /var/www ve yapılandırma dosyası da /etc/lighttpd/lighttpd.conf

4- PHP 5 Kurulumu

PHP 5 ve Lighttpd nin birlikte çalışması için PHP-FPM kurulumu yapalım.

apt-get install php5-fpm php5

5- Lighttpd ve PHP5 ayarları

PHP5 i Lighttpd ile çalışması için /etc/php5/fpm/php.ini dosyasını açalım ve cgi.fix_pathinfo=1 satırının başındaki yorum işaretini kaldıralım

nano /etc/php5/fpm/php.ini

[...]
 ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  $
 ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not $
 ; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Se$
 ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A sett$
 ; of zero causes PHP to behave as before.  Default is 1.  You should fix your s$
 ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
 ; http://php.net/cgi.fix-pathinfo
 cgi.fix_pathinfo=1
 [...]

Lighttpd nin PHP ayar dosyası /etc/lighttpd/conf-available/15-fastcgi-php.conf spawn-fcgi ile kullanılabilecek şekilde hazır geliyor. İleride ihtiyacımız olabilir diyerek yedekleyelim ve yeni bir ayar dosyası oluşturarak  devam edelim

cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
nano 15-fastcgi-php.conf

Dosyamızın içeriği aşağıdaki gibi.

# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

fastcgi ayarlarını etkinleştirelim

lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php

Bu işlem /etc/lighttpd/conf-enabled/10-fastcgi.conf dosyasını /etc/lighttpd/conf-available/10-fastcgi.conf a ve /etc/lighttpd/conf-enabled/15-fastcgi-php.conf dosyasını da /etc/lighttpd/conf-available/15-fastcgi-php.conf a sembolink link ile bağlar.

ls -l /etc/lighttpd/conf-enabled

[email protected]:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabledtoplam 0
lrwxrwxrwx 1 root root 33 Mar  3 02:40 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Mar  3 02:42 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
[email protected]:/etc/lighttpd/conf-available#

servisi reload edelim

/etc/init.d/lighttpd force-reload

6- PHP Kurulumunu test edelim

PHP kurulumunu tamamladık ve Lighttpd ile birlikte çalışacak şekilde yapılandırdık. Şimdi çalışıp çalışmadığını test edebiliriz. Bunun için /var/www altında info.php adında bir dosya oluşturalım

nano /var/www/info.php

<?php
phpinfo();
?>

ve web tarayıcı ile bakalım. 192.168.0.15/info.php

Lighttpd PHP

Görünüşe göre PHP çalışıyor. Server API kısmında da FPM/FastCGI görüyoruz. Şimdi sırada MySQL desteği var.

7- PHP5 MySQL Desteği

PHP ye MySQL desteği kazandırmak için php5-mysql paketini kurmamız yeterli. PHP ile sık kullanılan eklentileri de bu aşamada kurabiliriz. pear, GD, curl vb..

apt-cache search php5

İhtiyacımız olabilecek eklentileri kuralım.

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache php için kullanabileceğimiz açık kaynak kodlu bir yazılım. Xcache kurulumu da yapalım.

apt-get install php5-xcache

ve PHP-FPM i reload edelim

/etc/init.d/php5-fpm reload

info.php ile tekrar bakalım

Lighttpd MySQL

8- phpMyAdmin kurulumu

MySQL Veritabanı yönetimi için kullanabileceğimiz web tabanlı yönetim aracımızı da kuralım.

apt-get install phpmyadmin

Bize hangi web server ile kullanacağımız gibi sorular soruyor.

Web server to reconfigure automatically: <– lighttpd seçiyoruz
Configure database for phpmyadmin with dbconfig-common? <– No diyoruz

Browser dan 192.168.0.15/phpmyadmin yazarak kontrol edebiliriz.

9- PHP-FPM TCP Ayarları

PHP-FPM varsayılan olarak dinlediği yer /var/run/php5-fpm.sock . Eğer istersek TCP bağlantıları dinleyecek şekilde yapılandırabiliriz. Bunun için /etc/php5/fpm/pool.d/www.conf dosyasını açalım

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

ve aşağıdaki gibi değiştirelim

[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]

PHP-FPM artık 127.0.0.1 adresine 9000 portundan gelen isteklere bakacak. Eğer bu port sisteminizde kullanılıyorsa başka bir port u da ayarlayabilirsiniz.

PHP-FPM i reload edelim

/etc/init.d/php5-fpm reload

Lighttpd nin PHP ayar dosyasını /etc/lighttpd/conf-available/15-fastcgi-php.conf açalım ve socket yerine kullanacağı host ve port bilgilerini verelim.

# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Son olarak Lighttpd yi reload edelim.

/etc/init.d/lighttpd force-reload

10- Linkler

Ubuntu 12.10 Lighttpd PHP5 (PHP-FPM) ve MySQL kurulumu” için bir yorum

  • 11 Kasım 2013 tarihinde, saat 12:38
    Permalink

    Son derece yararlı bir doküman olmuş. Oldukça açıklayıcı ve detaylı. Teşekkürler.

    Yanıtla

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir