Ubuntu 22.04, Apache2, MariaDB ve PHP 8.2-FPM ile WordPress kurulumu

WordPress’i Cloud Server’da barındırmayı planlıyorsanız, bu kılavuz sizin için yararlı olacaktır. LAMP stands for Linux, Apache, MariaDB and PHP olarak bilinen yazılımlar bir araya getirilmiştir. LAMP stack.

NGINX yerine Apache web sunucusu seçmenin artıları ve eksileri

  • Artıları: It supports .htaccess filebirçok Sayfa Önbelleğe Alma ve Optimizasyon tarafından yaygın olarak kullanılır. Bu, kodlayıcı olmayanlar için harika bir seçimdir.
  • Eksiler: NGINX’ten biraz daha az performanslıdır ancak bu APO kullanılarak yönetilebilir. Yüksek trafikli bir site için, LEMP stack en iyi seçimdir.

Bu 3 adımı izleyin ve videoyu izleyin. Yardıma ihtiyacınız var? Bana ulaşın. 😊

  1. Kurulum Cloudflare DNS
  2. Getting Ubuntu Server
  3. Deploying LAMP Stack

Şimdi başlamadan önce, işte size kısa bir ipucu. Kullanım Search and Replace Extension bu web sayfasında example.com’u kendi alan adınıza toplu olarak değiştirmek için.

Google Chrome kullanıcıları için zaman kazandıran ipucu.
search replace

Bölüm A: Devam et Cloudflare Nameservers aktif

Biz kullanacağız Cloudflare DNS almak için Let’s Encrypt Wildcard SSL certificate. Sıfır kesinti süreli geçişin keyfini çıkarmak için önce bu adımı tamamlayın.

Kontrol et Current Nameservers

Parça B: Get a Ubuntu Server 22.04 LTS Server ready

Ubuntu
Ubuntu logo

1. Kaydolun Vultr to 100 $ Ücretsiz kredi kazanın (14 gün boyunca geçerlidir)

Pek çok Bulut sunucu şirketini denemiş biri olarak, deneyimlerim Vultr ile yanlış gidemeyeceğinizi söylüyor. Bu adamlar destek ve hizmetler söz konusu olduğunda samimi ve ilgili.

vultr

⚡ Performans

  • 3rd Generation AMD EPYC™
  • NVME / SSD
  • Up to 4 GHz CPU
  • Up to 5Gbps Network Speed
  • Datacenter in America, Europe, Asia, Austraillia
  • IPV6 ready

💡 Özellikler

  • Beginner-Friendly Dashboard
  • One-click to Snapshot
  • Automtatic Backup (Paid)
  • Free Cloud Firewall
  • DDoS protection (Paid)
  • 100% KVM Virtualization

⚙ Destek

  • PayPal/Card
  • 24/7 Ticket Support
  • Documentation

2. Deloy a New Server

Başlamak için artı düğmesine tıklamanız yeterlidir

Deploy New Server

3. Seçin Server type

Seçiniz Cloud Compute for shared CPU uygun fiyatlarla.

Cloud Compute

Ardından, şunları seçmeniz gerekir CPU & Storage Technology, tercih edebilirsiniz “AMD High Performance”.

CPU Technology

4. Bir seçim yapın Server Location

Vultr dört kıtada sunucu sunmaktadır. En düşük gecikme süresi ve en iyi performans için her zaman hedef kitlenize en yakın bölgeyi seçmelisiniz.

vultr server region 1

Örneğin, trafiğin %99’u AB’den geliyorsa, en yakın bölge olan Londra’yı seçin.

Asia

  • Mumbai, India
  • Delhi NCR, India
  • Bengaluru, India
  • Singapore, Singapore
  • Tokyo, Japan
  • Seoul, South Korea

America

  • Miami, United States
  • Atlanta, United States
  • Chicago, United States
  • Dallas, United States
  • Honolulu, United States
  • Los Angeles, United States
  • Mexico City, Mexico
  • New York (NJ), United States
  • Seattle, United States
  • Silicon Valley, United States
  • Toronto, Canada, São Paulo

Europe

  • Stockholm, Sweden
  • London, United Kingdom
  • Amsterdam, Netherlands
  • Frankfurt, Germany
  • Madrid, Spain
  • Paris, France
  • Warsaw, Poland

Australlia

  • Sydney, Australlia
  • Melbourne, Australia

5. Seçiniz Server Image > Operating System > Ubuntu 22.04 LTS x64

ubuntu os

Uzun vadeli destek (LTS), bilgisayar yazılımının kararlı bir sürümünün standart sürümden daha uzun bir süre boyunca muhafaza edildiği bir ürün yaşam döngüsü yönetim politikasıdır.

ubuntu releases 2

6. Bir seçim yapın Server Size

server size

6 $ / ay planı yeni bir blog için harika bir başlangıç noktası olacaktır. İhtiyaca göre istediğiniz zaman yükseltebilirsiniz.

İpucu: Eğer geçiş yapıyorsanız, Toplam kurulum boyutu Site health info.

Site health info

7. Etkinleştir IPV6, Backup

vultr enable backup ipv6

8. Add a SSH key

Bu, aşağıdakiler için önerilen, isteğe bağlı bir adımdır enhanced security.

Add SSH key
  • Tıklayınız Add New button yeni bir SSH key göndermek için 🔒Public key.
  • İşletim sisteminize göre aşağıdaki yöntemi kullanarak Anahtarları Oluşturun.
win os
  • İndir PuTTy application.
  • Aramak için PuTTygen içinde Start menu
  • Oluştur düğmesine tıklayın ve fare imlecini üzerine getirin
  • Copy Public key and provide to Vultr
  • Enter key passphrase
  • Save 🔑Private Key at the safest location.
  • Bu, SSH veya SFTP’ye giriş için kullanılabilir.
linux 2
  • Run: ssh-keygen -t rsa. For a more secure 4096-bit key, run: ssh-keygen -t rsa -b 4096
  • Anahtarı nereye kaydetmek istediğiniz sorulduğunda enter tuşuna basın (bu varsayılan konumu kullanacaktır).
  • Enter a passphrase for your key.
  • Run cat ~/.ssh/id_rsa.pub – this will give you the key in the proper format to paste into the control panel.
  • Yedeklediğinizden emin olun the ~/.ssh/id_rsa file. Kaybolması halinde geri getirilemez.

Seçiminizi yapın SSH key

Bu adımları izleyerek açık anahtarınızı yeni Örneğinize ekleyebilirsiniz. Ardından, hem Düz Metin parolasını hem de SSH anahtarını kullanarak SSH’ye giriş yapabileceksiniz.

select SSH public key

9. Link Web Firewall rule to Server Instance

Firewall
  1. Yönet’e tıklayın ve bir new Firewall Group.
  2. Allow TCP port 22 for SSH. 80 for HTTP and 443 HTTPS for IPV4 and IPV6 rules both.
  3. Bunu yaptıktan sonra Firewall group senin Instance.
firewall status
Accept TCP connection from 22, 80, 443 only
Link Firewall Group
Link firewall rule to new instance

10. Enter Hostname and label click Deploy Now

server hostname label

Şimdi, ilerleme bölümünde yükleme işlemini göreceksiniz

Instance Installing

11. Yeni’ye git Instance page

Copy IP address, username and password. Varsayılan değeriniz port is 22.

new instance info page

12. Disable Password Login

Güvenlik nedeniyle, parolanın devre dışı bırakılması önerilir authentication ve sadece key based authentication.

  1. Edit the configuration file nano /etc/ssh/sshd_config
  2. Find (CTRL + W) and search PasswordAuthentication
  3. Change value from yes to no
  4. To save type, CTRL + O
  5. Yeniden başlatın SSH service using command sudo service ssh restart
disable password auth
Disable Password Authentication

Bir sonraki seferden itibaren SSH via key only as shown in the video.

For Linux or Mac, use Terminal with command like this

ssh [email protected] -p 22 -i id_rsa

Adım 13. Disable UFW

VULTR’de yeni bir örnek dağıttığınızda, SSH bağlantı noktası 22 hariç tüm bağlantı noktalarını engelleyen UFW (Karmaşık Olmayan Güvenlik Duvarı) etkinleştirilmiş olarak gelir. Bu, tarayıcıda ERR_CONNECTION_REFUSED Hatası döndürebilir. Bunu düzeltmek için UFW’yi devre dışı bırakmanızı öneririm.

ufw disable

Şimdi, WordPress’i LAMP yığını üzerinde dağıtmak için orijinal süreci hızlandıracağım.

Parça C. Dağıtım WordPress on LAMP Stack

1. Update repositories

Aşağıdaki komutu yazın ve enter tuşuna basın

sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot

veya

wget -qO update https://dl.gulshankumar.net/update && chmod +x update

Bir dahaki sefere, güncellemek için her zaman aşağıdaki kısayol komutunu kullanın.

./update

2. Install MariaDB with security

Tekrar giriş yapın ve aşağıdaki komutu girin

sudo apt install mariadb-server -y && sudo mysql_secure_installation

Aşağıdaki soruları cevaplayın

  • Enter current password for root (enter for none): Enter tuşuna basın
  • Switch to unix_socket authentication [Y/n]: n yazın ve Enter tuşuna basın.
  • Set root password? [Y/n]: Enter tuşuna basın.
  • New password: Dashlane Password Generator’dan güçlü bir parola kopyalayın. SSH konsoluna bir parola yapıştırmak için sağ tıklayın ve Enter tuşuna basın. Parola ekranda görünmeyecektir.
  • Re-enter new password: Sağ tıklayın ve Enter tuşuna tekrar basın.

Başarılı şifre ayarından sonra aşağıdakileri göreceksiniz

Password updated successfully!
Reloading privilege tables..
... Success!

Ayrıca aşağıdaki soruları da yanıtlamanız gerekmektedir.

  • Remove anonymous users? [Y/n]: Y tuşuna basın ve girin
  • Disallow root login remotely? [Y/n]: Y tuşuna basın ve girin
  • Remove test database and access to it? [Y/n]: Y tuşuna basın ve girin
  • Reload privilege tables now? [Y/n]: Y tuşuna basın ve girin

3. Create a new Database for WordPress

MySQL’e giriş yapın, press enter key şifre sorduğunda.

mysql -u root -p

Yeni bir Veritabanı oluşturun ve kullanıcısına parola ile kullanma ayrıcalıkları verin. Burası WordPress’in tüm yazı, sayfa, tema, eklenti vb. bilgileri depoladığı yerdir.

create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;

Where your …
database is wordpress
username is gulshan
password is 5pY8CKJxDRJEGQNkX7

İpucu: Benzersiz oturum açma kimlik bilgilerini kullanmayı düşünün

4. Install PHP 8.2, Apache2 and set Permission

sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/

PHP Yapılandırmasını Değiştirin

Çoğu süslü tema ve eklentinin çalışması için üst düzey PHP yapılandırması gerekir. Bu nedenle, bu değişiklikleri yapmalıyız.

sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart

5. Install Wildcard Let’s Encrypt SSL Certificate

Oluşturmak cloudflare.ini file inside /root/.secrets/ directory.

mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini

Aşağıdaki kodu ekleyin ve kullanarak kaydedin CTRL+O and exit using CTRL+X

dns_cloudflare_email = "[email protected]"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"

Cloudflare e-postanızı bulun ve Global API key at “My Profile” > API Tokens > Global API Key

chmod 0400 /root/.secrets/cloudflare.ini

Install Certbot and DNS Authenticator according to OS and HTTP web server

apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare

Get Wildcard SSL Certificate

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01

Set Automatic Renewal using Cron Job

  • Type crontab -e
  • Type 1 for nano editor
  • Enter below command and save
0 0 * * *  /etc/init.d/apache2 reload >/dev/null 2>&1

Test renewal

certbot renew --dry-run

Bu yararlı özellikleri etkinleştirin modules

a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2

6. Create App Directory for each WordPress site you want to install

mkdir -p /var/www/example.com/public

Bu, Apache Yapılandırma dosyanızdaki Belge Kök yolunuz olacaktır. www içinde example.com oluşturmanın nedeni her siteyi düzenli bir şekilde tutmaktır. İkinci olarak, wp-config.php hariç tüm WordPress çekirdek dosyalarını bir seviye yukarıda (/var/www/example.com/) tutmak amacıyla public dizini de oluşturdum.

7. Oluştur Apache2 Configuration

Bu, alan adınızı yapılandırmanız gereken yerde, Apache2’nin HTTP isteklerinizi nasıl ele alması gerektiği konusunda önemlidir.

Delete default server blocks configuration files of Apache2

rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars

Şimdi, Create a new server block yapılandırma dosyaları. Aynı sunucuya her yeni WordPress eklemek istediğinizde bu adımı uygulamanız gerekir.

Lütfen example.com yerine kendi alan adınızı yazın ve yapılandırma dosyası adını .conf uzantısı ile bitirmeyi unutmayın. Aksi takdirde çalışmayacaktır.

cd /etc/apache2/sites-available/
nano example.com.conf
  1. Replace example.com with own domain
  2. Enter below code and Press ctrl+o to save and ctrl+x to exit.
##############################################################
#                                                               
# NOTLAR: Lütfen example.com'u kendi alan adınızla arayın ve değiştirin.  
#                                                                
##############################################################


# www olmayan HTTPS'yi zorlayacağız
# HTTPS www istiyorsanız lütfen https://www.example.com/ adresini son satırda tutun.
# Yoksa yönlendirme döngüsü sorunuyla karşılaşabilirsiniz.

<VirtualHost *:80>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Protocols h2 h2c http/1.1
   DirectoryIndex index.php index.html
    
   # Cloudflare kullanıcıları için önerilir
   # RemoteIPHeader X-Forwarded-For
   
   # Belge Kök Yolu (404'ten kaçınmak için bu yola dikkat edin)
   DocumentRoot /var/www/example.com/public
   
   # Logs Path is /var/log/apache2/example.com-access.log
   ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
   CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
   
   # Let's Encrypt SSL
   SSLEngine On
   SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
   
   # Yapılandırmayı geçersiz kılmak için .htaccess dosyasının kullanılmasına izin ver
   <Directory /var/www/example.com/public>
     Options FollowSymLinks
     AllowOverride All
     Require all granted
   </Directory>
   
   # Uploads Dizini içinde PHP yürütülmesini engelleme
   <Directory /var/www/example.com/public/wp-content/uploads>
    <Files *.php>
      deny from all
    </Files>
   </Directory>
   
   # wp-config.php dosyasını koruyun
   <files wp-config.php>
      order allow,deny
      deny from all
   </files>

  # Ek güvenlik için HTTP Auth
  # WordPress Oturum Açma sayfası için HTTP Auth istiyorsanız, bu kod bloğunun yorumunu kaldırmayı düşünün.
  # Bunu yaparsanız .htpasswd dosyasını da oluşturmanız gerekir.
  # <Files wp-login.php>
  #  AuthName "Admins Only"
  #    AuthUserFile /var/www/.htpasswd
  #   AuthType basic
  #    require user gulshan
  #   <RequireAny>
  #      Require ip 127.0.0.1
  #       Require valid-user
  #   </RequireAny>
  # </Files>
   
   # DDoS Saldırısını önlemek için XML-RPC'yi engelleyin. 
   <Files xmlrpc.php>
      Order Deny,Allow
      Deny from all
   </Files>
   
   # PHP yürütmesini ele alın
   <FilesMatch ".php$">
      SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
   </FilesMatch>
</VirtualHost>

To save, press CTRL+O and Enter key. Then, exit nano editor using command CTRL+X.

To activate server block, komutunu girin

Aşağıdaki komutu çalıştırmadan önce lütfen example.com to own domain.

a2ensite example.com.conf

Test configuration (optional)

apache2 -t

Yeniden başlatın ve güncelleyin

service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y

8. Kurulum WordPress files

WordPress dosyalarını şuradan indirin /var/www/example.com/public/ directory and set permission.

cd /var/www/example.com/public/ && wget https://tr.wordpress.org/latest-tr_TR.tar.gz && tar -xvzf latest-tr_TR.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest-tr_TR.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

Gelecekte izinleri güncellemek için, use below command. This will set www-data içindeki her şey için /var/www/ directory

chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

9. Updating DNS

WordPress’i yerel olarak barındırıyorsanız, proxy’yi atlamak istiyorsanız veya sıfır kesinti süresi geçişi gerçekleştirmek istiyorsanız, bu adım yararlıdır. Genelde şu durumlarda tercih ederim Static WordPress Dev area. 😉

  • DNS’i işaret etmenin iki yolu vardır. Siteyi Vultr’a taşıyorsanız ve önce yerel olarak test etmek istiyorsanız, hosts dosyanızı düzenleyin ve oraya yönlendirin.

Windows için

  • Go to properties of ‪‪C:\Windows\System32\drivers\etc\hosts
  • Değişim “Security” permission to full control for your current Username
  • Artık hosts dosyasını Sistem kullanıcınız altında serbestçe düzenleyebilir ve kaydedebilirsiniz.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com

Bir örnek, bu şekilde görünmelidir

Mac veya Linux için

Hosts dosyasını şu şekilde düzenleyebilirsiniz command under sudo user.

sudo nano /etc/hosts

Updating DNS with Cloudflare

  • Her şey mükemmel görünüyorsa ve sitenizi canlı hale getirmek istiyorsanız, Cloudflare DNS’e giriş yapın ve yeni IP’yi güncelleyin.
Record TypeNameValue
A@IPV4
AAAA@IPV6
CNAMEwwwexample.com

where @ denotes root domain example.com

9. Visit your domain name to setup WordPress

WordPress’iniz için www olmayan sürüm alanını tutmak istiyorsanız, www olmayan sürümü ziyaret edin, aksi takdirde www.

https://example.com
  • WordPress Kurulumuna başlamak için Veritabanı oturum açma kimlik bilgilerini sağlayın
  • Kurulumu Çalıştır
  • Yeni Sitenizin Temel ayrıntılarını doldurun ve WordPress’i yükleyin.
  • Login to WordPress

Diğer gerekli şeyler

  • Ani yük ile başa çıkmak için Takas Belleğini artırın
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • Sunucu yükünü kontrol altında tutmak için bir Sayfa Önbellekleme eklentisi kullandığınızdan emin olun. Bu bir LAMP yığını olduğundan, size şunları tavsiye ederim WP Fastest Cache.
  • Her zaman yedek tutun.
  • WordPress’in giden e-postalarını göndermek için SMTP eklentisi Hizmetlerini kullanın, aksi takdirde şifre sıfırlama bağlantısını, iletişim formu 7 mesajlarını alamazsınız.

Son olarak, WordPress kurulumu tamamlanmıştır.

Bu makaleyi okuyarak değerli vaktinizi ayırdığınız için çok teşekkür ederim. Bir sonraki derste görüşmek üzere!

Yorum yapın