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
# Authetification yazan kısmı bulup, aşağıdaki gibi değiştirin.
# 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.