Bu yazıda Drupal 8'in Nginx, PHP-FPM, MySQL ve phpMyAdmin ile nasıl kurulacağını öğreneceksiniz.
SSH'ye erişmek için Windows için Putty kullanabilirsiniz. Linux kullananlar bilirler termina ile sunucuya bağlanabilirsiniz.
Sunucunuzu koruyun
example_user öğesini istediğiniz kullanıcı adıyla değiştirerek kullanıcıyı oluşturun. Daha sonra kullanıcıya bir şifre atamanız istenecektir:
adduser example_user
Root kullanıcı ile SSH üzerinden girişlere izin vermeyin. Tüm SSH bağlantılarının root olmayan kullanıcılar tarafından yapılmasını gerekir. Sınırlı bir kullanıcı hesabı bağlandığında, yönetici ayrıcalıklarına sudo kullanarak veya su - kullanarak bir kök kabuğuna geçerek root kullanıcı yetkilerine erişilebilir.
sudo nano /etc/ssh/sshd_config
# Authentication: ...
PermitRootLogin no
Linux sisteminizi güncelleyin (Debian, Ubuntu vs)
sudo apt-get update
Nginx ve PHP-FPM'i kurun
Nginx'i aşağıdaki apt komutuyla yükleyin:
sudo apt-get install nginx -y
Ardından, Drupal çekirdeği için gerekli olan php-gd uzantılı php7.2-fpm'yi kurun:
sudo apt-get install php7.2-fpm php7.2-cli php7.2-gd php7.2-mysql php7.2-xml -y
Nginx ve PHP-FPM'i yapılandırın
Bu adımda, Nginx'i PHP sayfaları için HTTP istekleri sunmak üzere php-fpm kullanacak şekilde yapılandıracağız. Php-fpm "/etc/php/7.2/fpm" dizinine gidin ve "php.ini" dosyasını düzenleyin:
sudo nano /etc/php/7.2/fpm/php.ini
cgi.fix_pathinfo satırını açın ve değeri "0" olarak değiştirin
Nano komutunu kullanırken, bu satırı bulmak için CTRL + W tuşlarını kullanabilirsiniz. Bir kez değiştiğinde değişiklikleri kaydetmek için CTRL + O tuşlarına basın ve nano editörden çıkmak için CTRL + X tuşlarına basın.
Şimdi varsayılan Nginx sanal ana bilgisayar yapılandırmasını değiştirmeliyiz. "Default" dosyasını düzenleyin ve php-fpm direktifini etkinleştirin.
sudo nano /etc/nginx/sites-available/default
location ~ \.php$ bölümunu aşağıdaki gibi ayarlayın.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.2-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php7.2-fpm:
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
CTRL + O ve CTRL + X
Ardından Nginx yapılandırmasını geçerli olduğundan emin olmak için "nginx -t" komutuyla test edin:
nginx -t
Hata yoksa, nginx ve php-fpm servisini yeniden başlatın:
systemctl restart nginx
systemctl restart php7.2-fpm
PHP Bilgi dosyası (İsteğe bağlı)
Daha sonra, "/var /www /html" dizininde yeni php bilgi dosyası oluşturarak php-fpm dosyasının nginx ile düzgün çalıştığını test edin.
cd /var/www/html/
echo "<? php phpinfo(); ?>" > info.php
Bir web tarayıcısında sunucu IP'sindeki info.php dosyasını ziyaret edin. Sonuç, aşağıdaki ekran görüntüsüne benzer olmalıdır.

VirtualHost'u Drupal İçin Yapılandırın
Drupal 8'i "/srv/www/magnec.com" dizinine yükleyeceğiz. Lütfen yüklemenizdeki etki alanı adımı, bu Drupal yüklemesini kullanmak istediğiniz web sitesinin etki alanı adıyla değiştirin. Öyleyse dizini oluşturalım:
sudo mkdir -p /srv/www/magnec.com/{public_html,logs}
sudo usermod -a -G www-data admin
sudo chown -R www-data:www-data /srv/www
sudo chmod -R 775 /srv/www
sudo nano /etc/nginx/sites-available/magnec.com
Drupal 8 için Nginx yapılandırmasını yapıştırın:
server {
server_name magnec.com;
root /srv/www/magnec.com/public_html; ## <-- Your only path $
access_log /srv/www/magnec.com/logs/access.log;
error_log /srv/www/magnec.com/logs/error.log;
listen 80;
listen [::]:80;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Very rarely should these ever be accessed outside of your lan
location ~* \.(txt|log)$ {
allow 192.168.0.0/16;
deny all;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
# Block access to "hidden" files and directories whose names begin with a
# period. This includes directories used by version control systems such
# as Subversion or Git to store control files.
location ~ (^|/)\. {
return 403;
}
location / {
# try_files $uri @rewrite; # For Drupal <= 6
try_files $uri /index.php?$query_string; # For Drupal >= 7
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
# In Drupal 8, we must also match new paths where the '.php' appears in the middle,
# such as update.php/selection. The rule we use is strict, and only allows this pattern
# with the update.php front controller. This allows legacy path aliases in the form of
# blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
# any paths like that, then you might prefer to use a laxer rule, such as:
# location ~ \.php(/|$) {
# The laxer rule will continue to work if Drupal uses this new URL pattern with front
# controllers other than update.php in a future release.
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
# Fighting with Styles? This little gem is amazing.
# location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
try_files $uri @rewrite;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
CTRL + O ve CTRL + X
Drupal sanal ana bilgisayar dosyası oluşturuldu, şimdi "sites-enabled" dizinindeki dosyaya bir link oluşturarak onu aktive etmemiz gerekiyor:
ln -s /etc/nginx/sites-available/magnec.com /etc/nginx/sites-enabled/
Nginx yapılandırmasını test edin ve hata yoksa Nginx'i yeniden başlatın:
nginx -t
systemctl restart nginx
MySQL'i yükleyin
sudo apt-get install mysql-server
sudo mysql_secure_installation
PhpMyAdmin'i yükleyin
sudo apt-get install phpmyadmin
Kurulum sizden otomatik yapılandırma istediğinde ESC'ye basın, çünkü Nginx için seçenek yoktur.
sudo ln -s /usr/share/phpmyadmin/ /srv/www/magnec.com/public_html/phpmyadmin
Drupal'ı Kurun ve Yapılandırın
Daha önce yarattığımız dizine girin ve Drupal'ı wget ile indirin. En yeni Drupal 8.6.13 yi kullanıyorum. 21 Mart 2019 tarihinden itibaren yayımlanan sürümde, Drupal 8 indirme sayfasını ziyaret ederek ve son sayıları yazarak en son sürümü indirdiğinizden emin olun.
cd /srv/www/magnec.com
sudo wget https://ftp.drupal.org/files/projects/drupal-8.8.1.tar.gz
sudo tar -xvzf drupal-8.8.1.tar.gz
sudo cp drupal-8.8.1/* public_html/ -R
sudo chown www-data:www-data public_html -R
Şimdi web tarayıcısında Drupal sitenizi ziyaret edin, aşağıdaki ekranı görmelisiniz

Drupal 8 karşılama ekranı
Şimdi, veritabanına bağlanmanın ve Drupal 8 web sitenizi kurmanın tam zamanı!
Takıldığınız bir yer olduğunda mail atmaktan aramaktan çekinmeyin! Mutlu Kodlamalar
Hizmetlerimizden birine ihtiyacınız olduğunda her zaman yanınızda olucağız.