FreeBSD 12.0 Üzerinde Nginx, MySQL ve PHP (FEMP) Yığını Nasıl Yüklenir

Linux'taki bir LEMP yığını ile karşılaştırılabilir bir FEMP yığını, bir FreeBSD sunucusunun dinamik web sitelerini ve web uygulamalarını barındırmasını sağlamak için genellikle birlikte yüklenen bir açık kaynaklı yazılım koleksiyonudur. FEMP, FreeBSD, Nginx, MySQL ve PHP'nin kısaltmasıdır.

Bu kılavuzda, bir FEMP yığının öğelerini pkg, FreeBSD paket yöneticisi olan bir FreeBSD 12.0 Vultr örneğine dağıtacağız .

Gereksinimler

Bu kılavuza başlamadan önce aşağıdakilere ihtiyacınız olacaktır:

  • Bir FreeBSD 12.0 VPS.
  • Kök ayrıcalıklarına sahip bir kullanıcı veya sudoyapılandırma değişiklikleri yapmak için kullanıcı.
  • FreeBSD sistemi ve komut satırı arayüzü ile temel aşinalık önerilir.

Sen başlamadan önce

FreeBSD sürümünü kontrol edin.

uname -ro
# FreeBSD 12.0-RELEASE-p6

FreeBSD sisteminizin güncel olduğundan emin olun.

freebsd-update fetch install
pkg update && pkg upgrade -y

Gerekli paketleri kurun.

pkg install -y sudo vim bash curl

Tercih ettiğiniz kullanıcı adıyla yeni bir kullanıcı hesabı oluşturun. Biz kullanıyoruz johndoe.

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Grup üyelerinin herhangi bir komutu yürütmesine izin vermek için visudokomutu çalıştırın ve %wheel ALL=(ALL) ALLsatırı kaldırın wheel.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Şimdi, yeni oluşturduğunuz kullanıcıya şu yolla geçin su:

su - johndoe

NOT: Kullanıcı adınızla değiştirin johndoe.

Saat dilimini ayarlayın:

sudo tzsetup

Maingin Nginx kurulumu

Nginx'i FreeBSD'nin paket yöneticisini pkg,. Paket yöneticisi, çoğu yazılımı FreeBSD tarafından tutulan bir depodan zahmetsizce kurmanıza izin verir. Nasıl kullanılacağıpkg hakkında daha fazla bilgiyi buradan edinebilirsiniz .

En son ana hat Nginx'i yüklemek için aşağıdaki komutu verin:

sudo pkg install -y nginx-devel

Versiyonu kontrol et:

nginx -v
# nginx version: nginx/1.17.1

Bu komut, bir üretim sunucusunda güvenilir bir şekilde kullanılabilen en son ana hat sürümünü yükler. En son kararlı sürümü yüklemek istiyorsanız, nginxyerine paketi kullanın nginx-devel.

Şimdi, Nginx'i etkinleştirin ve başlatın:

sudo sysrc nginx_enable=yes
sudo service nginx start

Nginx'in başladığını kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz:

sudo service nginx status

Sonuç olarak, aşağıdakine benzer bir şey göreceksiniz:

# Output
nginx is running as pid 17607.

Web tarayıcınızda sunucunuzun genel IP adresini ziyaret ederek Nginx'in kurulduğunu ve sorunsuz çalıştığını doğrulayabilirsiniz. Adresine gidin your_server_IP. Varsayılan "nginx'e hoş geldiniz!" sayfa.

MySQL Kurulumu

Yine, pkgyazılımınızı edinmek ve yüklemek için kullanabilirsiniz .

MySQL'i aşağıdakileri kullanarak kurun pkg:

sudo pkg install -y mysql80-client mysql80-server

Versiyonu kontrol et:

mysql --version
# mysql  Ver 8.0.16 for FreeBSD12.0 on amd64 (Source distribution)

Şimdi MySQL'i etkinleştirin ve başlatın:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

MySQL'in başladığını kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz:

sudo service mysql-server status

Aşağıdakine benzer bir şey görürsünüz:

# Output
mysql is running as pid 19066.

İyi bir uygulama olarak, mysql_secure_installationbazı güvenli olmayan varsayılanları kaldıracak ve veritabanı sisteminize erişimi biraz sınırlandıracak güvenlik komut dosyasını çalıştırmalısınız .

sudo mysql_secure_installation

Bir şifre belirlemeniz ve ardından başka sorular sormanız istenecektir. Güçlü bir parola girin ve ardından kalan sorular ENTERiçin varsayılanları seçmek üzere düğmesine basın .

PHP 7.3 Kurulumu

PHP kurmak için 7.3birlikte pkg, bu komutu çalıştırın:

sudo pkg install -y php73

Versiyonu kontrol et.

php --version
# PHP 7.3.7 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

Yumuşak bağlantı php.ini-productioniçin php.ini.

sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Şimdi, PHP-FPM'yi etkinleştirin ve başlatın:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

PHP-FPM'nin başladığını kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz:

sudo service php-fpm status

Sonuç olarak, benzer bir şey göreceksiniz:

# Output
php_fpm is running as pid 23005.

PHP Modüllerini Kurmak (İsteğe Bağlı)

PHP'nin işlevselliğini artırmak için isteğe bağlı olarak bazı ek modüller yükleyebilirsiniz.

Şu anda PHP modüllerinde derlenmiş olanları görmek için şunu çalıştırabilirsiniz:

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard

# [Zend Modules]

Kullanılabilir PHP modüllerini aramak için şu komutu kullanabilirsiniz:

pkg search ^php73-*

Sonuçlar çoğunlukla yükleyebileceğiniz PHP 7.3 modülleri olacaktır:

# Output
# php73-7.3.7                    PHP Scripting Language
# php73-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php73-aphpunit-1.8             Testing framework for unit tests
# php73-bcmath-7.3.7             The bcmath shared extension for php
# php73-brotli-0.7.0             Brotli extension for PHP
# php73-bsdconv-11.5.0           PHP wrapper for bsdconv
# php73-bz2-7.3.7                The bz2 shared extension for php
# php73-calendar-7.3.7           The calendar shared extension for php
# php73-composer-1.8.6           Dependency Manager for PHP
# php73-ctype-7.3.7              The ctype shared extension for php
# php73-curl-7.3.7               The curl shared extension for php
# . . .

Araştırdıktan sonra, bir paket kurmanız gerektiğine karar verirseniz, bunu pkg installkomutu kullanarak yapabilirsiniz . Çoğu PHP web uygulaması ek modüller gerektirir, bu nedenle bunları nasıl arayacağınızı bilmek iyidir.

Nginx'i PHP modülünü kullanacak şekilde yapılandırma

PHP'yi kullanmadan önce, Nginx ile çalışacak şekilde yapılandırmanız gerekir.

sudo vim /usr/local/etc/nginx/test.confDosyayı aşağıdaki içerikle çalıştırın ve doldurun:

server {

  listen 80;
  server_name SERVER_IP; # Replace with your IP or hostname
  root /usr/local/www/nginx-dist;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

}

Dosyayı kaydedin ve :+ W+ ile çıkınQ

Şimdi test.confana nginx.confdosyaya eklememiz gerekiyor. Nginx için ana konfigürasyon dosyası /usr/local/etc/nginxas altında bulunur nginx.conf.

Vim'de sudo vim /usr/local/etc/nginx/nginx.confana yapılandırma dosyasını açmak için çalıştırın ve http {}bloğa aşağıdaki satırı ekleyin .

include test.conf;

Nginx yapılandırmasını test et:

sudo nginx -t

Nginx'te yapılandırma değişiklikleri yaptığınızdan, uygulanacaklar için hizmeti yeniden yüklemeniz gerekir. Aksi takdirde, Nginx yine de önceki yapılandırma ile çalışır.

sudo service nginx reload

PHP işlemeyi test etme

Sisteminizin PHP için doğru yapılandırıldığını test etmek için çok temel bir PHP betiği oluşturabilirsiniz. Bu komut dosyasını çağıracaksınız info.php. Varsayılan olarak, rootolarak ayarlıdır /usr/local/www/nginx-dist. Oluşturabilir info.phpbu konuma altında dosyayı:

sudo vim /usr/local/www/nginx-dist/info.php

Bu kodu bu dosyaya ekleyin:

<?php phpinfo(); ?>

Şuraya gidin http://your_server_IP/ìnfo.phpve aşağıdaki sayfayı göreceksiniz:

FreeBSD 12.0 Üzerinde Nginx, MySQL ve PHP (FEMP) Yığını Nasıl Yüklenir

Yükleme ve kurulumdan sonra info.php, sunucu hakkındaki bilgileri halka açıklamaktan kaçınmak için dosyayı kaldırmalısınız .

sudo rm /usr/local/www/nginx-dist/info.php

Sonuç

Tebrikler, FreeBSD 12.0 VPS'nize başarıyla bir FEMP yığını yüklediniz. Şimdi ne yapacağınız için birden fazla seçeneğiniz var. Üstüne birçok web sitesi ve web yazılımı yüklemenizi sağlayacak bir platform yüklediniz.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun