Debian 10 Üzerine PHP 7.4 Kurulumu

Bazı uygulamalarda PHP 7.3 desteği yavaş yavaş kaldırılmaya başlandı bile, bu sebeple PHP sürümü yükseltmek isteyen arkadaşlarımız olabilir, bu noktada debian işletim sisteminde aşağıdaki değişikliklerin yapılması gerekmektedir.

apt -y install lsb-release apt-transport-https ca-certificates 
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Güncel repo dahil edildikten sonra güncelleme komutu verilir.

apt update

Gerekli olan modüllerle birlikte sisteme kurulum gerçekleştirilir.

apt install php7.4
apt install php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip,xml,fpm}

Debian 10 Üzerine Node.js Kurulumu

Node.JS v10.x serisinin kurulumu

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs npm build-essential

Node.JS v12.x serisinin kurulumu

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
apt install -y nodejs npm build-essential

Node.JS v14.x serisinin kurulumu

curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt-get install -y nodejs npm build-essential

Nvm Kurulumu

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

Aşağıdaki satırları ~/.bash_profile~/.zshrc~/.profile, veya ~/.bashrc dosyanıza eklemeyi unutmayınız.

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Centos 8 Üzerine Zabbix Agent Kurulumu

Bu bash script Zabbix Agent kurulumu içindir, 1.1.1.1 IP adresini zabbit sunucunuzun IP adresi ile değiştirmeyi unutmayınız.

#!/bin/bash -e

if [ "$UID" -ne 0 ]; then
  echo "Please run as root"
  exit 1
fi

# Only run it if we can (ie. on RHEL8/CentOS 8)
if [ -x /usr/bin/yum ]; then
  yum -y update
  rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-agent-5.0.2-1.el8.x86_64.rpm
  yum -y install zabbix-agent
  chkconfig zabbix-agent on
  sed -i 's/Server=127.0.0.1/Server=1.1.1.1/' /etc/zabbix/zabbix_agentd.conf
  sed -i 's/ServerActive=127.0.0.1/ServerActive=1.1.1.1/' /etc/zabbix/zabbix_agentd.conf
  HOSTNAME=`hostname` && sed -i "s/Hostname=Zabbix\ server/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agentd.conf
  service zabbix-agent restart
fi

Debian 10 Üzerine Zabbix Agent Kurulumu

Bu bash script Zabbix Agent kurulumu içindir, 1.1.1.1 IP adresini zabbit sunucunuzun IP adresi ile değiştirmeyi unutmayınız.

#!/bin/bash -e

if [ "$UID" -ne 0 ]; then
  echo "Please run as root"
  exit 1
fi

# Only run it if we can (ie. on Ubuntu/Debian)
if [ -x /usr/bin/apt-get ]; then
  apt-get update
  apt-get -y install zabbix-agent sysv-rc-conf
  sysv-rc-conf zabbix-agent on
  sed -i 's/Server=127.0.0.1/Server=1.1.1.1/' /etc/zabbix/zabbix_agentd.conf
  sed -i 's/ServerActive=127.0.0.1/ServerActive=1.1.1.1/' /etc/zabbix/zabbix_agentd.conf
  HOSTNAME=`hostname` && sed -i "s/Hostname=Zabbix\ server/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agentd.conf
  service zabbix-agent restart
fi

MacOS’da Zsh Üzerinde Conda Env Çalıştırma

MacOS sisteminizi tatlı tatlı kullanırken, geliştirme ortamınızda Conda kullanıyorsanız ve terminalde zsh kuruluysa tanımlaması eksik olduğu için çalışmayacak bu yüzden yapmamız gereken bir kaç değişiklik var.

Öncelikli olarak open ~/.zshrc Komutunu verip dosyamızın içini açıyoruz, satırın en altına geçiyoruz ve aşağıda verdiklerimi ekliyorsunuz.

# added by Anaconda3 2019.10 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/$USER/opt/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \\eval "$__conda_setup"
else
    if [ -f "/Users/$USER/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/$USER/opt/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \\export PATH="/Users/$USER/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

Terminali açıp kapatıp yeni ayarların geçerli olmasını sağlayabilirsiniz veya source ~/.zshrc komutu ile değişikliğin geçerliliğini sağlayabilirsiniz.

Wordpress’de Kullanılmayan Eklenti Ayarlarının Veritabanından Kaldırılması

Silmek isteiğimiz ayarlar için önce bütün kayıtlara bakmanız gerekebilir, bunun için

SELECT * FROM tkmyuwul_options

Ardından gözünüze kestirdiğiniz silinecek ayar için SQL komutunu hazırlıyoruz. Böylelikle bahsi geçen ayarı kalıcı olarak tablodan uçuruyoruz.

DELETE FROM tkmyuwul_options WHERE option_name LIKE "icwp_%"

Ben şöyle bir SQL hazırladım, kullanmayı bıraktığım bütün pluginlerin ayarlarını böylelikle kaldırdım.

DELETE FROM tkmyuwul_options WHERE option_name LIKE "crayon_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "icwp_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "psp_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "wordfence_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "woocommerce_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "adblocker_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "tinypng_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "monsterinsights_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "pvb_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "boldgrid%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "responsive_lightbox%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "shift8%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "githuber%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "duplicate_post%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "hcaptcha%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "shield_mod%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "ninja_forms%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "ht_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "wp-optimize%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "updraft_%";
DELETE FROM tkmyuwul_options WHERE option_name LIKE "%\\_transient\\_%";

Wordpress İçin Zararlı Yazılım Yayan Web Siteleri

Warez tema, eklenti ve bilimum bileşeni ücretsiz olarak size sunduğunu söyleyerek, umut tacirliği yapan ve bol miktarda malware bulunduran ve yayan web siteleri aşağıdaki gibidir.

Bu web sitelerden asla ve asla içerik indirmeyiniz.

Güncelleme: 17 Temmuz 2020

downloadfreethemes.co
downloadfreethemes.space
downloadnulled.pw
freenulled.top
nulledzip.download
themesfreedownload.net
themesfreedownload.top
vestathemes.com
wpnull24.com
nulledfree.pw
2nulled.com
null5.top
xnulls.com
nulled.today
wpthemify.com
allwpworld.com

Github Profiline README Dosyası Nasıl Eklenir?

Github geçtiğimiz hafta geliştiriciler için bir özelliği daha kullanıma sundu, işiniz ve portföyünüz veya herhangi bir şey hakkında bilgiler verebileceğiniz bir README dosyasını profilinize ekleyebiliyorsunuz.

Bu özelliği nasıl kullanabileceğinizi size kısaca anlatmaya çalışacağım, Github hesabınıza giriş yapıyorsunuz ve yeni repo oluşturma aşamasına geçiyorsunuz.

Kullanıcı adınızla aynı bir repo oluşturuyorsunuz. Bu aşamada alttada gördüğünüz gibi özel repo aktif olacak.

github profiline özel readme ekleme, github profiline cv ekleme, github profiline special repo ekleme

İşlemi tamamlamadan önce “Initialize this repository with a README” aktif edip repoyu oluşturuyoruz.

İlk oluşturulan README içerisinde düzenleme yapabileceğiniz birde template bulunuyor, hiç bir fikriniz yoksa bu hazır geleni düzenleyip kullanabilirsiniz. Aksi durumda markdown ile gerekli düzenlemeyi yapmanız gerekmektedir.

github özel sayfalar son hal, markdown ile githubda profil oluşturma

Docker’da Varsayılan Veri Klasörü Nasıl Değiştirilir?

Docker’ı sisteme ilk kurduğunuzda indirilen imajlara kadar her şeyi /var/lib/docker içerisinde tutmaktadır. Başka bir yerde bu verileri depolamak istiyoruz, ben genellikle bu tarz verileri SSD üzerinde tutmam, Cold Storage üzerine alırım.

Çözümümüze gelecek olursak başlamadan önce varsayılan klasörü yani /var/lib/docker dizinini temizliyoruz.

docker system prune -a

Komutu işinizi fazlasıyla görecektir. Dizin temizlendikten sonra /etc/docker/daemon.json yoluna gidiyoruz karşınıza aşağıdaki gibi bir yapılandırma dosyası çıkacak.

{
 "authorization-plugins": [],
 "dns": [],
 "dns-opts": [],
 "dns-search": [],
 "exec-opts": [],
 "exec-root": "",
 "experimental": false,
 "storage-driver": "",
 "storage-opts": [],
 "labels": [],
 "live-restore": true,
 "log-driver": "",
 "log-opts": {},
 "mtu": 0,
 "pidfile": "",
 "graph": "",
 "cluster-store": "",
 "cluster-store-opts": {},
 "cluster-advertise": "",
 "max-concurrent-downloads": 3,
 "max-concurrent-uploads": 5,
 "shutdown-timeout": 15,
 "debug": true,
 "hosts": [],
 "log-level": "",
 "tls": true,
 "tlsverify": true,
 "tlscacert": "",
 "tlscert": "",
 "tlskey": "",
 "swarm-default-advertise-addr": "",
 "api-cors-header": "",
 "selinux-enabled": false,
 "userns-remap": "",
 "group": "",
 "cgroup-parent": "",
 "default-ulimits": {},
 "init": false,
 "init-path": "/usr/libexec/docker-init",
 "ipv6": false,
 "iptables": false,
 "ip-forward": false,
 "ip-masq": false,
 "userland-proxy": false,
 "userland-proxy-path": "/usr/libexec/docker-proxy",
 "ip": "0.0.0.0",
 "bridge": "",
 "bip": "",
 "fixed-cidr": "",
 "fixed-cidr-v6": "",
 "default-gateway": "",
 "default-gateway-v6": "",
 "icc": false,
 "raw-logs": false,
 "registry-mirrors": [],
 "seccomp-profile": "",
 "insecure-registries": [],
 "disable-legacy-registry": false,
 "default-runtime": "runc",
 "oom-score-adjust": -500,
 "runtimes": {
  "runc": {
   "path": "runc"
  },
  "custom": {
   "path": "/usr/local/bin/my-runc-replacement",
   "runtimeArgs": [
    "--debug"
   ]
  }
 }
}

Yapılandırma dosyasının içerisinde şu değişikliği yapıyoruz ve kayıt ediyoruz.

"data-root": "/disk1/data/docker_datum",
"storage-driver": "overlay2"

bu işlemin ardından systemctl restart docker komutu ile yeniden başlatıktan sonra gereken docker dosyalarını yeni yerinde bulabilirsiniz. Bu sayede ana diskiniz dolmadan işlemleri yapabilirsiniz.

Django’da Amazon S3 Üzerinde Tutulan Private Dosyaların Sunulması

Herkesten sakladığınız ve sadece erişim isteği isteyen kullanıcıların dosyalara erişmesini sağlamak istiyorsanız ve bu isteğinizi Amazon üzerinde bulunan S3 bucketınızda yapacaksanız derdinizin çözümü burada,

  • AWS S3 de tutulan dosyalar private olarak geçmelidir.
  • Amazon S3 API anahtarınızda s3:GetObject yetkisi mutlaka bulunmalıdır.
  • django-storages Kullanılıyorsa ve dosyalar onun üzerinden sisteme yükleniyorsa, imza hatası alınmaması için mutlaka AWS_S3_SIGNATURE_VERSION = 's3v4' ve AWS_S3_ADDRESSING_STYLE = 'path' parametreleri settings.py dosyasına eklenmelidir.
import boto3
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import View
from django.http import HttpResponseRedirect

class AwsS3UrlGenerator(LoginRequiredMixin, View):
    def get(self, *args, **kwargs):
        s3_client = boto3.client(
            "s3",
            aws_access_key_id="",
            aws_secret_access_key="",
            region_name="eu-west-1",
            config=Config(
                s3={"addressing_style": "path"}, signature_version="s3v4"
            ),
        )
        try:
            presigned_url = s3_client.generate_presigned_url(
                "get_object",
                Params={
                    "Bucket": "bucket-name",
                    "Key": str(self.request.GET["p"]),
                },
                ExpiresIn=300,
                HttpMethod="GET",
            )
        except ClientError as e:
            return None

        return HttpResponseRedirect(presigned_url)