GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal PyroCMS berbasis Laravel dengan Nginx di CentOS 7

PyroCMS adalah CMS dan platform pengembangan modular yang kuat yang dibuat dengan Laravel 5, yang memungkinkan Anda membangun situs web dan aplikasi Laravel yang lebih baik dengan lebih cepat.

Dalam tutorial ini, kami akan memandu Anda melalui proses penginstalan PyroCMS pada sistem operasi CentOS 7 dengan menggunakan NGINX sebagai server web, MariaDB sebagai server database, dan secara opsional Anda dapat mengamankan lapisan transport dengan menggunakan klien acme.sh dan Let's Encrypt otoritas sertifikat untuk menambahkan dukungan SSL.

Persyaratan

Untuk menginstal PyroCMS, pastikan sistem Anda memenuhi persyaratan berikut:

  • Setidaknya 1GB RAM atau Swap dikonfigurasi
  • PHP versi 7.0 atau yang lebih baru dengan ekstensi PDO, cURL, SQLite, OpenSSL, Mbstring, Fileinfo, Tokenizer, GD PHP.
  • MariaDB
  • NGINX

Prasyarat

  • Sistem yang menjalankan sistem CentOS 7.
  • Pengguna non-root dengan hak istimewa sudo.

Langkah awal

Periksa versi CentOS Anda:

cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)

Siapkan zona waktu:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

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:

sudo yum update -y

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

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

Langkah 1 - Instal PHP dan ekstensi PHP yang diperlukan

Siapkan repo Webtatic YUM:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Unduh dan instal PHP dan ekstensi PHP yang diperlukan:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-mysqlnd php72w-curl php72w-sqlite3 php72w-mbstring php72w-gd php72w-xml

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 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies

Mulai dan aktifkan layanan PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Langkah 2 - Instal MariaDB dan buat database untuk PyroCMS

Instal MariaDB dari repositori resmi MariaDB. Buat repositori terlebih dahulu:

sudo vim /etc/yum.repos.d/MariaDB.repo

Salin dan tempel fragmen berikut ke file /etc/yum.repos.d/MariaDB.repo:

[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Instal MariaDB:

sudo yum install -y MariaDB-server MariaDB-client

Periksa versi MariaDB:

mysql --version
# mysql Ver 15.1 Distrib 10.2.13-MariaDB, for Linux (x86_64) using readline 5.1

Memulai dan mengaktifkan layanan MariaDB:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

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

sudo mysql_secure_installation

Jawab setiap pertanyaan:

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
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

Masuk ke MariaDB sebagai pengguna root:

sudo mysql -u root -p
# Enter password

Buat database dan pengguna MariaDB yang akan Anda gunakan untuk instalasi PyroCMS, dan ingat kredensialnya:

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

Ganti dbname dan nama pengguna dengan nama yang sesuai untuk pengaturan Anda. Ganti sandi dengan kata sandi yang kuat.

Keluar dari shell MariaDB:

quit

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

Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/hostname 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 tandai ke perintah di atas.

Untuk membuat daftar sertifikat yang dikeluarkan, Anda dapat menjalankan:

acme.sh --list

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

mkdir -p /etc/letsencrypt/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"

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

  • Untuk RSA : /etc/letsencrypt/example.com direktori.
  • Untuk ECC/ECDSA : /etc/letsencrypt/example.com_ecc direktori.

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 NGINX dan konfigurasikan NGINX untuk PyroCMS

Instal server web NGINX:

sudo yum install -y nginx

Periksa versi NGINX:

nginx -v

Mulai dan aktifkan layanan Nginx:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Konfigurasikan NGINX untuk PyroCMS dengan menjalankan:

sudo vim /etc/nginx/conf.d/pyro.conf

Dan isi file dengan konfigurasi berikut:

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

ssl_certificate /etc/letsencrypt/status.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com/status.example.com.key;
ssl_certificate /etc/letsencrypt/status.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com_ecc/status.example.com.key;

location / {
try_files $uri $uri/ /index.php?$args;
}

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

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') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { 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.9.0 2019-08-02 10:52:10

Langkah 6 - Instal PyroCMS

Buat direktori root dokumen tempat PyroCMS seharusnya berada:

sudo mkdir -p /var/www/pyro

Ubah kepemilikan /var/www/pyro direktori ke your_username yang seharusnya Anda buat sebelumnya dan Anda harus masuk sebagai pengguna ini.

sudo chown -R your_username:your_username /var/www/pyro

CATATAN: Jangan lupa ganti nama_penggunaAnda dengan nama yang telah Anda pilih.

Arahkan ke root dokumen:

cd /var/www/pyro

Download rilis stabil terbaru PyroCMS melalui composer :

composer create-project pyrocms/pyrocms .

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

sudo chown -R nginx:nginx /var/www/pyro

Jalankan sudo vim /etc/php-fpm.d/www.conf dan atur pengguna dan grup ke nginx . Awalnya, mereka akan diatur ke apache. Jalankan:

sudo vim /etc/php-fpm.d/www.conf

Dan atur pengguna dan grup ke nginx, seperti di bawah ini:

user = nginx
group = nginx

Dan terakhir, mulai ulang layanan PHP-FPM agar perubahan ini diterapkan:

sudo systemctl restart php-fpm.service

Langkah 7 - Selesaikan penyiapan PyroCMS

Akses situs Anda di browser web melalui nama domain atau alamat IP dan ikuti wizard penginstalan web PyroCMS.

Setelah Anda mengisi semua informasi yang diperlukan, penginstalan PyroCMS Anda selesai.

Tautan

  • https://pyrocms.com/
  • https://github.com/pyrocms/pyrocms

Cent OS
  1. Cara Menginstal Nginx di CentOS 7

  2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

  3. Cara Menginstal Phorum dengan Nginx di CentOS 7

  1. Cara Menginstal ownCloud 9.1 dengan Nginx dan MariaDB di CentOS 7

  2. Cara Instal WordPress dengan HHVM dan Nginx di CentOS 7

  3. Cara Menginstal SuiteCRM dengan Nginx di CentOS 7

  1. Cara Menginstal MediaWiki dengan Nginx di CentOS 7

  2. Cara Menginstal Laravel 5.x dengan Nginx dan PHP-FPM 7.1 di CentOS 7

  3. Cara Menginstal OwnCloud 8 dengan Nginx dan MariaDB di CentOS 7