Öncelikle belirteyim https://www.muhyal.com/t/ubuntu-20-04-sunucu-masaustu-uzerinde-lemp-yigini-kurulumu/189 alıntıdır. Bu öğretici, Ubuntu 20.04’e LEMP yığınının (Nginx, MariaDB ve PHP 7.4) nasıl kurulacağını gösterecektir. Yazılım yığını demek, birlikte paketlenmiş bir dizi yazılım aracı anlamına gelir. LEMP, hepsi açık kaynak kodlu ve kullanımı ücretsiz olan Linux, Nginx (Engine-X), MariaDB / MySQL ve PHP’yi temsil eder. Dinamik web sitelerine ve web uygulamalarına güç veren en yaygın yazılım yığınıdır. Linux işletim sistemidir, Nginx web sunucusudur, MariaDB / MySQL veritabanı sunucusudur ve PHP dinamik web sayfaları oluşturmaktan sorumlu sunucu tarafı kodlama dilidir. Ön gereksinimler Bu eğiticiyi takip etmek için, yerel bilgisayarınızda veya uzak bir sunucuda çalışan Ubuntu 20.04 işletim sistemine ihtiyacınız vardır. Ubuntu 20.04 LTS kurulu bulut sunucu için DigitalOcean tavsiyemdir. Adım 1: Yazılım Paketlerini Güncelleyin LEMP yığınını yüklemeden önce, Ubuntu 20.04 işletim sisteminizde aşağıdaki komutları çalıştırarak depo ve yazılım paketlerini güncelleyin: sudo apt update sudo apt upgrade -y Adım 2: Nginx web sunucusunu yükleyin Nginx yüksek performanslı bir web sunucusu ve kullanımı çok yaygındır. Aynı zamanda bir ters proxy ve ön belleğe alma sunucusu olarak kullanılabilir. Nginx Web Server’ı yüklemek için aşağıdaki komutu çalıştırın: sudo apt install nginx -y Kurulduktan sonra, Nginx’i aşağıdaki komutu çalıştırarak önyükleme de otomatik olarak başlatmayı etkinleştirebilirsiniz: sudo systemctl enable nginx Sonra bu komutla Nginx’i başlatın: sudo systemctl start nginx Şimdi durumunu kontrol edin: sudo systemctl status nginx Çıktı: ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-24 07:57:51 CEST; 7min ago Docs: man:nginx(8) Main PID: 6507 (nginx) Tasks: 4 (limit: 4566) Memory: 5.2M CGroup: /system.slice/nginx.service ├─6507 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─6508 nginx: worker process ├─6509 nginx: worker process └─6510 nginx: worker process Apr 24 07:57:51 sizinalanadiniz systemd[1]: Starting A high performance web server and a reverse proxy server... Apr 24 07:57:51 sizinalanadiniz systemd[1]: Started A high performance web server and a reverse proxy server. Nginx versiyonunu kontrol edin: nginx -v Çıktı: nginx version: nginx/1.17.10 (Ubuntu) Şimdi Ubuntu 20.04 sunucunuzun genel IP adresini tarayıcı adres çubuğuna yazın. Nginx web sunucusunun düzgün çalıştığı anlamına gelen Welcome to Nginx web sayfasını görmelisiniz. Yerel Ubuntu 20.04 bilgisayarınıza LEMP yüklüyorsanız, tarayıcı adres çubuğuna 127.0.0.1 yazın veya localhost yazın. Welcome to Nginx - Ubuntu 20.042559×619 21.4 KB Bağlantı reddedilirse veya tamamlanamazsa, TCP bağlantı noktası 80’e gelen istekleri engelleyen bir güvenlik duvarı olabilir. iptables güvenlik duvarı kullanıyorsanız, TCP bağlantı noktası 80’i açmak için aşağıdaki komutu çalıştırmanız gerekir. sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT UFW güvenlik duvarı kullanıyorsanız, TCP bağlantı noktası 80’i açmak için bu komutu çalıştırın. sudo ufw allow http Son olarak, web dizininin sahibini www-data (nginx kullanıcısı) yapmamız gerekiyor. Varsayılan olarak, kök kullanıcıya aittir. sudo chown www-data:www-data /usr/share/nginx/html -R Adım 3: MariaDB veritabanı sunucusunu yükleyin MariaDB, MySQL için bir drop-in yerine geçer. Yani Oracle üzerindeki ticari kaygılar nedeniyle eski MySQL geliştiricileri tarafından geliştirilmiştir. MariaDB’i Ubuntu 20.04’e yüklemek için aşağıdaki komutu girin: sudo apt install mariadb-server mariadb-client -y Yüklendikten sonra, MariaDB sunucusu otomatik olarakbaşlatılacaktır. Durumunu kontrol etmek için systemctl komutunu kullanın: systemctl status mariadb Çıktı: ● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-24 08:12:49 CEST; 14s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 7540 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 4566) Memory: 66.8M CGroup: /system.slice/mariadb.service └─7540 /usr/sbin/mysqld Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: Processing databases Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: information_schema Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: mysql Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: performance_schema Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: Phase 6/7: Checking and upgrading tables Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: Processing databases Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: information_schema Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: performance_schema Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: Phase 7/7: Running 'FLUSH PRIVILEGES' Apr 24 08:12:49 sizinalanadiniz /etc/mysql/debian-start[7579]: OK Çalışmıyorsa, şu komutla başlatın: sudo systemctl start mariadb MariaDB’in önyükleme sırasında otomatik olarak başlamasını sağlamak için: sudo systemctl enable mariadb Şimdi yükleme sonrası güvenlik komut dosyasını çalıştırın: sudo mysql_secure_installation MariaDB kök şifresini girmenizi istediğinde, kök şifre henüz ayarlanmadığından ENTER tuşuna basın. Ardından, MariaDB sunucusunun kök şifresini ayarlamak için Y yanıtını girin. Ardından, anonim kullanıcıyı kaldıracak, uzak kök girişini devre dışı bırakacak ve test veritabanını kaldıracak kalan tüm soruları cevaplamak için Y ve ENTER tuşuna basabilirsiniz. Bu adımlar, MariaDB veritabanı güvenliği için temel bir gerekliliktir. (Y’nin büyük harfle yazıldığına dikkat edin, bu da varsayılan cevap olduğu anlamına gelir.) Ubuntu 20.04 sudo mysql_secure_installation808×944 58 KB Varsayılan olarak, Ubuntu’daki MariaDB paketi, unix_socket ile kullanıcı girişini doğrular. Bu, temelde MariaDB konsoluna giriş yapmak için işletim sisteminin kullanıcı adını ve şifresini kullanabileceğiniz anlamına gelir. Böylece MariaDB kök şifresi vermeden giriş yapmak için aşağıdaki komutu çalıştırabilirsiniz. sudo mariadb -u root Çıkmak için: exit; MariaDB sunucu sürüm bilgilerini denetleyin: mariadb --version mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Gördüğünüz gibi, MariaDB 10.3.22 sürümünü kurduk. Adım 4: PHP 7.4’ü yükleyin PHP 7.4, Ubuntu 20.04 deposuna dahil edilmiştir ve PHP 7.3 sürümüne göre küçük bir performans iyileştirmesine sahiptir. PHP 7.4 ve bazı gerekli uzantılarını yüklemek için aşağıdaki komutu girin. sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl -y PHP uzantıları genellikle WordPress gibi içerik yönetim sistemleri (CMS) için gereklidir. Bu PHP uzantılarını yüklemek, CMS’NİZİN sorunsuz çalışmasını sağlar. Şimdi php7.4-fpm’yi başlatın: sudo systemctl start php7.4-fpm Açılışta otomatik başlatılmasını sağlayın: sudo systemctl enable php7.4-fpm Durumunu kontrol edin: systemctl status php7.4-fpm Örnek çıktı: ● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-24 08:21:45 CEST; 50s ago Docs: man:php-fpm7.4(8) Main PID: 19810 (php-fpm7.4) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 4566) Memory: 9.5M CGroup: /system.slice/php7.4-fpm.service ├─19810 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf) ├─19821 php-fpm: pool www └─19822 php-fpm: pool www Apr 24 08:21:45 sizinalanadiniz systemd[1]: Starting The PHP 7.4 FastCGI Process Manager... Apr 24 08:21:45 sizinalanadiniz systemd[1]: Started The PHP 7.4 FastCGI Process Manager. Adım 5: Nginx sunucu blok dosyası oluşturun Nginx sunucu bloğu, Apache’deki sanal bir ana bilgisayar gibidir. PHP kodunu çalıştırmak için yetersiz kalacağı için varsayılan sunucu bloğunu kullanmayacağız ve değiştirirsek, sorunlar çıkacaktır. Bu nedenle, aşağıdaki komutu çalıştırarak dizin sites-enabled içindeki sembolik bağlantıyı default kaldırın. (/etc/nginx/sites-available/default) sudo rm /etc/nginx/sites-enabled/default Daha sonra yeni bir blok dosyası açın: sudo nano /etc/nginx/conf.d/default.conf Boş dosya içerisine aşağıdakileri kopyalayın: server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } } Kaydedin ve dosyayı kapatın. Sonra Nginx yapılandırmasını test edin: sudo nginx -t Şu çıktıyı vermelidir: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful Test başarılı olursa, Nginx’i yeniden başlatın: sudo systemctl reload nginx Adım 6: PHP 7.4’ü test edin PHP-FPM’yi Nginx web sunucusu ile test etmek için site ana dizinide bir bilgi.php dosyası oluşturmamız gerekiyor: sudo nano /usr/share/nginx/html/bilgi.php Aşağıdaki PHP kodunu dosyaya yapıştırın. Kaydedin ve dosyayı kapatın. Şimdi tarayıcı adres çubuğuna http://sunucuipadresi/bilgi.php girin. Bu öğreticiyi yerel bilgisayarınızda izliyorsanız 127.0.0.1/bilgi.php yazmalısınız. Şu an sunucunuzun ve PHP’nizin bilgilerini görüyor olmalısınız. Bu sayfa, PHP betiklerinin Nginx web sunucusu ile düzgün çalışabileceği anlamına gelir. ubuntu 20.04 nginx php 7.42546×1371 112 KB Tebrikler! Ubuntu 20.04’te Nginx, MariaDB ve PHP 7.4’ü başarıyla kurdunuz. Sunucunuzun güvenliği için, bilgi.php dosyasını şimdi silmelisiniz. sudo rm /usr/share/nginx/html/bilgi.php İşte bu! Umarım bu öğretici Ubuntu 20.04 LTS üzerinde LEMP yüklemenize yardımcı olmuştur. Her zaman olduğu gibi, bu yazıyı yararlı bulduysanız beğenebilir, aşağıdan fikirlerinizi bizimle paylaşabilirsiniz