Bu kurulumda bir çok şeye değinmeye çalışacağım. Açıkcası bu konuda uzman değilim. Araştırarak edindiğim bilgileri sizlerle paylaşacağım. Öncelikle digitalocean’dan bir damlacık oluşturalım. (ben digitalocean kullanmayı tercih ediyorum)

Öncelikle kayıt olmanız gerekiyor. Buraya tıklayıp (referans bağlantıdır. Bu bağlantıdan kayıt olmanız halinde 10 Dolar hediye kazanıcaksınız) kayıt olduktan sonra üst sağ taraftaki “Create Droplet” butonuna tıklayın.

Apache’ye göre daha yüksek bir performans sağlayan nginx’i kullanacağız. Nginx’i kuralım:

sudo apt-get update
sudo apt-get install nginx


Damlacığınızın ip adresini adres çubuğuna girerseniz nginx’in landing sayfasını görebilirsiniz.

Sıra mysql’a geldi. Kurulum sırasında root için parola koymanızı isteyecek. Bu parolayı bir yere not edin. Kurulum bittikten sonra mysql’u aktif hale getirelim.

sudo apt-get install mysql-server

Şimdi ise aşağıdaki komut ile kurulumu tamamlayalım. Parola istediğinde root parolanızı girin. Parolayı değiştirmenizi isteyip istemediğinizi soracak . N cevabını verin. Diğer sorduğu şeylere Y yanıtı verebilirsiniz. (Yanıtlardan sonra ENTER’a tıklayın)

sudo mysql_secure_installation

Şimdi ise PHP’yi yükleyelim.

sudo apt-get install php5-fpm php5-mysql

Küçük bir yapılandırma ayarını değiştirmemiz gerekiyor. Bu gereklilik güvenlik amacıyla.

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

cgi.fix_pathinfo değerini “0” durumuna getirin. Varsayılan olarak “1”dir. (altlarda biraz)

cgi.fix_pathinfo=0

kaydedip çıkın. Yükleme işlemleri bu kadardı. Son olarak tekrar başlatalım:

sudo service php5-fpm restart

Şimdi bizim php yapılanmasına uygun nginx varsayılan dosyası üzerinde tanıtalım.

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

Varsayılan şu şekildedir.

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

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

server_name localhost;

location / {
try_files $uri $uri/ =404;
}
}


hepsini silip aşağıdakini direk kopyalayabilir veya sadece değişiklikleri ve eklemeleri yapabilirsiniz.

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

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

server_name server_domain_adi_veya_IP;

location / {
try_files $uri $uri/ =404;
}

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

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}


server_domain_adi_veya_IP kısmına domaininizi sunucu ile bağladıysanız domain adınızı eğer bağlı değil ise sunucumuzun ip adresini bu alana yazın.

Şimdi ise değişiklerin işleme girmesi için nginx’e restart atalım.

sudo service nginx restart

Şimdi ise php yapılandırmamızı test etmeye geldi.

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

aşağıdaki kodu ekleyip kaydedip çıkın:

phpinfo();
?>


Daha sonra adres çubuğuna şu adresi yazın:

http://server_domain_adi_veya_IP/info.php

Sonuç şu şekilde olmalıdır:



Php yapılanmasının nginx üzerinde düzgün bir şekilde çalıştığını teyit ettik. Şimdi oluşturduğumuz bu php dosyasını silelim

sudo rm /usr/share/nginx/html/info.php

Artık yavaş yavaş wordpress’e yaklaşıyoruz. Öncelikli işimiz veritabanımızı oluşturmak olucak. Daha sonra wordpress’i kurup adımları daha da ileri taşıcaz.

mysql root olarak giriş yapalım

mysql -u root -p

Root parolasını daha önce girmiştik. O parolayı giriniz. Şimdi veritabanı oluşturalım. Veritabanına isim verelim

CREATE DATABASE veritabani;

Şimdi bu veritabanı için yetkili bir kullanıcı oluşturalım

CREATE USER veritabanikullanici@localhost IDENTIFIED BY 'parola';

Bağlama işlemini de gerçekleştirelim. Yetki verme işlemini yapalım.

GRANT ALL PRIVILEGES ON veritabani.* TO veritabanikullanici@localhost


Şimdi bu değişikleri mysql üzerinde aktif hale getirmek için gerekli komutu girelim

FLUSH PRIVILEGES;

Bu bilgileri kenara not aldık. mysql’dan çıkış yapalım.

exit

Wordpress kurulumunu yapacağız şimdi.

cd ~
wget http://wordpress.org/latest.tar.gz


çıkarma işlemini yapalım

tar xzvf latest.tar.gz

şimdi paketleri güncelleyelim ve gerekli olan 2 paketi yükleyelim

sudo apt-get update
sudo apt-get install php5-gd libssh2-php


sıra wordpress’e sql’umuzu tanıtmaya geldi. (önce dosyaya gidelim)

cd ~/wordpress

gerekli dosyamızı yaratalım (kopyalamak)

cp wp-config-sample.php wp-config.php

wp-config.php dosyamıza girelim

nano wp-config.php

aslında burada nereyi düzenleyeceğinizi biliyorsunuz

. . .
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'veritabanı');
/** MySQL database username */
define('DB_USER', 'veritabanikullanici');
/** MySQL database password */
define('DB_PASSWORD', 'parola');
. . .


Kaydet ve çık.

Bu wordpress klasörü böyle kalmayacak yani burada kalmayacak. Gerekli klasörü oluşturalım

sudo mkdir -p /var/www/html/HTML]

dosyalarımızı oluşturduğumuz yola kopyalayalım

[HTML]sudo rsync -avP ~/wordpress/ /var/www/html/


Şimdi ise bu yola bir kullanıcıya erişim verelim. Root olarak kullanmak riskli olabilir. Bunun için önce bir kullanıcı oluşturmalısınız.

adduser demo
sudo chown -R demo:www-data /var/www/html/*


demo yerine kendiniz bir kullanıcı adı seçebilirsiniz.

Şimdi ise uploads klasörü oluşturup ona gerekli izinleri verelim. (aşağıdaki işlemleri doğru bir biçimde olması için /var/www/html/ yolunda olduğunuzdan emin olun.

mkdir wp-content/uploads

sudo chown -R :www-data /var/www/html/wp-content/uploads

Şimdi nginx ayarlarımızı yapacağız. Default ayarlarını daha önce yapılandırmıştık. O ayarları model alıcaz.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress

(dilerseniz default olarak ayarladığımız yapılanmayı kopyalamak yerine aşağıda vereceğim örneği doğrudan kullanabilirsiniz)

Değişikliklerimizi yapalım

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

Yapılacak değişikleri aşağıdaki örneğe göre model alabilirsiniz veya dediğim gibi default'u model almayıp aşağıdakini doğrudan kopyalayıp aktarıp site adı kısmını düzenleyebilirsiniz. Eğer kopyaladıysanız tamamını silip ekleyebilirsiniz.

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/html;
index index.php index.html index.htm;
server_name senin_domain.com;
location / {
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}


Değişiklikleri aktif hale getirelim (bağlama işlemi)

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

eski default ayarlarını sites-enabled kısmından kaldırmamız gerekiyor. Daha sonra karmaşa oluşabilir.

sudo rm /etc/nginx/sites-enabled/default

Şimdi işleme geçmesi için gerekli restart’ları gerçekleştirelim

sudo service nginx restart
sudo service php5-fpm restart


Artık domain adınızı adres çubuğuna girip yükleme işlemini gerçekleştirebilirsiniz. Bu ekranı hepiniz biliyorsunuzdur zaten. Admin kullanıcı adı parolası email adresi gibi bilgilerin girildiği kısım.

Kurulum işlemi bitti!

Kaynak: Detaylı olarak WordPress Kurulumu (nginx)