Android

Ubuntu 18.04 Üzerine Drupal Kurulumu

How to install Drupal on Ubuntu 18.04 19.04 Linux LoaclHost

How to install Drupal on Ubuntu 18.04 19.04 Linux LoaclHost

İçindekiler:

Anonim

Drupal, dünya çapında en popüler açık kaynaklı CMS platformlarından biridir. PHP ile yazılmıştır ve küçük kişisel bloglardan büyük kurumsal, politik ve devlet sitelerine kadar farklı web siteleri oluşturmak için kullanılabilir.

Bu eğitimde, Drupal 8.6'yı bir Ubuntu 18.04 makinesine nasıl kuracağınızı göstereceğiz. Drupal'ı kurmanın birden çok yolu vardır. Bu öğretici, drupal projesi adı verilen Drupal projeleri için bir besteci şablonu kullanarak Drupal 8.6'yı yüklemek için gerekli adımları kapsar.

Nginx'i web sunucusu olarak, en son PHP 7.2'yi ve MySQL / MariaDB'yi veritabanı sunucusu olarak kullanacağız.

Ön şartlar

Bu eğiticiye devam etmeden önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

  • Genel sunucu IP'nizi gösteren bir alan adınız var. example.com kullanacağız. Bu talimatları izleyerek Nginx yüklediniz. Alan adınız için bir SSL sertifikanız yüklü. Bu talimatları izleyerek ücretsiz bir Let's Encrypt SSL sertifikası yükleyebilirsiniz.

Sen başlamadan önce

Paket dizinini ve sistem paketlerini en son sürümlere güncelleyin:

sudo apt update && sudo apt upgrade

1. MySQL veritabanı oluşturma

sudo apt install mysql-server Yeni MySQL kurulumları için, MySQL sunucunuzun güvenliğini artırmak için mysql_secure_installation komutunu çalıştırmanız önerilir.

Şimdi MySQL kabuğuna giriş yapmalı ve yeni bir veritabanı ve kullanıcı hesabı oluşturmalı ve kullanıcıya uygun hibe izinleri vermeliyiz.

MySQL kabuğuna giriş yapmak için aşağıdaki komutu yazın ve istendiğinde parolayı girin:

mysql -u root -p

drupaluser adlı bir veritabanı oluşturmak için, drupaluser adlı kullanıcı ve kullanıcıya gerekli izinleri vermek için aşağıdaki komutları çalıştırın:

CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

2. PHP'yi yükleyin

Ubuntu 18.04'teki varsayılan PHP sürümü olan PHP 7.2, Drupal 8.6 için tamamen desteklenir ve önerilir. Nginx'i bir web sunucusu olarak kullanacağımızdan PHP-FPM'yi de yükleyeceğiz.

Gerekli tüm PHP modüllerini kurmak için aşağıdaki komutu çalıştırın:

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

PHP-FPM hizmeti, yükleme işlemi tamamlandıktan sonra otomatik olarak başlayacaktır, hizmet durumunu yazdırarak doğrulayabilirsiniz:

systemctl status php7.2-fpm

Çıktı, fpm hizmetinin etkin ve çalışır durumda olduğunu göstermelidir.

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-19 19:54:13 UTC; 9h ago Docs: man:php-fpm7.2(8) Main PID: 17781 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 507) CGroup: /system.slice/php7.2-fpm.service ├─17781 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─17796 php-fpm: pool www └─17797 php-fpm: pool www

3. Composer'ı yükleyin

Composer PHP için bir bağımlılık yöneticisidir ve bunu Drupal şablonunu indirmek ve gerekli tüm Drupal bileşenlerini kurmak için kullanacağız.

Composer'ı global olarak kurmak için kıvrımlı Composer yükleyicisini indirin ve dosyayı /usr/local/bin dizinine taşıyın:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Besteci sürümünü yazdırarak kurulumu doğrulayın:

composer --version

Çıktı şöyle görünmelidir:

Composer version 1.6.5 2018-05-04 11:44:59

4. Drupal'ı yükleyin

Artık besteci yüklediğimize göre, /var/www/my_drupal dizinindeki besteci şablonunu kullanarak yeni bir Drupal projesi oluşturabilir ve oluşturabiliriz:

sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

Yukarıdaki komut, şablonu indirecek, gerekli tüm php paketlerini getirecek ve projemizi kuruluma hazırlamak için bazı komut dosyalarını çalıştıracaktır. İşlem birkaç dakika sürebilir ve başarılı olursa çıktının sonu aşağıdaki gibi görünmelidir:

Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777

Sonraki adım Drupal'ı Drush kullanarak kurmaktır. Aşağıdaki komutta, 1. adımda oluşturulan MySQL veritabanını ve kullanıcı bilgilerini aktarıyoruz:

cd /var/www/my_drupal sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

Yükleyici sizden aşağıdaki mesajı soracaktır, devam etmek için sadece enter tuşuna basın.

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):

Yükleme tamamlandığında komut dosyası yönetici kullanıcı adını ve parolasını yazdıracaktır. Çıktı aşağıdaki gibi görünmelidir:

Starting Drupal installation. This takes a while. Consider using the --notify global option. Installation complete. User name: admin User password: XRkC9Q5WN9

Son olarak, web sunucusunun sitenin dosyalarına ve dizinlerine tam erişime sahip olması için doğru izinleri ayarlamamız gerekir. Hem Nginx hem de PHP, www-data kullanıcısı ve www-data grubu olarak çalışıyor, bu nedenle aşağıdaki komutu vermemiz gerekiyor:

sudo chown -R www-data: /var/www/my_drupal

5. Nginx'i yapılandırın

Şimdiye kadar, bu öğreticinin ön koşullarını kontrol etmiyorsanız, sisteminizde zaten SSL sertifikalı Nginx yüklü olmalıdır.

Yeni Drupal projemiz için yeni bir sunucu bloğu oluşturmak için resmi Nginx sitesinden Nginx tarifini kullanacağız.

Metin düzenleyicinizi açın ve aşağıdaki dosyayı oluşturun:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # 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 /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' /.*)$; include fastcgi_params; # Block httpoxy attacks. See https://httpoxy.org/. fastcgi_param HTTP_PROXY ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; 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 Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } } Example.com'u Drupal alan adınızla değiştirmeyi ve SSL sertifika dosyalarına doğru yolu ayarlamayı unutmayın. Tüm HTTP istekleri HTTPS'ye yönlendirilecektir. Bu yapılandırmada kullanılan snippet'ler bu kılavuzda oluşturulur.

sites-enabled dizine sembolik bir bağlantı oluşturarak sunucu bloğunu sites-enabled :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Nginx hizmetini yeniden başlatmadan önce, sözdizimi hatalarının olmadığından emin olmak için bir test yapın:

sudo nginx -t

Hata yoksa çıktı şu şekilde görünmelidir:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Son olarak, aşağıdakileri yazarak Nginx hizmetini yeniden başlatın.

sudo systemctl restart nginx

6. Kurulumu Test Edin

Tarayıcınızı açın, alan adınızı yazın ve yüklemenin başarılı olduğunu varsayarak aşağıdakine benzer bir ekran görünecektir:

Yönetici olarak oturum açabilir ve yeni Drupal kurulumunuzu özelleştirmeye başlayabilirsiniz.

7. Drupal modüllerini ve temalarını kurun

Artık Drupal projenizi yüklediniz, bazı modülleri ve temaları yüklemek isteyeceksiniz. Drupal modülleri ve temaları, drupal projesinin bizim için kutudan çıktığı gibi yapılandırıldığı özel bir besteci deposunda barındırılmaktadır.

Bir modül veya tema yüklemek için tek yapmanız gereken proje dizinine cd ve composer require drupal/module_or_theme_name . Örneğin, Pathauto modülünü kurmak istiyorsak, aşağıdaki komutu çalıştırmamız gerekir:

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Sudo sudo -u www-data ekleyerek komutu www-data kullanıcısı olarak çalıştırıyoruz

Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles

Yukarıdaki çıktıdan da görebileceğiniz gibi, besteci de bizim için tüm paket bağımlılıklarını yükler.

8. Güncelleme Drupal çekirdek

Yükseltmeden önce, dosyalarınızın ve veritabanınızın yedeğini almak her zaman iyi bir fikirdir. Yedekle ve Taşı modülünü kullanabilir veya veritabanınızı ve dosyalarınızı manuel olarak yedekleyebilirsiniz.

Kurulum dosyalarını yedeklemek için aşağıdaki rsync komutunu kullanabilirsiniz, elbette kurulum dizinine doğru yolu kullanmanız gerekir:

sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)

Veritabanını yedeklemek için standart mysqldump komutunu kullanabiliriz:

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

veya drush sql-dump :

cd /var/www/my_drupal vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

Şimdi bir yedek oluşturduğumuza göre, aşağıdaki komutu çalıştırarak tüm Drupal çekirdek dosyalarını devam ettirebilir ve güncelleyebiliriz:

sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Sonuç

Tebrikler, besteci kullanarak Drupal 8'i başarıyla yüklediniz ve modül ve temaların nasıl kurulacağını öğrendiniz. Artık sitenizi özelleştirmeye başlayabilirsiniz. Drupal 8 Kullanım Kılavuzu, Drupal kurulumunuzu nasıl yöneteceğiniz hakkında daha fazla bilgi edinmek için iyi bir başlangıç ​​noktasıdır. Ayrıca Github'daki Drupal Composer şablon projesini de ziyaret etmelisiniz.

ubuntu drupal mysql mariadb cms nginx besteci