Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

WordPress se sistèm jesyon kontni ki pi dominan ekri nan PHP, konbine avèk baz done MySQL oswa MariaDB. Ou ka kreye epi kenbe yon sit san okenn konesans anvan nan devlopman entènèt oswa kodaj. Premye vèsyon WordPress te kreye an 2003 pa Matt Mullenweg ak Mike Little epi li kounye a itilize pa 70% nan mache entènèt li te ye a, dapre W3Tech. WordPress vini nan de vèsyon: sous louvri gratis WordPress.org ak WordPress.com, yon sèvis peye ki kòmanse nan $5 pa mwa jiska $59. Sèvi ak sistèm jesyon kontni sa a se fasil epi yo souvan wè li kòm yon etap pou fè yon blog oswa sit menm jan an prezante.

Nan leson patikilye sa a, ou pral aprann ki jan yo enstale WordPress pwòp tèt ou akomode lè l sèvi avèk dènye vèsyon yo Nginx, MariaDB, ak PHP ki disponib.

Kondisyon

  • OS rekòmande: Rocky Linux 8.+.
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.

Mizajou sistèm operasyon

Mete ajou ou Rocky linux sistèm operasyon pou asire tout pakè ki egziste deja yo ajou:

sudo dnf upgrade --refresh -y

Tutorial la pral sèvi ak la sudo kòmand ak sipoze ou gen estati sudo.

Pou verifye estati sudo sou kont ou:

sudo whoami

Egzanp pwodiksyon ki montre estati sudo:

[joshua@rockylinux ~]$ sudo whoami
root

Pou mete kanpe yon kont sudo ki deja egziste oswa nouvo, vizite leson patikilye nou an sou Ki jan yo ajoute yon itilizatè nan Sudoers sou Rocky Linux.

Pou itilize kont rasin, sèvi ak lòd sa a ak modpas rasin lan pou konekte.

su

Enstale CURL & UNZIP Package

Leson patikilye a fè sèvi ak la boukle ak dezip kòmand pandan sèten pati. Pou asire w ke sa a enstale, kouri lòd sa a nan tèminal ou a:

sudo dnf install curl unzip -y

reklam


Enstale Nginx - (LEMP Stack)

Si ou vle. Chanje Nginx Version Stream an EPEL

Pou kòmanse enstalasyon pile LEMP, w ap bezwen enstale Nginx sèvè entènèt. Leson patikilye a ta montre chwa si ou vle ki kouran Nginx pou enstale, ki se sou la men si ou enstale repozitwa EPEL la.

Premyèman, lis pwofil Nginx ki disponib lè l sèvi avèk dnf modil lis lòd nan tèminal ou a:

sudo dnf module list nginx

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Piske leson patikilye a konsantre sou itilizasyon EPEL la, yo pral chwazi liy prensipal Nginx la. Men, anvan, ou bezwen Reyajiste modil Nginx yo chanje.

sudo dnf module reset nginx

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Tape "Y," Lè sa a, peze "ENTRE KLE" kontinye ak retabli lis modil la.

Apre sa, pèmèt modil Nginx ou pito a. Pou leson patikilye a, yo pral chwazi EPEL, epi si ou vle itilize liy prensipal Nginx, ou pral antre "nginx:mainline," si ou prefere vèsyon ki estab, Lè sa a, li ta "nginx.1:20".

Pou enstale liy prensipal EPEL:

sudo dnf module enable nginx:mainline

Pou enstale EPEL ki estab:

sudo dnf module enable nginx:1.20

Enstale Nginx

Kounye a li se tan enstale Nginx kòm yon pati nan enstalasyon LEMP. Kit ou te enstale EPEL epi w ap itilize yon bati Nginx ki baze sou repozitwa sa a oswa itilize default la Rocky Linux 8 App kouran, kòmandman yo pral menm bagay la; jis kèk nan rezilta yo ki se egzanp sèlman ap diferan.

Pou enstale Nginx, sèvi ak lòd sa a nan tèminal ou a:

sudo dnf install nginx

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Tape "Y," Lè sa a, peze "ENTRE KLE" kontinye ak enstalasyon an.

Konfime enstalasyon an pa tcheke vèsyon an bati:

nginx -v

Egzanp pwodiksyon:

nginx version: nginx/1.14.1

Pa default, lè w ap enstale Nginx sou Rocky Linux, li pa pèmèt. Pou pèmèt sou bòt ak kòmanse, sèvi ak sa ki annapre yo:

sudo systemctl enable nginx --now

Egzanp pou pèmèt avèk siksè (senbolik):

Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

Koulye a, tcheke pou wè estati sèvis Nginx ou a ak lòd tèminal sa a:

systemctl status nginx

Egzanp pwodiksyon ki di tout bagay anfòm:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Koulye a, ou ka konfime ke sèvè wèb Nginx ou a fonksyone lè w antre HTTP://sèvè-ip or HTTP: // non domèn nan navigatè entènèt ou a, epi ou ta dwe jwenn bagay sa yo:

Ki jan yo enstale phpBB ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Si ou pa ka jwenn aksè nan paj sa a, ou ka bezwen konfigirasyon paramèt pare-feu ki kouvri nan pwochen seksyon an.

Konfigirasyon Règ firewall

Li pa otomatikman ajoute règ firewall nan pò estanda 80 oswa 443 pò yo lè w ap enstale Nginx. Anvan ou kontinye, ou ta dwe mete règ sa yo, sa a pral depann de ki pò ou pral itilize, men tout opsyon yo ki nan lis.

Louvri pò 80 oswa HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

Louvri pò 443 oswa HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

Rechaje firewall pou fè chanjman an vigè

sudo firewall-cmd --reload

reklam


Enstale MariaDB (LEMP STACK)

Si ou vle. Chanje nan MariaDB 10.5

Rocky Linux App stream pa default enstale MariaDB 10.3, yon vèsyon ki pi gran men ekstrèmman ki estab. Sepandan, dènye konstriksyon MariaDB nan moman leson patikilye sa a ki klase kòm yon lage ki estab se MariaDB 10.6.4. Kòm ou ka imajine, diferans lan trè enpòtan; sepandan, kòm pifò itilizatè Rocky Linux pito itilize estabilite pase dènye kri, yon solisyon pral sèvi ak MariaDB 10.5 ki pi nouvo pandan y ap nan menm tan an ekstrèmman ki estab epi li toujou ap resevwa koreksyon ensèk ak mizajou sekirite.

Premyèman, Reyajiste lis modil MariaDB la:

sudo dnf module reset mariadb

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Tape "Y," Lè sa a, peze "ENTRE KLE" kontinye ak reset modil la.

Apre sa, pèmèt MariaDB 10.5 kòm sous prensipal la lè w ap enstale MariaDB.

sudo dnf module enable mariadb:10.5

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Tape "Y," Lè sa a, peze "ENTRE KLE" kontinye ak chanjman modil la nan MariaDB 10.5.

Enstale MariaDB

Koulye a, li se tan enstale MariaDB; Tou depan de ki vèsyon ou chwazi a, rezilta yo ka diferan, men kòmandman yo pral jisteman menm bagay la.

sudo dnf install mariadb-server mariadb

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Tape "Y," Lè sa a, peze "ENTRE KLE" kontinye ak enstalasyon an.

Pou konfime enstalasyon MariaDB epi tcheke ki sa ki enstale, tape lòd sa a:

mysql --version

Egzanp pwodiksyon:

mysql  Ver 15.1 Distrib 10.5.9-MariaDB, for Linux (x86_64) using  EditLine wrapper

Tcheke estati sèvè MariaDB

Koulye a, ou te enstale MariaDB, epi ou ka verifye estati lojisyèl baz done a lè w sèvi ak kòmandman systemctl sa a:

systemctl status mariadb

Pa default, ou pral jwenn estati MariaDB yo koupe. Pou kòmanse MariaDB, sèvi ak lòd sa a:

sudo systemctl enable mariadb --now

Koulye a, tcheke estati a, epi ou ta dwe jwenn bagay sa yo:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Pou sispann MariaDB:

sudo systemctl stop mariadb

Pou pèmèt MariaDB sou demaraj sistèm:

sudo systemctl enable mariadb

Pou enfim MariaDB sou demaraj sistèm:

sudo systemctl disable mariadb

Pou rekòmanse sèvis MariaDB:

sudo systemctl restart mariadb

Sekirize MariaDB ak Script Sekirite

Lè w ap enstale MariaDB fre, paramèt default yo konsidere kòm fèb pa pifò estanda ak lakòz enkyetid pou potansyèlman pèmèt entrizyon oswa eksplwate entru. Yon solisyon se kouri script sekirite enstalasyon ki vini ak la MariaDB enstalasyon.

Premyèman, sèvi ak lòd sa a pou lanse (mysql_secure_installation):

sudo mysql_secure_installation

Apre sa, yo pral ba w yon èd memwa ki mande w antre (modpas rasin MariaDB ou). Pou kounye a, peze la (ANTRE) kle kòm modpas rasin lan poko fikse jan pi ba a:

Next, tape (Y) epi peze antre pou mete kanpe la (Rasin) modpas jan pi ba a:

Pwochen seri kesyon ou ka san danje frape (ANTRE), ki pral reponn (Y) a tout kesyon ki vin apre yo ki mande w (retire itilizatè anonim yo, enfim koneksyon rasin aleka, epi retire baz done tès la). Remake byen (Y) se lèt majiskil, sa vle di li se repons default la lè ou peze la (ANTRE) kle.

Egzanp anba a:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Apèsi sou sa ki ta dwe fè pi wo a:

  • Mete modpas la pou rasin kont.
  • Retire kont rasin ki aksesib soti deyò lame lokal la.
  • Retire kont itilizatè anonim.
  • Retire baz done tès la, ki pa defo ka jwenn aksè pa itilizatè anonim.

Etap sa a esansyèl pou sekirite baz done MariaDB epi li pa ta dwe chanje oswa sote sof si w konnen sa w ap fè.

Enstale PHP & PHP-FPM (LEMP STACK)

Si ou vle. Enpòte PHP 8.0 Repository

Dènye pati pou enstale nan enstalasyon LEMP ou a se PHP. Ou pral bezwen enstale (PHP-FPM) ki se kout pou (Manadjè Pwosesis FastCGI). Li trè rekòmande enstale PHP (Remi) depo. Pou moun ki pa okouran, Remi se moun ki kenbe PHP degaje sou fanmi Rhel la.

Pou leson patikilye a, nou pral enstale dernye PHP 8.0. Sepandan, li dwe remake pandan WordPress travay byen ak PHP 8.0 ak pi wo, kèk nan grefon yo ka fè fas a pwoblèm, kidonk asire w ke ou se sèlman enstale grefon aktif ak mete ajou ki ta dwe estanda a nan nenpòt CMS. Si w rankontre pwoblèm, désinstaller PHP 8.0, epi sèvi ak PHP 7.4.

Pou enstale PHP soti nan depo Remi a, w ap bezwen enstale depo EPEL la nan kòmansman leson patikilye a. Pa default, PHP 7.2 se chwa PHP default pou enstalasyon estanda sou Rocky Linux. Yon konsèy rapid se sèvi ak la (lis php) kòmand pou wè opsyon ki disponib ak default la.

pèmèt (Repozitwa Remi) avèk bagay sa yo:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Ankò kòm egzanp pwodiksyon, tape (Y) epi antre pou kontinye:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Apre sa, sèvi ak (dnf) lòd pou mete ajou lis depo ou a:

sudo dnf update

Koulye a, lis modil ki disponib pou PHP lè l sèvi avèk lòd sa a:

sudo dnf module list php

Ou pral jwenn pwodiksyon sa a kòm pi ba a. Remake byen la (D) tag pou PHP default yo dwe enstale:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Kòm ou ka wè pi wo a, la (D) tag se akote PHP 7.2, ke w ap bezwen reset ak chanje pou enstale PHP 8.0 sou Rocky Linux.

Reyajiste lis PHP a fasil ak lòd sa a:

sudo dnf module list reset php

Apre sa, pèmèt PHP 8.0 ak lòd sa a:

sudo dnf module enable php:remi-8.0 

Remake byen, ou ka pèmèt PHP-7.4 pa swiv la dnf modil reset lòd epi sèvi ak la dnf modil pèmèt php:remi-7.4 kòmand olye. chwazi a vèsyon ou bezwen pou aplikasyon an, epi sa a te jis yon egzanp pou gen dènye vèsyon PHP a nenpòt chwa PHP ou deside.

Enstale PHP & PHP-FPM

Apre sa, enstale PHP sou sèvè ou a; depann de ki vèsyon PHP, rezilta yo ap gade diferan; sepandan, kòmandman yo rete menm jan an.

sudo dnf install php

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Tape "Y," Lè sa a, peze "ENTRE KLE" kontinye ak enstalasyon an. Remake byen, ou ka mande pou tape "Y."

Verifye enstalasyon an epi tcheke vèsyon an epi bati:

php -v

Egzanp pwodiksyon:

PHP 8.0.11 (cli) (built: Sep 21 2021 17:07:44) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.11, Copyright (c), by Zend Technologies

Koulye a, pa default, PHP-FPM koupe epi li pa pèmèt sou bòt. Pou pèmèt sou bòt epi kòmanse sèvis la, sèvi ak sa ki annapre yo kòmandman systemctl:

sudo systemctl enable php-fpm --now

Pou konfime PHP-FPM ap kouri kounye a, sèvi ak sa ki annapre yo kòmand systemctl:

Egzanp pwodiksyon:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Sonje byen, ou pa bezwen sèvi ak PHP 8.0, fè kèk rechèch si ou pa sèten, oswa pi byen toujou, mande nan fowòm kominote WordPress, ki travay pi byen kounye a; sepandan, pwosesis la se menm bagay la ansanm ak kòmandman swa itilize default oswa lòt vèsyon altènatif nan lis modil dnf la.

Kounye a ke LEMP mete kanpe ale nan enstalasyon WordPress aktyèl la.


reklam


Pati 1. Enstale WordPress Backend

Download WordPress

Vizite WordPress.org la download paj epi woule desann jiskaske ou jwenn "dènye.zip" telechaje lyen. Si w ap òganize sou yon Desktop, ou ka telechaje sa a manyèlman oswa itilize lòd wget la pou telechaje Desktop ou.

wget https://wordpress.org/latest.zip

Kreye estrikti Dosye pou WordPress

Koulye a, ou gen achiv la telechaje, kontinye dezip li epi deplase li nan ou www anyè.

Kreye anyè a pou WordPress:

sudo mkdir -p /var/www/html/wordpress

Dekonprime WordPress nan anyè www la:

sudo unzip latest.zip -d /var/www/html/

Ou dwe mete a otorizasyon pwopriyetè anyè sou WWW, oswa sinon ou pral gen pwoblèm ak otorizasyon ekri WordPress.

Mete pèmisyon chown (enpòtan):

sudo chown -R www-data:www-data /var/www/html/wordpress/

Mete pèmisyon chmod (enpòtan):

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

Kreye baz done pou WordPress

WordPress mande pou yon baz done kouri, kidonk poukisa ou te oblije enstale MariaDB. Anvan w kontinye pi lwen, ou bezwen kreye yon baz done pou WordPress lè l sèvi avèk MariaDB. Premyèman, pote konsole tèminal la epi tape sa ki annapre yo.

Pote koki MariaDB kòm rasin:

sudo mariadb -u root

Dezyèm kòmand altènatif:

sudo mysql -u root

Apre sa, kreye baz done a. Sa a ka nenpòt non ou vle. Pou gid la, ou pral non li "WORDPRESSDB."

Kreye baz done WordPress:

CREATE DATABASE WORDPRESSDB;

Apre yo fin kreye baz done a, ou ta dwe kreye yon nouvo itilizatè pou nouvo sit WordPress la.

Sa a se fè kòm yon mezi sekirite, kidonk chak baz done gen yon itilizatè diferan. Si yon non itilizatè konpwomèt, atakè a pa jwenn aksè nan tout baz done lòt sit entènèt la.

Kreye itilizatè baz done WordPress:

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

Ranplase WPUSER ak PASSWORD ak nenpòt non itilizatè oswa modpas ou vle. Pa kopye epi kole itilizatè/pase default pi wo a pou rezon sekirite.

Koulye a, bay aksè itilizatè ki fèk kreye nan baz done a sit entènèt WordPress sèlman dapre pi ba a.

Bay baz done nan kont itilizatè WordPress kreye a:

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

Avèk tout paramèt konfigirasyon baz done yo fin ranpli, ou bezwen vide privilèj yo pou pran efè epi sòti.

Flush Privilèj pou fè chanjman an dirèk:

FLUSH PRIVILEGES;

Sòti MariaDB:

EXIT;

Mete WordPress Fichye Konfigirasyon

Ou bezwen mete kèk paramèt nan "WP-konfigirasyon-sample.php" dosye. Anba a, ou pral wè ki jan yo chanje non dosye echantiyon an epi antre enfòmasyon yo mande yo.

Premyèman, chanje non fichye konfigirasyon an.

Ale nan anyè WordPress:

cd /var/www/html/wordpress/

Chanje non fichye konfigirasyon:

sudo mv wp-config-sample.php wp-config.php

Koulye a, lè l sèvi avèk yon editè tèks, pote dosye a ki fèk chanje non wp-config.php. Nan egzanp nou an, nou pral sèvi ak nano.

sudo nano wp-config.php

Apre sa, ou pral antre non baz done a, kont itilizatè ak yon modpas, adrès IP lame si diferan de localhost.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 
define( 'DB_NAME', 'wordpressdb' );
/* MySQL database username */ 
define( 'DB_USER', 'wpuser1' );
/* MySQL database password */
define( 'DB_PASSWORD', 'YOUR PASSWORD' );
/* MySQL hostname, change the IP here if external DB set up */ 
define( 'DB_HOST', 'localhost' );
/* Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/* The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Pandan w nan dosye sa a, ajoute paramèt siplemantè pral fè WordPress ou pi fasil pou jere, tankou ekonomize dosye dirèk olye pou w itilize FTP ak ogmante limit gwosè memwa.

##Save files direct method##
 define( 'FS_METHOD', 'direct' );

##Increase memory limit, 256MB is recommended##
 define('WP_MEMORY_LIMIT', '256M');

##change Wordpress database table prefix if wanted##
 $table_prefix = 'wp_';

Mete WordPress Sekirite kle sèl

Li ta pi bon si ou te vizite WordPress sekrè-kle API pou jenere pwòp ou a. Ou ka jwenn dèlko kle sèl adrès la nan https://api.wordpress.org/secret-key/1.1/salt/. Ranplase liy egzanp yo ak kòd ki soti nan dèlko a.

PA KOPI EGZANP PIBA A, E SE SÈL POU REFERANS.

define('AUTH_KEY',         '<3yfS7/>%m.Tl^8Wx-Y8-|T77WRK[p>(PtH6V]Dl69^<8|K86[_Z},+THZ25+nJG');
define('SECURE_AUTH_KEY',  'bN#Qy#ChBX#Y`PE/_0N42zxgLD|5XpU[mu.n&:t4q~hg<UP/b8+xFTly_b}f]M;!');
define('LOGGED_IN_KEY',    'owpvIO-+WLG|,1)CQl*%gP1uDp}s(jUbYQ[Wm){O(x@sJ#T}tOTP&UOfk|wYsj5$');
define('NONCE_KEY',        '8=Vh|V{D<>`CLoP0$H!Z3gEqf@])){L+6eGi`GAjV(Mu0YULL@sagx&cgb.QVCbi');
define('AUTH_SALT',        '%TX*X$GE-;|?<-^(+K1Un!_Y<hk-Ne2;&{c[-v!{q4&OiJjQon /SHcc/:MB}y#(');
define('SECURE_AUTH_SALT', '=zkDT_%}J4ivjjN+F}:A+s6e64[^uQ<qNO]TfHS>G0elz2B~7Nk.vRcL00cJoo7*');
define('LOGGED_IN_SALT',   '{$-o_ull4|qQ?f=8vP>Vvq8~v>g(2w12`h65ztPM(xo!Fr()5xrqy^k[E~TwI!xn');
define('NONCE_SALT',       'a1G(Q|X`eX$p%6>K:Cba!]/5MAqX+L<A4yU_&CI)*w+#ZB+*yK*u-|]X_9V;:++6');

Konfigirasyon blòk sèvè Nginx

Koulye a, ou prèske pare enstale WordPress atravè UI entènèt la. Sepandan, ou bezwen konfigirasyon blòk sèvè Nginx ou a. Anviwònman ki anba yo trè enpòtan. Li ta dwe remake ke yo mete aksan sou enpòtans ki genyen nan "try_files $uri $uri/ /index.php?$args;" kòm li se souvan yon pwoblèm ak lòt tutoryèl ki kite fini an ?$args kite deyò, ba ou gwo pwoblèm sante sit vini nan REST API nan WordPress.

Premyèman, kreye yon nouvo fichye konfigirasyon sèvè ak lòd sa a ki ranplase egzanp lan ak non domèn ou,

sudo nano /etc/nginx/sites-available/example.com.conf

Anba a se yon egzanp; ou ka chwazi pati yo; sepandan, la "kote ~ \.php$" bezwen yo dwe nan dosye a konfigirasyon Nginx.

REMAK: Asire w ou chanje www.example.com ak example.com ak chemen rasin lan.

server {

  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;

  root /var/www/html/wordpress;

  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  client_max_body_size 100M;

	# Pass the php scripts to FastCGI server specified in upstream declaration.
 location ~ \.php(/|$) {
   include fastcgi.conf;
   fastcgi_pass unix:/run/php-fpm/www.sock;
   fastcgi_split_path_info ^(.+\.php)(/.*)$;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
   fastcgi_param DOCUMENT_ROOT $realpath_root;
   try_files $uri $uri/ /app.php$is_args$args;
   fastcgi_intercept_errors on;	
 }

 gzip on; 
 gzip_comp_level 6;
 gzip_min_length 1000;
 gzip_proxied any;
 gzip_disable "msie6";
 gzip_types
     application/atom+xml
     application/geo+json
     application/javascript
     application/x-javascript
     application/json
     application/ld+json
     application/manifest+json
     application/rdf+xml
     application/rss+xml
     application/xhtml+xml
     application/xml
     font/eot
     font/otf
     font/ttf
     image/svg+xml
     text/css
     text/javascript
     text/plain
     text/xml;

  # assets, media
  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
      expires    90d;
      access_log off;
  }
  
  # svg, fonts
  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
      add_header Access-Control-Allow-Origin "*";
      expires    90d;
      access_log off;
  }

  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Remake byen, si w ap itilize PHP 8.0 jwenn epi ranplase liy ki anwo a "fastcgi_pass unix:/run/php/php7.4-fpm.sock;" yo "fastcgi_pass unix:/run/php/php8.0-fpm.sock;".

Apre sa, w ap bezwen aktive fichye konfigirasyon Nginx nan "sit-disponib." Pou fè sa, ou pral kreye yon lyen senbolik "sit ki pèmèt" jan sa a.

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

Asire ou ke ou ranplase "egzanp. konf" ak non fichye konfigirasyon ou.

Koulye a, ou ka fè yon kouri sèk Lè sa a, rekòmanse sèvè Nginx ou a si tout bagay anfòm.

sudo nginx -t

Apre w fin tcheke ak tout bagay anfòm ak tès Nginx sèk ou a, rekòmanse sèvis Nginx la.

sudo systemctl restart nginx

PHP.ini Konfigirasyon

Pou enstale WordPress avèk siksè epi opere li byen nan tan kap vini an, ou ta dwe ogmante kèk opsyon nan dosye a konfigirasyon php.ini.

Premyèman, louvri dosye a php.ini:

sudo nano /etc/php.ini

Apre sa, w ap jwenn anviwònman rekòmande pou travay ak pifò enstalasyon WordPress, modifye yo jan ou bezwen pou adapte pyès ki nan konpitè sèvè ou ak resous yo.

Ou pral bezwen lokalize anviwònman yo ak liy yo epi chanje yo jan sa a:

max_execution_time = 180 (located on line 338)
max_input_time = 90 (located on line 398)
memory_limit = 256M (located on line 409)
upload_max_filesize = 64M (located on line 846)

Si ou vle, kèk anviwònman sekirite ogmante, sa a ka sote:

cgi.fix_pathinfo=0 
session.use_strict_mode = 1
session.use_cookies = 1
session.cookie_secure = 1
session.use_only_cookies = 1
session.name = LCCookies (Change the name, example: POPme)
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain = example.com (example only)
session.cookie_httponly = 1
session.cookie_samesite = Strict

Yon fwa fè, CTRL + O pou sove lè sa a Ctrl + X pou sòti nan fichye a.

Kontrèman ak enstalasyon LEMP sou Debian/Ubuntu ki sèvi ak (www-done) itilizatè, sa a se pa ka a ak enstalasyon Rhel/Rocky Linux. Pa default sou Rocky Linux, sèvis PHP-FPM fèt pou yo kouri (Apache) itilizatè a, ki pa kòrèk depi n ap itilize Nginx, e sa a te bezwen korije.

Premyèman, louvri sa yo (www.conf) dosye konfigirasyon:

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

Apre sa, ranplase a (Apache) itilizatè ak gwoup ak la (Nginx) itilizatè ak gwoup:

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Pou sove, peze (CTRL+O) Lè sa a, sòti (CTRL+X).

Ou pral bezwen rekòmanse PHP pou chanjman yo aktif:

sudo systemctl restart php-fpm

Louvri blòk sèvè ou a:

sudo nano /etc/nginx/sites-available/example.com

Ajiste liy sa a pou ogmante gwosè kò a:

client_max_body_size 100M;

Sonje byen, kenbe gwosè max kliyan an menm jan ak ou maksimòm gwosè PHP fichye anviwònman.

Apre sa, teste chanjman yo, epi rekòmanse sèvè Nginx ou a si tout bagay anfòm.

sudo nginx -t

Egzanp pwodiksyon si tout bagay ap travay kòrèkteman:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Apre w fin tcheke ak tout bagay anfòm ak tès Nginx sèk ou a, rekòmanse sèvis Nginx la.

sudo systemctl restart nginx

reklam


Pati 2. Enstale WordPress Frontend

Kounye a ke tout konfigirasyon backend la ak konfigirasyon yo konplè, ou ka ale nan domèn ou epi kòmanse enstale.

##go to installation address##
 https://www.yoursite.com
##alternative url##
 https://www.yoursite.com/wp-admin/install.php

Premye paj ou pral wè se kreye yon non itilizatè ak modpas ansanm ak kèk detay sou sit. Sa a pral kont login admin ou nan lavni. Ou ka chanje sa pita tou.

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Si w ap bati yon sit entènèt, pèmèt "fòtman dekouraje motè rechèch yo soti nan endèks" anpeche Google oswa Bing oswa nenpòt lòt "Bot motè rechèch bon / bon repitasyon" soti nan Indexing yon sit entènèt WIP. Yon fwa fini, ou pral vin nan pwochen ekran an ak yon login.

Ki jan yo enstale WordPress ak LEMP (Nginx, MariaDB, ak PHP) sou Rocky Linux 8

Felisitasyon, ou te enstale avèk siksè dènye vèsyon WordPress sou Nginx ak pile LEMP la.

Sekirize Nginx ak ann ankripte Sètifika SSL gratis

Idealman, ou ta vle kouri Nginx ou sou HTTPS lè l sèvi avèk yon sètifika SSL. Pi bon fason pou fè sa se sèvi ak Ann ankripte, yon otorite sètifika gratis, otomatik epi ouvè dirije pa la Gwoup rechèch sekirite entènèt san bi likratif (ISRG).

Premyèman, enstale EPEL depo ak la mod_ssl pake pou pi bon pakè ak sekirite mete ajou.

sudo dnf install epel-release mod_ssl -y

Apre sa, enstale a pake certbot jan sa a:

sudo dnf install python3-certbot-nginx -y

Yon fwa enstale, kouri lòd sa a pou kòmanse kreyasyon sètifika ou a:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com

Sa a se konfigirasyon ideyal la ki gen ladan fòs HTTPS 301 redireksyon, Strict-Transport-Security header, ak OCSP Stapling. Jis asire w ke ou ajiste imel la ak non domèn nan kondisyon ou yo.

Koulye a, URL ou a pral https://www.example.com olye pou yo HTTP://www.example.com.

Remake byen, si ou itilize ansyen an URL HTTP, li pral otomatikman redireksyon nan T.

Opsyonèlman, ou ka mete yon travay cron pou renouvle sètifika yo otomatikman. Certbot ofri yon script ki fè sa otomatikman, epi ou ka premye teste asire w ke tout bagay ap travay pa fè yon kouri sèk.

sudo certbot renew --dry-run

Si tout bagay ap travay, ouvri fenèt crontab ou a lè w sèvi ak lòd tèminal sa a.

sudo crontab -e

Apre sa, presize lè a lè li ta dwe renouvle otomatikman. Sa a ta dwe tcheke chak jou nan yon minimòm, epi si sètifika a bezwen renouvle, script la pa pral mete ajou sètifika a. Si ou bezwen èd pou jwenn yon bon moman pou mete, sèvi ak la crontab.guru zouti gratis.

00 00 */1 * * /usr/sbin/certbot-auto renew

Save (CTRL+O) Lè sa a, sòti (CTRL+X), epi cronjob la pral otomatikman aktive.


reklam


Kòmantè ak konklizyon

WordPress ofri yon kapasite kokenn pou kreye sit entènèt rapid ak modèl ak grefon. Magazen an plugin gen tout pouvwa a yon kantite fòmidab nan opsyon. Sepandan, pou déblotché tout potansyèl la nan pifò tèm ak ajoute, yo tout se paywall, men pifò yo abòdab.

Self-hosting WordPress se yon ti jan plezi. Sepandan, asire w ke ou kenbe ak sekirite ak ajou se esansyèl. WordPress se CMS ki pi vize sou latè pa atakè yo, ak sit ou a pral, nan premye jou li yo san yo pa menm yo te nan lis yo pral tcheke pou eksplwatasyon, ak tantativ fòs brital yo ap kòmanse.

Leave a Comment