GNU/Linux >> Belajar Linux >  >> Debian

Cara Memasang Fork CMS dengan NGINX di Debian 9

Fork adalah CMS open-source yang mudah digunakan menggunakan Komponen Symfony. Ini memiliki antarmuka yang intuitif dan ramah pengguna, aplikasi canggih yang dapat Anda unduh untuk memperluas situs Anda, dan berbagai koleksi tema yang indah. Dalam tutorial ini, kita akan melalui instalasi dan penyiapan Fork CMS pada sistem Debian 9 dengan menggunakan Nginx sebagai server web, MariaDB sebagai mesin database, dan secara opsional Anda dapat mengamankan lapisan transport dengan menggunakan klien Acme.sh dan sertifikat Let's Encrypt otoritas untuk menambahkan dukungan SSL.

Persyaratan

Persyaratan untuk menginstal dan menjalankan Fork CMS adalah:

  • PHP versi 7.1 atau lebih tinggi.
  • Ekstensi PHP berikut harus dipasang dan diaktifkan:cURL , libxml , DOM , SimpleXML , SPL , PDO (dengan driver MySQL) , mb_string , ikon , pustaka grafis GD2 , JSON , PCRE , intl .
  • MySQL 5.0 atau lebih tinggi.
  • NGINX atau Apache dengan .htaccess , mod_rewrite , mod_expires (opsional tetapi disarankan), mod_deflate (opsional) diaktifkan.

Prasyarat

  • Sistem operasi yang menjalankan Debian 9.
  • Pengguna non-root dengan hak istimewa sudo.

Langkah awal

Periksa versi Debian Anda:

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

Siapkan zona waktu:

dpkg-reconfigure tzdata

Perbarui paket sistem operasi Anda (perangkat lunak). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan dan perbaikan keamanan terbaru untuk paket perangkat lunak default sistem operasi Anda:

apt update && apt upgrade -y

Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Debian:

apt install -y curl wget vim git sudo unzip socat bash-completion dirmngr apt-transport-https

Langkah 1 - Instal ekstensi PHP dan PHP

Debian tidak menyediakan versi PHP terbaru dalam repositori perangkat lunak defaultnya. Kami perlu menambahkan komunitas yang mengelola repositori pihak ketiga.

sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update

Instal PHP, serta ekstensi PHP yang diperlukan untuk Fork CMS:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mysql php7.2-curl php7.2-json php7.0-zip php7.2-gd php7.2-xml php7.2-mbstring php7.2-opcache php7.2-intl

Untuk menampilkan PHP yang dikompilasi dalam modul, Anda dapat menjalankan:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Periksa versi PHP:

php --version
# PHP 7.2.19-1+0~20190531112637.22+stretch~1.gbp75765b (cli) (built: May 31 2019 11:26:38) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.19-1+0~20190531112637.22+stretch~1.gbp75765b, Copyright (c) 1999-2018, by Zend Technologies

Layanan PHP-FPM secara otomatis dimulai dan diaktifkan saat reboot pada sistem Debian 9, jadi tidak perlu memulai dan mengaktifkannya secara manual. Kita dapat melanjutkan ke langkah berikutnya, yaitu instalasi dan penyiapan database.

Langkah 2 - Instal MariaDB dan buat database untuk Fork CMS

Instal server database MariaDB:

sudo apt install -y mariadb-server

Periksa versi MariaDB:

mysql --version
# mysql Ver 15.1 Distrib 10.1.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Jalankan mysql_secure installation skrip untuk meningkatkan keamanan MariaDB dan menyetel kata sandi untuk pengguna root MariaDB:

sudo mysql_secure_installation

Jawab setiap pertanyaan:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Hubungkan ke shell MariaDB sebagai pengguna root:

sudo mysql -u root -p
# Enter password

Buat database dan pengguna MariaDB kosong untuk Fork CMS dan ingat kredensialnya:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
mysql> FLUSH PRIVILEGES;

Ganti kata mypassword dengan kata sandi aman pilihan Anda. Keluar dari MariaDB:

mysql> exit

Ganti dbname, username and password with your own names.

Langkah 3 - Instal klien Acme.sh dan dapatkan sertifikat Let's Encrypt (opsional)

Mengamankan situs web Anda dengan HTTPS tidak diperlukan, tetapi ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat SSL dari Let's Encrypt, kami akan menggunakan klien Acme.sh. Acme.sh adalah perangkat lunak shell Unix murni untuk mendapatkan sertifikat TLS dari Let's Encrypt tanpa ketergantungan.

Unduh dan instal acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Periksa versi acme.sh:

acme.sh --version
# v2.8.2

Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/nama host Anda:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Jika Anda ingin sertifikat palsu untuk pengujian, Anda dapat menambahkan --staging flag to the above commands.

Setelah menjalankan perintah di atas, sertifikat Anda dan kunci akan di:

  • Untuk RSA :direktori /home/username/example.com directory.
  • Untuk ECC/ECDSA :/home/username/example.com_ecc directory.

Untuk membuat daftar sertifikat yang dikeluarkan, Anda dapat menjalankan:

acme.sh --list

Buat direktori untuk menyimpan sertifikat Anda. Kami akan menggunakan direktori /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instal/salin sertifikat ke direktori /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.

Setelah mendapatkan sertifikat keluar dari pengguna root dan kembali ke pengguna sudo normal:

exit

Langkah 4 - Instal dan konfigurasikan NGINX

Instal server web NGINX:

sudo apt install -y nginx

Periksa versi NGINX:

sudo nginx -v
# nginx version: nginx/1.10.3

Konfigurasi NGINX untuk Fork CMS. Jalankan sudo vim /etc/nginx/sites-available/fork.conf dan tambahkan konfigurasi berikut:

server {
    listen 80;
    listen 443 ssl;
root /var/www/fork; index index.php index.html; server_name example.com;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key; location / { # Checks whether the requested url exists as a file $uri or directory $uri/ in the root, else redirect to /index.php. try_files $uri $uri/ @redirects; } location @redirects { rewrite ^ /index.php; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_read_timeout 60; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # Don't pollute the logs with common requests location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } # As Fork CMS has the app_root as doc_root, we need to restrict access to a few things for security purposes! location ~* ^/(composer\..*|vendor\/.*|Procfile$|\.git\/.*|src\/Console.*|.*\.gitignore|\.editorconfig|\.travis.yml|autoload\.php|bower\.json|phpunit\.xml\.dist|.*\.md|app\/logs\/.*|app\/config\/.*|src\/Frontend\/Cache\/CompiledTemplates.*|src\/Frontend\/Cache\/Locale\/.*\.php|src\/Frontend\/Cache\/Navigation\/.*\.php|src\/Frontend\/Cache\/Search\/.*|src\/Backend\/Cache\/CompiledTemplates\/.*|src\/Backend\/Cache\/Locale\/.*\.php)$ { deny all; access_log off; log_not_found off; } # Deny access to dot-files. location ~ /\. { deny all; access_log off; log_not_found off; } }

Aktifkan fork.conf  baru konfigurasi dengan menautkan file ke sites-enabled direktori:

sudo ln -s /etc/nginx/sites-available/fork.conf /etc/nginx/sites-enabled

Periksa konfigurasi NGINX untuk kesalahan sintaks:

sudo nginx -t

Muat ulang layanan NGINX:

sudo systemctl reload nginx.service

Langkah 5 - Instal Komposer

Instal Composer, pengelola ketergantungan PHP secara global:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

Periksa versi Komposer:

composer --version
# Composer version 1.8.5 2019-04-09 17:46:47

Langkah 6 - Instal CMS Fork

Buat direktori root dokumen.

sudo mkdir -p /var/www/fork

Ubah kepemilikan /var/www/fork direktori ke pengguna yang sedang Anda masuki, dalam kasus saya, nama pengguna ini adalah johndoe .

sudo chown -R johndoe:johndoe /var/www/fork

Ganti johndoe dengan nama pengguna login Anda pada perintah di atas! Unduh rilis stabil terbaru Fork CMS dari baris perintah.

cd /var/www/fork
composer create-project forkcms/forkcms .

Ubah kepemilikan /var/www/fork direktori ke www-data .

sudo chown -R www-data:www-data /var/www/fork

Edit app/config/parameters.yml.dist file dan atur informasi basis data.

sudo vim /var/www/fork/app/config/parameters_install.yml

Menggunakan browser web pilihan Anda, buka situs Anda dan ikuti penginstal Fork CMS. Setelah mengikuti penginstal, Anda harus mengaktifkan dan menjalankan Fork. Untuk mengakses area admin Fork cukup tambahkan /private ke URL situs Anda.

Langkah 7 - Selesaikan penyiapan CMS Fork

Pastikan server Anda memenuhi semua persyaratan dan lanjutkan:

Pilih bahasa dan klik berikutnya:

Pilih setelan sesuai keinginan dan klik berikutnya:

Masukkan pengaturan database Anda dan klik berikutnya. Pastikan Anda sudah membuat databasenya.

Buat pengguna dan selesaikan instalasi:

Anda akan melihat halaman berikut setelah Anda menyelesaikan semua langkah di atas:

Anda telah berhasil menginstal Fork CMS. Nikmati CMS baru Anda!

Tautan

  • https://www.fork-cms.com/
  • https://github.com/forkcms/forkcms

Debian
  1. Cara Menginstal PHP 7.4 / 7.3 / 7.2 / 7.1 di Debian 10 / Debian 9

  2. Cara Menginstal CMS Plone 4 di Debian Wheezy dengan Nginx

  3. Cara Menginstal PHP 7.3 di Debian 9

  1. Cara Menginstal platform CMS Oktober di Debian 9

  2. Cara Menginstal Phorum dengan Nginx di Debian 9

  3. Cara Menginstal Magento dengan Nginx di Debian 10

  1. Cara Menginstal CMS Craft di Debian 9

  2. Cara Menginstal WonderCMS dengan Nginx di Debian 9

  3. Cara Menginstal Bludit CMS dengan NGINX di Ubuntu 18.04 LTS