GNU/Linux >> Belajar Linux >  >> Rocky Linux

Cara Install NEOS CMS dengan Nginx dan Lets Encrypt SSL di Rocky Linux 8

Neos adalah sistem manajemen konten (CMS) gratis dan sumber terbuka yang memungkinkan Anda membangun situs web yang kompleks dengan mudah tanpa perlu membuat kode. Anda dapat membuat blog, situs web berita, halaman portofolio, atau situs web perusahaan yang menggunakannya. Ini menawarkan serangkaian fitur yang kaya seperti pengeditan sebaris, mendukung banyak situs web dalam satu instalasi, alat SEO bawaan, URL yang dapat dibaca manusia, pengelola plugin, pratinjau perangkat, dan mendukung banyak templat. Ini mendukung teknologi modern seperti REST API, JSON, GraphQL, dan oEmbed.

Dalam tutorial ini, Anda akan mempelajari cara menginstal Neos CMS di server yang menjalankan OS Rocky Linux 8.

Prasyarat

  • Server yang menjalankan Rocky Linux 8.

  • Pengguna sudo non-root.

  • Pastikan semuanya diperbarui.

    $ sudo dnf update
  • Instal paket utilitas dasar. Beberapa di antaranya mungkin sudah terpasang.

    $ sudo dnf install wget curl nano unzip yum-utils -y

Langkah 1 - Konfigurasi Firewall

Langkah pertama adalah mengkonfigurasi firewall. Rocky Linux menggunakan Firewalld Firewall. Periksa status firewall.

$ sudo firewall-cmd --staterunning

Firewall bekerja dengan zona yang berbeda, dan zona publik adalah zona default yang akan kita gunakan. Buat daftar semua layanan dan port yang aktif di firewall.

$ sudo firewall-cmd --permanent --list-services

Ini akan menunjukkan output berikut.

kokpit dhcpv6-client ssh

Izinkan port HTTP dan HTTPS.

$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https

Periksa kembali status firewall.

$ sudo firewall-cmd --permanent --list-services

Anda akan melihat keluaran serupa.

kokpit dhcpv6-klien http https ssh

Muat ulang firewall untuk mengaktifkan perubahan.

$ sudo firewall-cmd --reload

Langkah 2 - Instal Nginx

Rocky Linux dikirimkan dengan versi Nginx yang lebih lama. Anda perlu mengunduh repositori Nginx resmi untuk menginstal versi terbaru.

Buat dan buka /etc/yum.repos.d/nginx.repo file untuk membuat repositori Nginx resmi.

$ sudo nano /etc/yum.repos.d/nginx.repo

Tempelkan kode berikut di dalamnya.

[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing. keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/ nginx_signing.keymodule_hotfixes=true

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Instal Nginx.

$ sudo dnf install nginx

Verifikasi penginstalan.

$ nginx -vnginx versi:nginx/1.20.2

Aktifkan dan mulai layanan Nginx.

$ sudo systemctl aktifkan nginx --now

Langkah 3 - Instal PHP dan ekstensi

Untuk tutorial kita, kita perlu menginstal versi terbaru PHP menggunakan repositori Remi. Langkah pertama adalah mengambil repositori Epel.

$ sudo dnf install epel-release

Selanjutnya, instal repositori Remi.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Periksa aliran PHP yang tersedia.

$ dnf module list php -yLast metadata cek kedaluwarsa:0:00:12 yang lalu pada Jum 03 Des 2021 09:39:32 UTC.Rocky Linux 8 - AppStreamName Stream Profiles Summaryphp 7.2 [d] common [d], devel, minimal PHP scripting languagephp 7.3 umum [d], devel, minimal PHP scripting languagephp 7.4 umum [d], devel, minimal PHP scripting languageRemi's Modular repository for Enterprise Linux 8 - x86_64Name Stream Profiles Summaryphp remi-7.2 common [d], devel , bahasa skrip PHP minimalphp remi-7.3 umum [d], devel, bahasa skrip PHP minimalphp remi-7.4 umum [d], devel, skrip PHP minimal languagephp remi-8.0 umum [d], devel, bahasa skrip PHP minimalphp remi-8.1 umum [d], devel, bahasa skrip PHP minimalPetunjuk:[d]efault, [e]nabled, [x]disabled, [i]nstalled 

Versi defaultnya adalah 7.2. Aktifkan repositori PHP 8.0 Remi.

$ modul sudo dnf reset php$ modul sudo dnf mengaktifkan php:remi-8.0

Selanjutnya, instal PHP dan ekstensi yang diperlukan oleh Neos bersama dengan ImageMagick.

$ sudo dnf install php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-cli php-imagick ImageMagick php-intl

Verifikasi penginstalan.

$ php --versionPHP 8.0.14 (cli) (dibuat:16 Des 2021 03:01:07) ( NTS gcc x86_64 )Hak Cipta (c) PHP GroupZend Engine v4.0.14, Hak Cipta (c) Zend Technologies 

Langkah 4 - Instal dan Konfigurasi Server MySQL

Kami akan menggunakan database MySQL untuk menyimpan data. Repositori Appstream Rocky Linux dikirimkan dengan MySQL versi terbaru.

Instal MySQL.

$ sudo dnf install mysql-server

Aktifkan dan mulai layanan MySQL.

$ sudo systemctl aktifkan mysqld --now

Instalasi MySQL aman.

$ sudo mysql_secure_installation

Untuk langkah pertama, Anda akan ditanya apakah Anda ingin mengatur Plugin Validasi Kata Sandi, yang dapat Anda gunakan untuk menguji kekuatan kata sandi MySQL Anda. Pilih Y untuk melanjutkan. Anda akan diminta untuk memilih tingkat validasi kata sandi di langkah berikutnya. Pilih 2 yang merupakan level terkuat dan akan mengharuskan sandi Anda setidaknya terdiri dari delapan karakter dan menyertakan campuran huruf besar, huruf kecil, angka, dan karakter khusus.

Mengamankan penyebaran server MySQL. Menghubungkan ke MySQL menggunakan kata sandi kosong. KOMPONEN SANDI VALIDASI dapat digunakan untuk menguji kata sandi dan meningkatkan keamanan. Ini memeriksa kekuatan kata sandi dan memungkinkan pengguna untuk mengatur hanya kata sandi yang cukup aman. Apakah Anda ingin menyiapkan komponen VALIDATE PASSWORD? Tekan y|Y untuk Ya, tombol lain untuk Tidak:YAda tiga tingkat kebijakan validasi kata sandi:RENDAH Panjang>=8MEDIUM Panjang>=8, numerik, huruf besar campuran, dan karakter khususSTRONG Panjang>=8, numerik, huruf besar campuran, karakter khusus, dan file kamusMasukkan 0 =RENDAH, 1 =SEDANG dan 2 =KUAT:2

Anda akan diminta untuk memilih kata sandi root pada langkah berikutnya. Pilih kata sandi yang kuat yang memenuhi persyaratan plugin validasi kata sandi. Pada langkah selanjutnya, Anda akan ditanya apakah akan melanjutkan dengan kata sandi yang dipilih. Tekan y untuk melanjutkan.

Silakan setel kata sandi untuk root di sini.Kata sandi baru:Masukkan kembali kata sandi baru:Perkiraan kekuatan kata sandi:100Apakah Anda ingin melanjutkan dengan kata sandi yang diberikan?(Tekan y|Y untuk Ya, tombol lain untuk Tidak) :Y

Tekan Y lalu ENTER kunci untuk semua perintah berikut untuk menghapus pengguna anonim dan database pengujian, menonaktifkan login root dan memuat aturan yang baru ditetapkan.

...Hapus pengguna anonim? (Tekan y|Y untuk Ya, tombol lain untuk Tidak):YSuccess....Larang login root dari jarak jauh? (Tekan y|Y untuk Ya, tombol lain untuk Tidak) :YSuccess....Hapus database pengujian dan akses ke sana? (Tekan y|Y untuk Ya, tombol lain untuk Tidak):Y - Menjatuhkan database uji...Berhasil. - Menghapus hak istimewa pada basis data pengujian...Berhasil.Memuat ulang tabel hak istimewa akan memastikan bahwa semua perubahan yang dibuat sejauh ini akan segera berlaku....Muat ulang tabel hak istimewa sekarang? (Tekan y|Y untuk Ya, tombol lain untuk Tidak) :YSuccess.All done!

Masukkan shell MySQL. Masukkan kata sandi root Anda untuk melanjutkan.

$ mysql -u root -p

Buat neos pengguna. Pastikan sandi memenuhi persyaratan yang ditetapkan sebelumnya.

mysql> BUAT PENGGUNA 'neos'@'localhost' DIIDENTIFIKASI DENGAN 'Your_password2';

Buat neosdb basis data.

mysql> BUAT DATABASE neosdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Berikan hak istimewa pengguna pada neosdb basis data.

mysql> BERIKAN SEMUA HAK ISTIMEWA DI neosdb.* KEPADA 'neos'@'localhost';

Keluar dari Shell.

mysql> keluar

Langkah 5 - Instal Komposer

Composer adalah alat manajemen ketergantungan untuk PHP dan diperlukan oleh Neos CMS untuk bekerja.

Unduh skrip penginstal Komposer.

$ curl -sS https://getcomposer.org/installer -o composer-setup.php

Jalankan perintah berikut untuk memverifikasi penginstal.

$ HASH=`curl -sS https://composer.github.io/installer.sig`$ echo $HASH$ php -r "if (hash_file('SHA384', 'composer-setup.php') ==='$HASH') { echo 'Pemasang terverifikasi'; } else { echo 'Pemasang korup'; unlink('composer-setup.php'); } echo PHP_EOL;"

Perintah di atas mengambil nilai hash dari penginstal dan mencocokkannya dengan skrip yang Anda unduh. Anda akan melihat output berikut jika penginstal aman untuk dijalankan.

Pemasang diverifikasi

Instal Komposer.

$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Verifikasi instalasi dengan memeriksa versinya.

$ composer --versionComposer versi 2.2.3 2021-12-31 12:18:53

Langkah 6 - Instal Neos CMS

Buat direktori root untuk menginstal Neos.

$ sudo mkdir -p /var/www/neos

Ubah kepemilikan direktori root menjadi pengguna yang saat ini masuk.

$ sudo chown -R $USER:$USER /var/www/neos

Beralih ke direktori root.

$ cd /var/www/neos

Gunakan Composer untuk menginstal Neos dan dependensinya.

$ composer create-project --no-dev neos/neos-base-distribution .

Jangan lupa titik di akhir perintah yang memberitahu Komposer untuk menginstalnya di direktori saat ini. Anda mungkin mendapatkan peringatan berikut saat instalasi. Masukkan y untuk melanjutkan. Instalasi tidak akan terhambat karenanya.

 - Menginstal neos/composer-plugin (2.1.3):Mengekstrak archiveneos/composer-plugin berisi plugin Composer yang saat ini tidak ada dalam konfigurasi allow-plugins Anda. Lihat https://getcomposer.org/allow-pluginsApakah Anda mempercayai "neos/composer-plugin" untuk mengeksekusi kode dan ingin mengaktifkannya sekarang? (menulis "allow-plugins" ke composer.json) [y,n,d,?] y - Menginstal composer/package-versions-deprecated (1.11.99.4):Mengekstrak archivecomposer/package-versions-deprecated berisi plugin Composer yang saat ini tidak ada dalam konfigurasi allow-plugins Anda. Lihat https://getcomposer.org/allow-pluginsApakah Anda mempercayai "composer/package-versions-deprecated" untuk mengeksekusi kode dan ingin mengaktifkannya sekarang? (menulis "allow-plugins" ke composer.json) [y,n,d,?] y

Ubah kepemilikan direktori root menjadi nginx .

$ sudo ./flow core:setfilepermissions $USER nginx nginx

Tambahkan pengguna yang saat ini masuk ke nginx grup.

$ sudo usermod -a -G nginx $USER

Itu saja untuk saat ini. Kami akan melakukan konfigurasi yang tersisa nanti.

Langkah 7 - Konfigurasi Izin SELinux

Gunakan chcon SELinux perintah untuk mengubah konteks keamanan file untuk konten web yang disajikan dari /var/www/neos direktori.

$ sudo chcon -t httpd_sys_content_t /var/www/neos -R$ sudo chcon -t httpd_sys_rw_content_t /var/www/neos -R

Konfigurasikan SELinux untuk mengizinkan koneksi jaringan untuk Neos CMS.

$ sudo setsebool -P httpd_can_network_connect on

Langkah 8 - Instal dan Konfigurasi SSL

Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu mengunduh alat Certbot. Kami membutuhkan repositori Epel untuk menginstal Certbot, tetapi kami dapat melewati langkah ini karena kami telah menginstalnya sebelumnya di tutorial.

Instal Certbot.

$ sudo dnf install certbot

Hentikan server Nginx karena mengganggu alat Certbot.

$ sudo systemctl stop nginx

Buat sertifikat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d neos.example.com

Perintah di atas akan mengunduh sertifikat ke /etc/letsencrypt/live/neos.example.com direktori di server Anda.

Buat grup Diffie-Hellman sertifikat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Buat direktori root web tantangan untuk pembaruan otomatis Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Buat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap hari untuk memeriksa sertifikat dan memperbarui jika diperlukan. Untuk itu, buat dulu file /etc/cron.daily/certbot-renew dan buka untuk diedit.

$ sudo nano /etc/cron.daily/certbot-renew

Tempelkan kode berikut.

#!/bin/shcertbot perbarui --cert-name neos.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Ubah izin pada file tugas agar dapat dieksekusi.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Langkah 9 - Konfigurasi Nginx dan PHP

Konfigurasi PHP-FPM

Buka file /etc/php-fpm.d/www.conf .

$ sudo nano /etc/php-fpm.d/www.conf

Kita perlu mengatur pengguna/grup proses PHP Unix ke nginx . Temukan user=www-data dan group=www-data baris dalam file dan ubah menjadi nginx .

...; Pengguna/grup proses Unix; Catatan:Pengguna wajib. Jika grup tidak disetel, grup pengguna default; akan digunakan.; RPM:pengguna apache yang dipilih untuk menyediakan akses ke direktori yang sama dengan httpduser =nginx; RPM:Biarkan grup tetap diizinkan untuk menulis di log dir.group =nginx...

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Mulai layanan PHP.

$ sudo systemctl start php-fpm

Konfigurasi Nginx

Buat dan buka file /etc/nginx/conf.d/neos.conf untuk diedit.

$ sudo nano /etc/nginx/conf.d/neos.conf

Tempelkan kode berikut di dalamnya.

server { dengarkan 443 ssl http2; dengarkan [::]:443 ssl http2; nama_server neos.contoh.com; access_log /var/log/nginx/neos.access.log; error_log /var/log/nginx/neos.error.log; # SSL ssl_certificate /etc/letsencrypt/live/neos.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/neos.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/neos.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache dibagikan:MozSSL:10m; ssl_session_tickets mati; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers aktif; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDALY -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapel aktif; ssl_stapling_verifikasi aktif; ssl_dhparam /etc/ssl/certs/dhparam.pem; penyelesai 8.8.8.8; root /var/www/neos/Web/; indeks indeks.php; lokasi / { try_files $uri $uri/ /index.php?$args; } # Kirim Skrip PHP Ke lokasi Server FastCGI ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/run/php-fpm/www.sock; # Tergantung Pada Versi PHP fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param FLOW_REWRITEURLS 1; fastcgi_param FLOW_CONTEXT Produksi; fastcgi_param X-Diteruskan-Untuk $proxy_add_x_forwarded_for; fastcgi_param X-Forwarded-Port $proxy_port; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_NAME $http_host; fastcgi_read_timeout 300; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; termasuk fastcgi_params; try_files $uri =404; } lokasi ~ /_Resources/ { access_log off; log_not_ditemukan mati; kedaluwarsa maks; if (!-f $request_filename) { rewrite "/_Resources/Persistent/([a-z0-9]{40})/.+\.(.+)" /_Resources/Persistent/$1.$2 break; tulis ulang "/_Resources/Persistent(?>/[a-z0-9]{5}){8}/([a-f0-9]{40})/.+\.(.+)" /_Resources/ Persistent/$1.$2 istirahat; } }}# menegakkan HTTPSserver { mendengarkan 80; dengarkan [::]:80; nama_server neos.contoh.com; kembalikan 301 https://$host$request_uri;}

Perhatikan direktori root yang akan digunakan dalam konfigurasi Nginx adalah /var/www/neos/Web/ dan bukan /var/www/neos/ .

Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta setelah selesai.

Buka file /etc/nginx/nginx.conf untuk diedit.

$ sudo nano /etc/nginx/nginx.conf

Tambahkan baris berikut sebelum baris include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size 64;

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Verifikasi sintaks file konfigurasi Nginx.

$ sudo nginx -tnginx:file konfigurasi /etc/nginx/nginx.conf sintaksnya oknginx:file konfigurasi /etc/nginx/nginx.conf tes berhasil

Mulai ulang layanan Nginx untuk mengaktifkan konfigurasi baru.

$ sudo systemctl restart nginx

Langkah 10 - Selesaikan Instalasi Neos

Luncurkan URL https://neos.example.com di browser Anda, dan Anda akan mendapatkan layar penyiapan berikut.

Klik Buka penyiapan tombol untuk melanjutkan. Anda akan diarahkan ke layar login.

Jalankan perintah berikut di terminal untuk mendapatkan kata sandi Anda.

$ cat /var/www/neos/Data/SetupPassword.txtKata sandi pengaturan adalah:SCPUYmmQSetelah Anda berhasil masuk, file ini secara otomatis dihapus untuk alasan keamanan.Pastikan untuk menyimpan kata sandi pengaturan untuk digunakan nanti.

Masukkan kata sandi dan klik Masuk untuk melanjutkan. Neos akan memeriksa perpustakaan gambar PHP.

Klik Berikutnya untuk melanjutkan. Anda akan diminta untuk memasukkan kredensial database Anda. Masukkan kredensial yang dibuat di langkah 4. Setelah kredensial diverifikasi, Anda akan mendapatkan Koneksi terjalin pesan di layar.

Klik Berikutnya untuk melanjutkan . Anda akan diminta untuk mengatur akun administrator. Isi detail Anda.

Klik Berikutnya untuk melanjutkan. Selanjutnya, Anda akan diminta untuk memilih apakah Anda ingin mengimpor situs Demo atau membuatnya dari awal. Jika Anda ingin membuat situs baru dari awal, Anda harus mengisi kedua kotak tersebut. Misalnya, jika Anda membuat situs berita, isi kotak seperti yang diberikan. Ingat, jika Anda memulai dari awal, tidak akan ada CSS di situs, dan Anda harus melakukannya sendiri.

Nama Paket:Neos.HowtoForgeNewsNama Situs:HowtoForgeNews

Untuk tutorial kami, kami akan tetap menggunakan situs Demo. Untuk mengimpor situs demo, kosongkan semua bidang.

Klik Berikutnya untuk melanjutkan. Anda akan mendapatkan layar penyelesaian penyiapan.

Klik Buka backend untuk membuka layar login untuk panel kontrol. Masukkan nama pengguna dan sandi Anda, lalu klik Masuk untuk membuka panel administrasi.

Karena kami mengimpor situs demo, langkah pertama adalah menghapus Coba saya halaman, memungkinkan siapa saja untuk mengatur akun backend dengan hak untuk mengedit situs web.

Beralih ke Coba saya halaman dari bilah sisi kiri dan klik tombol Hapus tombol disorot pada tangkapan layar di bawah.

Klik panah berwarna oranye di sebelah kanan Diterbitkan - Tayang untuk membuka menu tarik-turun dan klik Publikasikan semua untuk menyimpan perubahan.

Instalasi Neos CMS Anda siap digunakan.

Kesimpulan

Dalam tutorial ini, Anda menginstal dan mengkonfigurasi Neos CMS menggunakan tumpukan LEMP di server berbasis Rocky Linux 8. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Rocky Linux
  1. Cara Memasang Let's Encrypt SSL untuk NGINX di Rocky Linux 8

  2. Cara Menginstal Nextcloud dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04 LTS

  3. Bagaimana Cara Install WordPress dengan LEMP (Nginx, MariaDB, dan PHP) di Rocky Linux 8 ?

  1. Cara Menginstal Shopware dengan NGINX dan Mengenkripsi di CentOS 7

  2. Cara Menginstal Shopware dengan NGINX dan Lets Encrypt di Fedora 30

  3. Cara Menginstal WonderCMS dengan Nginx dan Mengenkripsi SSL di CentOS 7

  1. Instal Automad CMS dengan Nginx dan Lets Encrypt SSL di Ubuntu 18.04

  2. Cara Instal Pico CMS dengan Nginx dan Lets Encrypt di CentOS 7

  3. Instal Automad CMS dengan Nginx dan Mari Enkripsi SSL di Debian 10