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. 😊
Ş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.

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
- Etkinliğinizi bulun Nameservers at https://www.whatsmydns.net/#NS/example.com
- Önceki Hosting veya Alan adı kayıt şirketinizin varsayılan NS’sini kullanıyorsanız, Cloudflare ile değiştirmeniz gerekir.
- Öğrenmek nasıl kullanılır Cloudflare DNS
Parça B: Get a Ubuntu Server 22.04 LTS Server ready

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.

⚡ 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

3. Seçin Server type
Seçiniz Cloud Compute for shared CPU uygun fiyatlarla.

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

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.

Ö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

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.

6. Bir seçim yapın 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.

7. Etkinleştir IPV6, Backup

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

- 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.

- İ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.

- 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.

9. Link Web Firewall rule to Server Instance

- Yönet’e tıklayın ve bir new Firewall Group.
- Allow TCP port 22 for SSH. 80 for HTTP and 443 HTTPS for IPV4 and IPV6 rules both.
- Bunu yaptıktan sonra Firewall group senin Instance.


10. Enter Hostname and label click Deploy Now

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

11. Yeni’ye git Instance page
Copy IP address, username and password. Varsayılan değeriniz port is 22.

12. Disable Password Login
Güvenlik nedeniyle, parolanın devre dışı bırakılması önerilir authentication ve sadece key based authentication.
- Edit the configuration file
nano /etc/ssh/sshd_config
- Find (CTRL + W) and search
PasswordAuthentication
- Change value from yes to no
- To save type, CTRL + O
- Yeniden başlatın SSH service using command
sudo service ssh restart

Bir sonraki seferden itibaren SSH via key only as shown in the video.
For Linux or Mac, use Terminal with command like this
ssh root@192.168.1.1 -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 = "your-cloudflare-email@example.com"
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
- Replace
example.com
with own domain - 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 Type | Name | Value |
---|---|---|
A | @ | IPV4 |
AAAA | @ | IPV6 |
CNAME | www | example.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!