Nasıl Yapılır

Ubuntu'da LAMP server kurulumu

Ubuntu'da LAMP server kurulumu

Ubuntu 20.04 ve Linux Mint 20'de LAMP Kurulumu

Bu rehberde, Ubuntu 20.04 LTS ve Linux Mint 20 sürümlerinde LAMP (Linux, Apache, MySQL, PHP) sunucusu kurulumunu adım adım anlatacağız.

LAMP Nedir?

LAMP, Linux işletim sistemi üzerinde çalışan Apache web sunucusu, MySQL veritabanı yönetim sistemi ve PHP programlama dili kombinasyonunu ifade eden bir kısaltmadır.

Adım Adım LAMP Kurulumu

1. Adım: LAMP Sunucusunu Kurun

Terminali açın ve aşağıdaki komutu çalıştırarak LAMP sunucusunu kurun:

sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql

Kurulum sırasında MySQL için bir parola belirlemeniz istenecektir. Bu parolayı bir yere not edin; yerel sunucuda Drupal veya başka bir içerik yönetim sistemi kullanırken gerekli olacaktır.

2. Adım: Apache'nin Çalışıp Çalışmadığını Kontrol Edin

Tarayıcınızı açın ve http://localhost/ adresine gidin. Eğer "It works!" mesajını görüyorsanız, Apache başarılı bir şekilde kurulmuş demektir.

3. Adım: MySQL Güvenli Kurulumu

MySQL sunucusunu güvenli hale getirmek için aşağıdaki komutu çalıştırın:

sudo mysql_secure_installation

Bu komut, root kullanıcısı için bir parola belirlemenizi, anonim kullanıcıları kaldırmanızı, root oturum açmalarını sadece yerel makinelerle sınırlandırmanızı ve test veritabanını kaldırmanızı isteyecektir.

4. Adım: PHP'yi Test Edin

Apache web sunucusunun kök dizininde bir PHP dosyası oluşturarak PHP'nin doğru çalıştığını doğrulayabilirsiniz:

sudo nano /var/www/html/info.php

Açılan dosyaya aşağıdaki kodu yazın ve kaydedip kapatın:

<?php phpinfo(); ?>

Tarayıcınızdan http://localhost/info.php adresine gidin. PHP'nin bilgilerini içeren bir sayfa görmelisiniz.

5. Adım: phpMyAdmin Kurulumu

phpMyAdmin'i kurmak için terminalden aşağıdaki komutu çalıştırın:

sudo apt install phpmyadmin

Kurulum sırasında web sunucusu olarak Apache'yi seçin ve MySQL için bir yönetici parolası belirleyin.

phpMyAdmin'i Apache yapılandırmasına eklemek için aşağıdaki komutu çalıştırın:

sudo ln -s /usr/share/phpmyadmin /var/www/html

Tarayıcınızdan http://localhost/phpmyadmin adresine gidin ve phpMyAdmin giriş ekranını görmelisiniz.

Servisleri Çalıştırma ve Durdurma

Apache için:

  • Çalıştırmak için: sudo systemctl start apache2
  • Durdurmak için: sudo systemctl stop apache2
  • Yeniden başlatmak için: sudo systemctl restart apache2

MySQL için:

  • Çalıştırmak için: sudo systemctl start mysql
  • Durdurmak için: sudo systemctl stop mysql
  • Yeniden başlatmak için: sudo systemctl restart mysql

Bu adımları takip ederek Ubuntu 20.04 veya Linux Mint 20 üzerinde LAMP sunucunuzu başarıyla kurmuş olacaksınız. Artık PHP destekli web projelerinizi geliştirmeye başlayabilirsiniz.

Ubuntu üzerinde Cherokee Web Server kurulumu

Ubuntu üzerinde Cherokee Web Server kurulumu

Cherokee Nedir?

Cherokee; yenilikçi, yüksek performanslı ve eşzamanlı güvenli web uygulamalarının gelecek nesil için tasarlanmış açık kaynak kodlu bir web sunucusudur. Yapılandırmak hızlı ve kolaydır.

Cherokee özellikleri nelerdir?

Kullanıcı dostu; Tüm yapılandırma güçlü ve modern bir web arayüzü aracılığıyla tamamen tatbik edilebilir olmasıdır. Cherokee yönetmek çok kolaydır.

Modern Teknolojileri; Cherokee en yaygın Web FastCGI, SCGI, PHP, uWSGI, SSI, CGI, LDAP, SSL / TLS, HTTP proxy, video akışı, içerik önbelleğe alma, trafik şekillendirme vs tüm teknolojilerini destekler.

Çapraz Platform; Cherokee Linux, Mac OS X, Solaris ve BSD üzerinde çalışır
Kurulum

sudo add-apt-repository ppa: cherokee-webserver/ppa
sudo update apt-get
sudo apt-get install cheroke

Cheroke Web serverin yönetici konsoluna ulaşmak için aşağıdaki komutla bilgileri alıyoruz.

sudo cherokee-admin

Gerekli bilgilerimizi aldıktan sonra
http://ipadresiniz:9090 şeklinde güncelleyerek kullanıma açabilirsiniz.

Cherokee Web Sunucunun web arayüzüne baglanmak için tarayıcınızda (http://127.0.0.1:9090) yada (http://ipadresiniz:9090) adresine giriş yapıyoruz.
"cherokee-admin" ile aldığımız bilgileri, kullanıcı adı ve bir defa sağlanan şifre bilgilerini kullanarak giriş yapıyoruz. Yeni web sunucunuz kullanıma hazır..

Mutlu kodlamalar

Drupal'de yinelenen JavaScript olay işleyicilerini önlemek

Drupal javascript

JavaScript olay işleyicilerinin birden fazla bağlanmasını önleme

Drupal davranışlarında olay dinleyici işlevlerini kullanırsanız, Ajax isteklerini çalıştırdıktan sonra işleyicilerin çoğaltılmasını önlemek için .once () function kullanın. Bu örnekte, bir düğme öğesi tıklatıldığında bir paragraf arasında geçiş yapılır ve hiçbir şey çalıştırmazsanız iyi çalışır. Ajax aynı sayfada istekte bulunur. Ancak bunu yaparsanız, Drupal.behaviors düğmeye yeniden basıp tıklama dinleyicisi birden çok kez eklenecektir. Dolayısıyla paragraf birden çok kez değiştirilecektir.

Drupal.behaviors.magnec_custom = {
    attach: function (context, settings) {
      $('button').click(function() {
        $("p").toggle();
      });
    }
  };

Drupal, paragrafın birden çok kez geçiş yapmasını önlemek için Drupal 7'de beri kendi çekirdeğinde jQuery eklentisini bütünleştirdiği için kodunuzu şu şekilde değiştirin:

Drupal.behaviors.magnec_custom = {
    attach: function (context, settings) {
      $('button').once().click(function() {
        $("p").toggle();
      });
    }
  };

Şimdi, tıklama dinleyicisi öğe düğmesine yalnızca bir kez eklenecek ve JavaScript davranışlarında çoğaltılamayı engelleyeceksiniz. Alternatif çözüm Bu sorunu çözmenin bir başka yolu, öğeye olay dinleyicisi işlevi eklemeden önce unbind işlevini çalıştırmaktır. Örneğin:

Drupal.behaviors.magnec_custom = {
    attach: function (context, settings) {
      $('button').unbind("click");
      $('button').click(function() {
        $("p").toggle();
      });
    }
  };

Başka örnekleriniz varsa, bunları bizimle paylaşabilirsiniz.

Linux veya Unix Sunucusunda SSH Bağlantı Noktası Nasıl Değiştirilir?

ssh

Linux veya Unix Sunucusu için SSH Bağlantı Noktasını değiştirme prosedürü

  1. Terminal uygulamasını açın ve sunucunuza SSH aracılığıyla bağlanın.
  2. Find komutunu yazarak sshd_config dosyasını bulun.
  3. Sshd sunucu dosyasını düzenleyin ve Port seçeneğini ayarlayın.
  4. Dosyayı kaydedin ve kapatın
  5. Linux'ta ssh bağlantı noktasını değiştirmek için sshd hizmetini yeniden başlatın.

Aşağıdaki komutu yazarak sshd_config dosyasını bulun

find / -name "sshd_config" 2>/dev/null

Örnek çıktılar:

/ etc /ssh /sshd_config

Find komutu, sshd_config adlı sshd sunucusu yapılandırma dosyasını bulmaya çalışır.

Dosyayı düzenleyin ve Bağlantı Noktası seçeneğini ayarlayın

Aşağıdaki komutu yazın: Aşağıdaki

sudo nano /etc/ssh/sshd_config

Aşağıdaki okunan satırı bulun:

Port 22

yada

#Port 22

Bağlantı noktasını 2222'ye ayarlamak için şunu girin:

Port 2222

Dosyayı kaydedin ve kapatın. 0-1023 bağlantı noktası numaralarının çeşitli sistem hizmetleri için ayrıldığını lütfen unutmayın. Bu nedenle, 1024 ile 65535 arasında bağlantı noktası numaralarını seçmenizi öneririm. Aşağıda, ayrıcalıklı hizmetlerin ve iyi bilinen bağlantı noktalarının ortak bir listesi verilmiştir:

Liman
Protokol
Hizmet
20 tcp ftp verileri
21 tcp Ftp sunucusu
22 tcp ssh sunucusu
23 tcp telnet sunucusu
25 tcp e-posta sunucusu
53 tcp / udp Alan adı sunucusu
69 udp tftp sunucusu
80 tcp HTTP sunucusu
110 tcp / udp POP3 sunucusu
123 tcp / udp NTP sunucusu
443 tcp HTTPS sunucusu

İnternet ağ hizmetleri listesini görmek için cat komutunu / grep komutunu / egrep komutunu kullanın:

cat /etc/services
less /etc/services
more /etc/services
grep -w '22/tcp' /etc/services
grep SSH /etc/services
grep -w '80/tcp' /etc/services
egrep -w '(80|443|110|53)/tcp' /etc/services

Uyarı : Sisteminizde firewall kullanıyorsanız yeni bağlantı noktasını kabul etmek için güvenlik duvarı ayarlarınızı güncellemelisiniz. Aksi takdirde aşağıdaki komut ssh erişiminizi kilitleyecektir.

Bir CentOS / RHEL / Fedora Linux'ta aşağıdaki komutu yazın:
sudo service sshd restart

VEYA systemd ile CentOS / RHEL / Fedora Linux
sudo systemctl restart sshd

kullanıyorsanız : VEYA Ubuntu / Debian / Mint Linux kullanıyorsanız:
sudo service ssh restart

VEYA Ubuntu / Debian / Mint Linux kullanıyorsanız systemd ile:
sudo systemctl restart ssh

Veya FreeBSD Unix kullanıyorsanız, şunu girin:
sudo service sshd restart

2222 numaralı TCP bağlantı noktasının açıldığı nasıl doğrulanır?

Netstat komutunu veya ss komutunu kullanın:

ss -tulpn | grep 2222
netstat -tulpn | grep 2222

Yeni SSH bağlantı noktasını komut satırıyla kullanma
Sözdizimi şöyledir: Örneğin:

ssh -p {port} user@server
sftp -P {port} openssh-server
scp -P {port} source target
scp -P {port} /path/to/foo user@server:/dest/

yada

ssh user@serveradresi -p  {port}

Sonuç

Bu sayfada, sunucuyu bağlamak için ssh komut satırı seçeneği dahil olmak üzere hem Linux hem de Unix benzeri sistemlerde SSH bağlantı noktasının nasıl değiştirileceği açıklanmıştır. Daha fazla bilgi için lütfen aşağıdaki kaynaklara bakın:

OpenSSH SSH arka plan programı yapılandırma dosyası (sshd_config) kılavuz sayfası : https://man.openbsd.org/sshd_config

Redis Kurulumu ve Drupal konfigürasyonu

Redis Kurulumu ve Drupal Yapılandırma

İlk aşala Redis'i yükleyin

Terminalinizi açın ve aşağıdaki komut ile Redis'i indirmeye çalışın.
apt-get install redis-server

Yukarıdaki komutu girdikten sonra eğer bulunamadı uyarısı ile karşılarsınız aşağıdaki depoyu sisteminize ekleyerek yeniden kurulum yapmayı deneyin.

add-apt-repository ppa:chris-lea/redis-server
apt-get update
apt-get install redis-server

İndirme ve kurulum tamamlandıktan sonra benchmark testi ile kontrol etmek istiyebilirsiniz.
redis-benchmark -q -n 1000 -c 10 -P 5

Redis'in php kütüphanesini yükleyin

apt-get install php7.3-dev git
git clone https://github.com/phpredis/phpredis.git
cd phpredis
git checkout 
phpize
./configure
make && make install
cd ..
rm -rf phpredis
echo "extension=redis.so" > /etc/php/7.3/mods-available/redis.ini
ln -sf /etc/php/7.3/mods-available/redis.ini /etc/php/7.3/fpm/conf.d/20-redis.ini
ln -sf /etc/php/7.3/mods-available/redis.ini /etc/php/7.3/cli/conf.d/20-redis.ini
service php7.3-fpm restart

Not: Sunucunuzdaki php versiyonuna göre düzenleyin.

Redis modülünü Drupal'a kurun
Drupal'dan Redis modülünü indirin ve sisteminize kurun.

Drupal'ı yapılandırın
Aşağıdaki kodları settings.php yada settings.local.redis.php dosyası oluşturup ekleyebilirsiniz.

$settings['redis.connection']['interface'] = 'PhpRedis';                  // Can be "Predis" in the future
$settings['redis.connection']['host']      = '127.0.0.1';                 // Your Redis instance hostname
$settings['cache_prefix']                  = 'any-text-you-want';         // Optional prefix for cache entries

$settings['cache']['default']              = 'cache.backend.redis';       // The default cache engine for the site
// Always set the fast backend for bootstrap, discover and config, otherwise this gets lost when redis is enabled.
$settings['cache']['bins']['bootstrap']    = 'cache.backend.chainedfast';
$settings['cache']['bins']['discovery']    = 'cache.backend.chainedfast';
$settings['cache']['bins']['config']       = 'cache.backend.chainedfast';

$settings['container_yamls'][] = 'modules/redis/example.services.yml';
$settings['container_yamls'][] = 'modules/redis/redis.services.yml';

//Register our namespace
$class_loader->addPsr4('Drupal\\redis\\', 'modules/redis/src');

Yeniden test edin

redis-cli monitor
Drupal sitenize web tarayıcınızda göz atın ve gezinmeye başlayın. Şimdi CLI pencerenizde görünen ve size her şeyin doğru çalıştığını söyleyen bir sürü şey görmelisiniz. Yanıp sönen metni görmüyorsanız, bir hata yapmışsınızdır veya yapılandırmanız benimkinden farklıdır. Metin görürseniz, redis'den çıkmak için Ctrl+ C kombinasyonunu kullanarak çıkış yapabilirsiniz.

Sonuç

Redis, güçlü özellikleri ve basit kurulumu arasında, sadece üretimde değil, her yerde Drupal önbelleğe alma için memcached'e çekici bir alternatif olabilir. Hala şüpheciyseniz, Redis'i mevcut bir site için memcached ile paralel olarak çalıştırabilirsiniz. Tamamen Redis'e rahatça taşınana kadar ayarlar dosyanızda sadece bazı küçük değişiklikler yaparak ikisi arasında geçiş yapabilirsiniz.

Ubuntu 20.04 Drush Kurulumu

Drush

Drush'ı kurmak, Drupal kurulumlarınızı tanıdık bir yöntem olan komut satırı kullanarak yönetmenin bir yolunu sağlar. Drush, yönetici görevlerini yerine getirmenize izin vererek hayatınızı basitleştirebilir.

Bu eğitimde, Drush'ın bağımlılıklarını kurmak için gerekli olduğundan Composer'ı paket yöneticimiz olarak kullanacağız. Composer en az 1 GB cıvarında bellek kullanır, bu nedenle bu eğiticiye başlamadan önce buna sahip olduğunuzdan emin olun.

1. Adım: Güncelleme

Depoları kontrol ederek sistemimizi güncelleyeceğiz

apt-get update

2. Adım: Zip'i yükleyin

Büyük olasılıkla zip komutuna zaten sahip olacaksınız, ancak devam edip yükleme yapamazsanız diye kontrol edebilirsiniz.

apt-get install zip unzip

3. Adım: Curl'u Yükleyin

apt-get install curl php7-cli git

4. Adım: Composer'ı yükleyin

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

Adım 5: Drush'ı yükleyin

Aşağıdaki komutu kullanmak Drush'ın en yeni sürümünü yükleyecektir, şu anda

composer global require drush/drush

Alternatif olarak, gerekli sürümü ekleyerek seçtiğiniz Drush sürümünü yükleyebilirsiniz. Drush 8'in kullanılmasını istiyorsanız…

composer global require drush/drush:8

Not: drush ard komutu 8 surumunden sonra kaldırıldı. Benim gibi drush ard kullanmayı seviyorsanız drush 8 kurmakta fayda var.

Adım 6: Yolunuza Sıkıcı Dizin Ekleyin

6. Adımda sürüm kontrolünü gerçekleştirdiğinizde consolda "-bash: drush: command not found" hatasıyla karşılaşıyorsanız .bashrc dosyanızı açın ve aşağıdaki aliası dosyaya ekleyin.
nano .bashrc
Aşağıdaki aliası açtığınız dosyaya ekleyin.

#path for Drush
export PATH="$HOME/.composer/vendor/bin:$PATH"

Drush'ı çalıştır dosyadaki değişiklikleri tanır.

source .bashrc

Adım 7: Drush Kurulumunu Doğrulayın

Aşağıdaki komutu çalıştırarak Drush kurulumunun sürümünü ve diğer yararlı bilgileri doğrulayabilirsiniz.

drush status

Çıktı:

 PHP executable         :  /usr/bin/php                                 
 PHP configuration      :  /etc/php/7.3/cli/php.ini                     
 PHP OS                 :  Linux                                        
 Drush script           :  /root/.composer/vendor/drush/drush/drush.php 
 Drush version          :  8.0.0                                        
 Drush temp directory   :  /tmp                                         
 Drush configuration    :                                               
 Drush alias files      :

Drupal 8 için Sunucu Kurulumu (lemp) Nasıl Yapılmalıdır?

drupal lemp

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.

Composer ile Drupal 8.8.0 Beta sürümüne güncelleme

drupal composer

Drupal 8.8.0 Beta Test Programı katılımcıları olarak, Drupal 8.7'deki sitelerimizden birini güncellemek için attığımız adımların belgelenmesinin faydalı olacağını düşündük. en son 8.8.0 beta.

Her site farklıdır, bu nedenle kilometreniz değişebilir, ancak size biraz zaman kazandırabilir.

Drupal 8.8, bir dizi yeni özellik eklenmiş büyük bir sürümdür ve Drupal 9.0 sürümüne giden yolu açmak için API'ler kullanımdan kaldırılmıştır. Neyse ki, yükseltme işlemi bizim durumumuzda oldukça basitti.

PathAuto'yu Yükselt
İlk adım The Path Alias ​​çekirdek alt sistemi "path_alias" modülüne taşındı Bu, bazı sınıfların farklı ad alanlarına taşındığı anlamına geliyordu. İşleri daha pürüzsüz hale getirmek için pathauto modülünün en son sürümünü yükledik ve önbellekleri temizledik.

composer require drupal/pathauto:^1.6@beta
drush cr

Core Dev Composer Paketi
Drupal çekirdeği ile test etmek için aynı geliştirici araçlarını kullanıyoruz ve yeni çekirdek besteci paketlerine geçmek istiyoruz, bu yüzden önce eskisini kaldırıyoruz.

composer remove --dev webflo/drupal-core-require-dev

Yamaları Güncelle
Bazen çekirdeği cweagans / besteci yamaları kullanarak düzeltmemiz gerekir . Bu site durumunda, ckeditor_stylesheets önbellek bozma işleminden bir yama kullanıyoruz : Drupal 8.8.x için yeniden yuvarlanması gereken system.css_js_query_string kullanın. Yamayı yeniden yuvarladık, ardından ekstra / yamalar bölümündeki bağlantıyı güncelledik .

Drupal Çekirdeğini ve Arkadaşlarını Güncelleyin
İlk denememizde, besteci bazı symfony paketleri ( symfony / finder , symfony / dosya sistemi ve symfony / debug ) ile bir sürüm çakışması nedeniyle yüklenemedi . Bunlar geçici bağımlılıklardır (açıkça belirtmiyoruz). Çözümümüz, Drupal çekirdeğinin uyumlu olduğu sürümlerle (geçici olarak) açıkça talep etmek ve daha sonra bunları kaldırmaktı.

İlk önce yeni Drupal çekirdeği ve bağımlılıkları gerekir:

composer require --update-with-dependencies \
  drupal/core:^8.8@beta \
  symfony/finder:^3.4 \
  symfony/filesystem:^3.4

İkincisi, yeni core-dev paketi ve bağımlılıkları gerektirir:

  composer require --dev --update-with-dependencies \
  drupal/core-dev:^8.8@beta \
  symfony/debug:^3.4

Son olarak, gerekli geçici bağımlılıkları kaldırın:

composer remove -n \
  symfony/finder \
  symfony/filesystem \
  symfony/debug

Veritabanını Güncelle ve Yapılandırmayı Dışa Aktar
Şimdi kodumuz güncellendi, veritabanı şemasını güncellememiz ve ardından yapılandırmamızı yeniden dışa aktarmamız gerekiyor. Biz kullanmak drush_cmi_tools sizin komutlar, örneğin sadece farklı olabilir, böylece drush yapılandırma ihracatı yerine drush cexy .

drush updb
drush cr
drush cexy

settings.php
Ayrıca, senkronizasyon dizini $ config_directories değil, $ ayarlarında tanımlandığından, settings.php dosyamızı şimdi güncellememiz gerekiyor .

Bu, aşağıdakilerden yapılan önemsiz bir değişikliktir:

$config_directories['sync'] = 'foo/bar';

için:

$settings['config_sync_directory'] = 'foo/bar';

Ayrıca geçici dosyalar dizinini config'ten ayarlara taşımalıyız.

$config['system.file']['path']['temporary'] = 'foo/bar';

için:

$settings['file_temp_path'] = 'foo/bar';

Son dokunuşlar
Emin bizim kod Drupal 9 uyumlu hale getirmek için, biz mükemmel kullanılarak API'ları kullanan herhangi bir özel kod kontrol PHPStan ve Matt Glaman' ler mglaman / phpstan drupal . (Alternatif olarak Drupal Kontrolü kullanabilirsiniz .)

"Nette / bootstrap": "> = 3" ile uyumsuz olan eski bir sürümü kullanıyorduk, bu yüzden bunu çatışma bölümünden kaldırmak ve bir kez daha kaldır / gerektirir dansı yapmak gerekiyordu.

 
 composer remove --dev \
  phpstan/phpstan-deprecation-rules \
  mglaman/phpstan-drupal

composer require --dev --update-with-dependencies \
  phpstan/phpstan-deprecation-rules:^0.11.2 \
  mglaman/phpstan-drupal:^0.11.12

Ve bu kadar! Composer bağımlılıkları çözüldükten sonra tamamen çokta zor değil. Beta'yı test ederken, bu sorunların bazıları gelecekteki betalarda ve RC'lerde ele alınabilir.

Umarım bunu faydalı bulmuşsundur! Daha iyi bir çözümünüz var mı? Bize bildirin!

Güncelleme: Ek ayar değişiklikleri eklendi.

Mutlu kodlamalar

Ubuntu'da (Linux) Memcached Nasıl Kurulur

memcached

Memcached, bilgileri geçici olarak belleğe kaydederek uygulamalarınızı hızlandırmak için kullanılabilecek ücretsiz ve açık kaynaklı bir önbellekleme sistemidir. Memcached, WordPress, Drupal, Joomla ve diğer PHP tabanlı uygulamalar gibi web uygulamalarını hızlandırmanıza yardımcı olur.

Bu yazıda, Ubuntu 18.04 sunucusuna Memcached uygulamasını nasıl yükleyeceğinizi açıklayacağız.

Sisteminizi Güncelleyin

İlk önce, aşağıdaki paketleri kullanarak tüm paketleri en son sürüme güncelleyin:

apt-get update -y
apt-get upgrade -y

Tüm paketler güncellendikten sonra, yapılandırma değişikliklerini uygulamak için sisteminizi yeniden başlatın.

reboot

Memcached Yükleme ve Yapılandırma

Varsayılan olarak, Memcached Ubuntu 18.04 varsayılan deposunda bulunur. Aşağıdaki komutu çalıştırarak kurabilirsiniz:

apt-get install memcached libmemcached-tools -y

Memcached'i yükledikten sonra Memcached hizmetini başlatın ve sistemin aşağıdaki komutla yeniden başlatılmasından sonra başlatılmasını sağlayın:

systemctl start memcached
systemctl enable memcached

Şimdi Memcached servisinin durumunu aşağıdaki komutla kontrol edebilirsiniz:

systemctl status memcached

? memcached.service - memcached daemon
   Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-07-13 06:13:59 UTC; 13s ago
     Docs: man:memcached(1)
 Main PID: 21776 (memcached)
    Tasks: 10 (limit: 1114)
   CGroup: /system.slice/memcached.service
           ??21776 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

Jul 13 06:13:59 ubuntu1804 systemd[1]: Started memcached daemon.

Ayrıca Memcached servisinin çalışıp çalışmadığını da kontrol ederek şunu yazabilirsiniz:

ps aux | grep memcached

Aşağıdaki çıktıyı görmelisiniz:

memcache 21776  0.3  0.2 424764  2880 ?        Ssl  06:13   0:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root     22035  0.0  0.0  13136  1000 pts/0    S+   06:14   0:00 grep --color=auto memcached

Daha sonra, daha gelişmiş ayarlar için Memcached'i yapılandırmanız gerekecektir. Bunu yapmak için, /etc/memcached.conf dosyasını aşağıda gösterildiği gibi açın:

nano /etc/memcached.conf

Aşağıdaki satırları ihtiyacınıza göre değiştirin:

# Default connection port is 11211
-p 11211

# Specify which IP address to listen on.
-l 192.168.0.101
#Define the maximum number of Memory can be used by Memcached deamon.
-m 256

Dosyayı kaydedip kapatın ve ardından değişikliklerin uygulanabilmesi için Memcached services uygulamasını yeniden başlatın.

systemctl restart memcached

Apache ve PHP'yi Kur ve PHP'yi Memcached Kullanacak Şekilde Yapılandır
Memcached şimdi kuruldu ve yapılandırıldı. Ardından, Memcached'i kullanmak için Apache'yi kurmanız ve yapılandırmanız gerekecektir.

Öncelikle Apache ve PHP'yi aşağıdaki komutlarla diğer modüllerle kurun:

apt-get install apache2 php7.2 libapache2-mod-php7.2 php-memcached php7.2-cli -y

Yada sisteminizde Nginx server var ise;

PHP-FPM'i İlgili Nginx Memcached Modülleriyle Kurun

apt-get install php-fpm php-memcached php-cli -y

Yukarıdaki komutlar Memcached'in çalışması ve erişilebilir olması için gerekli PHP modüllerini kurar.

Nginx PHP site desteğini etkinleştirmek için, varsayılan site yapılandırma dosyasını açın ve PHP bloğunu etkinleştirin…

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

Sonra PHP bölümünü etkinleştirmek için yorumu kaldırın.

server {
	listen 80 default_server;
	listen [::]:80 default_server;
        ............
        ............

        index index.php index.html index.htm;

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            #
            # # With php-fpm (or other unix sockets):
            fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;        #Ubuntu 17.10
          # fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;        #Ubuntu 17.04
           # # With php-cgi (or other tcp sockets):
           # fastcgi_pass 127.0.0.1:9000;
  }
  ..........

Yaoılandırmaları işvelsel hale getirebilmek için nginx yeniden başlatın

sudo systemctl reload nginx.service

Ardından, Memcached'i test etmek için Apache ve Nginx web kök dizininde örnek bir phpinfo.php dosyası oluşturun.

<? php 
phpinfo (); 
?>

Dosyayı kaydedin ve kapatın. Ardından web tarayıcınızı açın ve http: //server-ip/phpinfo.php URL adresini yazın . PHP ile ilgili tüm modülleri ve Memcached bilgilerini aşağıdaki sayfada görmelisiniz.

Bilgiler gözüküyor ise;
Tebrikler! Memcached'i Ubuntu 18.04 sunucusuna başarıyla yüklediniz. Daha fazla bilgi için Memcache Herhangi bir sorunuz varsa, sormaya çekinmeyin.

Mutlu Kodlamalar

Drupal 8'de Özel Bir Blok Nasıl Oluşturulur

Drupal özel modul ile blok oluşturma

Drupal GUI üzerinden

Bu yöntem, programlı olarak bir blok oluşturmaktan oldukça basit ve kolaydır. Ancak, programlı olarak bir blok oluşturmaya göre daha az esnek ve özelleştirilebilirdir./p>

  • Gidin admin -> structure -> block layout -> custom block library. .
  • ' Blok türleri ' sekmesini tıklayın. Burada bir kez, ' Özel blok tipi ekle ' düğmesine tıklayın.
  • Blok etiketi ve açıklamasını girin.
  • Artık, özel bloğunuz için alanlar ekleyebilir, ekran türünü yönetebilir, ekranı yönetebilirsiniz. Bloğu beğeninize göre özelleştirin ve kaydet seçeneğine tıklayın.
  • Şimdi, özel blok kütüphanesine geri dönün ve bloğu kütüphanenize eklemek için mavi ' Özel blok ekle ' düğmesini tıklayın.
  • Bir sonraki adım admin blok düzenine giderek bloğu istediğiniz bölgeye yerleştirmektir

Modül oluştur

Drupal 8'de, oluşturduğunuz her özel modül, tema veya eklenti için meta verileri içeren bir info.yml dosyası oluşturmak gerekir. Benzer şekilde, özel bloğumuz için, 'module / custom' dizininde bir info.yml dosyası oluşturmamız gerekecek. Özel klasör daha önce oluşturulmadıysa, onu oluşturmanız gerekeceğini unutmayın. Özel bir blok oluşturmak için, özel bir modül yapmamız gerekecek.

Şimdi 'custom_block_example.info.yml' gibi bir 'info.yml' dosyası oluşturun. Bu dosyanın içine aşağıdakini girin:

name: özel blok modulü
type: module
description: Açıklamanızı yazın.
core: 8.x
package: Custom
dependencies:
- block

Artık Drupal panonuza gidebilir ve az önce oluşturduğumuz özel modülü etkinleştirebilirsiniz.

Sınıf Oluştur

Şimdi, bloğun mantığını tanımlamak için, modules/custom/custom_block_example/src/Plugin/Block dizini altına yerleştirilecek bir sınıf oluşturmamız gerekiyor .

Sınıf dosyası da ek açıklama içermelidir. Ek açıklama bloğu tanımlamamızı sağlar. Ek açıklama dışında, bu sınıf 4 yöntem içerir:

  • build () - Yenilebilir bir dizi oluşturarak temel bir işaretleme döndürür.
  • blockAccess () - Özel bir kullanıcı erişim mantığı tanımlar.
  • blockForm () - Form API'sini kullanarak özel bir blok yapılandırma formu tanımlar.
  • blockSubmit () - blockForm () yönteminde tanımlanan bir yapılandırmayı kaydetmek için kullanılır.
<?php

namespace Drupal\my_block_example\Plugin\Block;

use Drupal\Core\Access\AccessResult;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Session\AccountInterface;

/**
 * Provides a block with a simple text.
 *
 * @Block(
 *   id = "my_block_example_block",
 *   admin_label = @Translation("My block"),
 * )
 */
class MyBlock extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {
    return [
      '#markup' => $this->t('This is a simple block!'),
    ];
  }

  /**
   * {@inheritdoc}
   */
  protected function blockAccess(AccountInterface $account) {
    return AccessResult::allowedIfHasPermission($account, 'access content');
  }

  /**
   * {@inheritdoc}
   */
  public function blockForm($form, FormStateInterface $form_state) {
    $config = $this->getConfiguration();

    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function blockSubmit($form, FormStateInterface $form_state) {
    $this->configuration['my_block_settings'] = $form_state->getValue('my_block_settings');
  }
}

Şimdi sitenize geri dönün ve yeni oluşturduğunuz bloğu görebilmeniz gerekir. Basitçe bloğu seçtiğiniz bir bölgeye atayın ve görünür olması gerekir.

Sonuç

Daha önce de belirtildiği gibi, bloklar bir Drupal sitesinin ayrılmaz bir parçasıdır. Blokları kendi tarzınıza göre kişiselleştirmeyi ve oynamayı öğrenmek çok yararlı bir beceri olabilir.

Drupal sitenizi özelleştirmekle ilgili sorun mu yaşıyorsunuz? Magnec'te bizimle iletişime geçin ve Drupal sitenize bir daha asla takılıp kalmayla ilgili endişelenmeyi unutun.

Abone ol Nasıl Yapılır