Drejtimi i WordPress në OpenBSD 6.6 me OpenBSD HTTPD

Prezantimi

Duke pasur parasysh prirjen e OpenBSD për sigurinë, ka kuptim vetëm të fuqizoni uebsajtin tuaj të WordPress me të, veçanërisht sepse WordPress dhe PHP priren të jenë objektiva lëvizës për fëmijët e skriptit. Meqenëse httpd e OpenBSD është krijuar kryesisht për të shërbyer faqe statike, operacionet POST janë të rezervuara për proceset fastcgi dhe slowcgi. Kjo e bën më të vështirë për një aktor mashtrues që potencialisht të prishë procesin e serverit në internet dhe të ketë akses në serverin tuaj. Operacionet POST dërgohen në procesin fastcgi dhe përdorin një përkthyes të jashtëm. Ky artikull do të diskutojë jo vetëm konfigurimin e faqes suaj të WordPress, por disa teknika bazë të mirëmbajtjes dhe si të kopjoni dhe rivendosni faqen tuaj dhe bazën e të dhënave të saj. Kudo që e shihni example.comsi domen, ju lutemi zëvendësojeni atë me domenin tuaj.

Konfigurimi fillestar

Nëse nuk e keni bërë tashmë këtë, do t'ju duhet të krijoni një /etc/doas.confskedar. Komanda doas është zëvendësimi i lehtë i OpenBSD për sudo. Për lehtësi, kam shtuar opsionin nopass në mënyrë që të mos keni nevojë të ri-shkruani fjalëkalimin tuaj kur përdorni doas. Nëse preferoni të mos e keni këtë, thjesht hiqni nopass.

su - echo "permit nopass keepenv :wheel" > /etc/doas.conf

Në varësi të mënyrës se si OpenBSD ishte paketuar për vendosje, ndonjëherë menaxheri i paketave mund të mos ketë një depo të konfiguruar. Për të konfiguruar depon zyrtare të OpenBSD, duhet të krijojmë /etc/installurlskedarin.

doas su echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl exit

Tani duhet të shtojmë PHP dhe disa module shtesë që do t'i nevojiten WordPress-it për të trajtuar gjëra të tilla si imazhet dhe enkriptimin. Kur të kërkohet, zgjidhni të instaloni paketën më të re të PHP. Një gjë që duhet të bëni është të kopjoni skedarët ini të modulit nga drejtoria e mostrës në atë kryesore. Kjo duhet të bëhet për të aktivizuar modulet shtesë PHP.

doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli php-zip pecl73-mcrypt pecl73-imagick wget doas cp /etc/php-7.3.sample/* /etc/php-7.3/.

Merrni Certifikatat Le të Enkriptojmë

Në botën e sotme, faqet e internetit duhet të shërbehen përmes SSL ose të rëndohen nga motorët e kërkimit. Për fat të mirë, OpenBSD ka një aplikacion të shkëlqyeshëm të quajtur acme-client. Acme-klienti do të gjenerojë automatikisht një çelës të ri privat dhe do të kërkojë një certifikatë të re plotësisht të vlefshme. Acme-klienti varet nga vendosja e një serveri në internet, kështu që do të na duhet të krijojmë një përkufizim të shpejtë të paracaktuar të serverit.

Me redaktorin tuaj të preferuar, krijoni /etc/httpd.conf. Përkufizimet e tjera të serverit do t'i shtojmë skedarit më vonë. Tani për tani kjo do të jetë e mjaftueshme që acme-client të funksionojë siç duhet.

prefork 5 types { include "/usr/share/misc/mime.types" } server "default" { listen on egress port 80 root "/htdocs" directory index "index.html" location "/.well-known/acme-challenge/*" { request strip 2 root "/acme" } }

Gjithashtu duke përdorur redaktorin tuaj të preferuar, krijoni /etc/acme-client.conf.

authority letsencrypt { api url "https://acme-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-privkey.pem" } authority letsencrypt-staging { api url "https://acme-staging-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-staging-privkey.pem" } domain example.com { alternative names { www.example.com } domain key "/etc/ssl/private/example.com.key" domain full chain certificate "/etc/ssl/example.com.crt" sign with letsencrypt }

Tani duhet të aktivizojmë dhe të fillojmë httpd. Pasi ta bëjmë këtë, atëherë mund të ekzekutojmë acme-client dhe të presim që ai të marrë certifikatën tonë të re dhe të re. Pasi ta bëjmë këtë, do të shtojmë një punë cron për të kërkuar automatikisht një të re çdo 7 ditë, në mënyrë që të mos shqetësohemi për skadimin.

doas rcctl enable httpd doas rcctl start httpd doas acme-client -v example.com

Tani krijojmë punën cron. Shtoni këtë rresht poshtë hyrjes së fundit. Në këtë rast, ne po i themi acme-klientit të kërkojë certifikatën e re në orën 1:00 çdo të shtunë.

doas crontab -e 0 1 * * 6 acme-client -F example.com && rcctl reload httpd

Konfigurimi i HTTPD për WordPress

Tani është koha për të konfiguruar httpd për WordPress. Në vend që të vendosim përkufizimin e faqes sonë të internetit direkt në /etc/httpd.conf, ne do ta vendosim atë në një skedar të veçantë të quajtur /etc/httpd.conf.example.comdhe do ta përfshijmë në skedarin kryesor të konfigurimit. Në përgjithësi është një praktikë e mirë që t'i ndani të dyja, duke i mbajtur përkufizimet në të gjithë sitin në skedarin tuaj kryesor të konfigurimit dhe cilësimet specifike të domenit në një tjetër.

Shtoni rreshtin e mëposhtëm në fund të /etc/httpd.confskedarit tuaj :

include "/etc/httpd.conf.example.com"

Tani duke përdorur redaktorin tuaj të preferuar, krijoni /etc/httpd.conf.example.com. Për lehtësi, ne do të krijojmë skedarë të veçantë regjistri për domenin tuaj. Kjo e bën më të lehtë kur përpiqeni të zgjidhni problemet e mundshme me faqen tuaj.

server "example.com" { listen on egress port 80 alias "www.example.com" # Automatically redirect to SSL block return 302 "https://$SERVER_NAME$REQUEST_URI" log { access "access-example.com" error "error-example.com" } } server "example.com" { listen on egress tls port 443 alias "www.example.com" root "/htdocs/wordpress" directory index "index.php" log { access "access-example.com" error "error-example.com" } tcp { nodelay, backlog 10 } tls { certificate "/etc/ssl/example.com.crt" key "/etc/ssl/private/example.com.key" } hsts { # max-age value is the number of seconds in 1 year max-age 31556952 preload subdomains } location "/.well-known/acme-challenge/*" { root "/acme" request strip 2 } location "/posts/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/page/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/feed/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/comments/feed/*" { fastcgi { param SCRIPT_FILENAME \ "htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/wp-json/*" { fastcgi { param SCRIPT_FILENAME \ "htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/wp-login.php*" { authenticate "WordPress" with "/htdocs/htpasswd" fastcgi socket "/run/php-fpm.sock" } location "*.php*" { fastcgi socket "/run/php-fpm.sock" } }

Për siguri më të madhe, ne do të zbatojmë një kërkesë shtesë për një emër përdoruesi dhe fjalëkalim kur hyni në faqen e administrimit të WordPress. Meqenëse fëmijët e skriptit pëlqejnë të provojnë në mënyrë të përsëritur dhe bruteforce hyrjen e WordPress, ne krijojmë një hyrje shtesë në nivelin e serverit të uebit. Në mënyrë tipike, ata marrin rreth 5 supozime përpara se WordPress të hedhë një gabim 401 të paautorizuar.

doas su cd /var/www/htdocs doas htpasswd htpasswd <user> doas chown www:www htpasswd doas chmod 0640 htpasswd doas rcctl reload httpd

Përgatitni dhe konfiguroni PHP dhe PHP-FPM

Ne duhet të bëjmë një ndryshim në php në mënyrë që instalimi juaj i WordPress të mund të dërgojë email. WordPress dhe disa shtojca mbështeten në aftësinë për të dërguar email që ju njoftojnë për përmirësimet, sinjalizimet dhe ndryshimet. Pamundësia për të dërguar email mund të prishë disa veçori të WordPress. Meqenëse httpd funksionon në mjedisin chrooted, ne duhet t'i tregojmë php-së se si të dërgojë email. Për më tepër, ne duhet të bëjmë disa javë të performancës në php-fpm.

Kërkoni sendmail_pathrreshtin /etc/php-7.3.inidhe bëni ndryshimin e mëposhtëm:

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; sendmail_path = sendmail_path = /bin/femail -t -i

Kërkoni rreshtat e mëposhtëm /etc/php-fpm.confdhe ndryshoni ato si më poshtë:

pm.start_servers = 5 pm.min_spare_servers = 1 pm.max_spare_servers = 6

Hapi tjetër është aktivizimi dhe fillimi i php-fpm.

doas rcctl enable php73_fpm doas rcctl start php73_fpm

Përgatitni dhe konfiguroni MariaDB

MariaDB është një pirun zëvendësues i MySQL. Duhet të bëjmë disa punë fillestare të konfigurimit dhe përgatitjes së bazës së të dhënave për WordPress.

Përpara se të mund të përdorim MariaDB në mënyrë efektive, duhet të lejojmë daemon mysql të përdorë më shumë burime sesa parazgjedhja. Për ta bërë këtë, bëni ndryshimet e mëposhtme /etc/login.confduke shtuar këtë hyrje në fund.

mysqld:\ :openfiles-cur=1024:\ :openfiles-max=2048:\ :tc=daemon:

Duhet të bëjmë disa ndryshime në skedarin e konfigurimit të MariaDB, /etc/my.cnf. Duke komunikuar klientin dhe serverin mysql përmes folesë së domenit UNIX në vend të TCP, përdorimi i memories së serverit tuaj mund të mbahet më i ulët. Nuk është e nevojshme të bëni të gjitha ndryshimet e sugjeruara më poshtë. Dy të rëndësishmet për të ndryshuar janë socketlinja dhe komentimi i bind-addresslinjës. Kjo lëviz folenë brenda /var/wwwmjedisit chroot në mënyrë që WordPress të mund të lidhet me bazën e të dhënave. Duke komentuar bind-addresslinjën, ne parandalojmë MariaDB të dëgjojë në një port TCP.

[client-server] socket=/var/www/var/run/mysql/mysql.sock #port=3306 # This will be passed to all MariaDB clients [client] #password=my_password # The MariaDB server [mysqld] # To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0" #bind-address=127.0.0.1 # Directory where you want to put your data #data=/var/mysql # This is the prefix name to be used for all log, error and replication files #log-basename=mysqld # Logging #log-bin=/var/mysql/mariadb-bin #max_binlog_size=100M #binlog_format=row #expire_logs_days = 7 #general-log #slow_query_log query_cache_type = 1 query_cache_limit = 1M query_cache_size = 16M

Tani duhet të ekzekutojmë binarin e instalimit të MariaDB dhe të aktivizojmë dhe të fillojmë MariaDB. Kjo procedurë do të vendosë një fjalëkalim rrënjësor dhe opsionalisht do të heqë bazën e të dhënave të testimit. Është një ide e mirë të ndiqni të gjitha sugjerimet në fazën e instalimit të sigurt.

doas mysql_install_db doas rcctl enable mysqld doas rcctl start mysqld doas mysql_secure_installation

Krijoni bazën e të dhënave të WordPress dhe përdoruesin e bazës së të dhënave. Mos harroni të zëvendësoni <wp_user>me zgjedhjen tuaj të emrit të përdoruesit të bazës së të dhënave dhe <password>me një fjalëkalim kompleks sipas zgjedhjes suaj.

mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT

Instaloni dhe konfiguroni WordPress

WordPress nuk ka një portë zyrtare OpenBSD për një kohë të gjatë, sepse funksionon pothuajse jashtë kutisë. Shkarkoni, nxirrni dhe zhvendosni dosjen e instalimit të WordPress.

cd /tmp wget https://wordpress.org/latest.tar.gz tar xvfz latest.tar.gz doas mv wordpress /var/www/htdocs/. doas chown -R www:www /var/www/htdocs/wordpress doas chmod 0755 /var/www/htdocs/wordpress cd /var/www/htdocs/wordpress/ find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;

Ne duhet të kopjojmë /etc/resolv.confdhe /etc/hostsnë një drejtori që do të krijojmë të quajtur /var/www/etc. Kjo është në mënyrë që WordPress të mund të arrijë me sukses në treg. Kjo do t'ju duhet për të shkarkuar shtojcat dhe temat përmes faqes së administratorit të WordPress. Është gjithashtu e rëndësishme që shtojca Jet Pack të funksionojë siç duhet.

doas mkdir /var/www/etc doas cp /etc/hosts /var/www/etc/. doas cp /etc/resolv.conf /var/www/etc/.

Nga këtu, shfletoni në faqen tuaj të internetit të WordPress duke përdorur https përmes URL-së që keni specifikuar në përkufizimin e serverit të uebit. Nëse gjithçka funksionon si duhet, duhet të shihni magjistarin e instalimit të WordPress. Kur të arrini te opsioni për të specifikuar një server të bazës së të dhënave, duhet të përdornilocalhost:/var/run/mysql/mysql.sock

Pasi të jetë instaluar WordPress, është koha për të vendosur lidhjet e përhershme në mënyrë që ato të duken më miqësore me SEO. Nga ekrani i administratorit të WordPress, shkoni te Settings -> Permalinks. Klikoni mbi Struktura e personalizuar dhe shkruani /posts/%postname%. Pasi të bëni këtë ndryshim, klikoni butonin Ruaj ndryshimet. Tani keni lidhje shumë më të bukura. Për shembull, një lidhje e përhershme do të duket kështu:https://example.com/posts/example-blog-post

Nga këtu, ju duhet të keni një uebsajt bazë gati për të filluar. Sigurohuni që të instaloni shtojca si Jet Pack dhe WP-Super Cache. Shtojca WP-Super Cache ndihmon në përshpejtimin e faqes suaj të internetit duke ruajtur faqet e internetit dhe duke eliminuar kërkimet e vazhdueshme të bazës së të dhënave dhe JetPack ju jep disa statistika të shkëlqyera të shikueshmërisë.

Rezervimi i faqes suaj të internetit dhe bazës së të dhënave të WordPress

Nuk duhet thënë se kopjimi i faqes suaj të internetit dhe bazës së të dhënave është shumë i rëndësishëm. Fatmirësisht, kjo është një gjë relativisht e lehtë për t'u bërë. Rezervoni të dyja në direktorinë tuaj kryesore dhe më pas mund t'i kopjoni ato nëpërmjet scp në një vend tjetër. Ju gjithashtu mund të krijoni një fotografi përmes Panelit të Kontrollit Vultr. Është një ide e mirë t'i bëni të dyja.

cd /var/www/htdocs tar cvfz wordpress.tgz wordpress/ cp wordpress.tgz /home/user mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql

Rivendosja e faqes suaj të WordPress

Nëse databaza juaj është e dëmtuar dhe është e nevojshme një rivendosje, kryeni sa më poshtë:

gunzip wordpress.sql.gz mysql -u root -p wordpress DROP USER '<user>'@'localhost'; DROP DATABASE wordpress; CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT mysql -u root -p wordpress < wordpress.sql

Nëse keni bërë një ndryshim në një skedar skripti të WordPress që prishi diçka, gjithmonë mund ta riinstaloni WordPress përmes panelit të kontrollit të administratorit. Gjeni Updatesseksionin dhe klikoni në lidhje. Kërkoni një buton të etiketuar Re-install Now. Kjo të paktën do të rregullojë atë që është prishur, por shumica e konfigurimit tuaj duhet të mbetet e paprekur.

Nëse baza juaj e të dhënave është në gjendje të mirë, por ju keni redaktuar aksidentalisht një skedar dhe i keni thyer gjërat deri në atë pikë sa nuk mund të arrini as në tastierën e administratorit të WordPress, atëherë bëni sa më poshtë:

rm /var/www/htdocs/wordpress cp /home/user/wordpress.tgz /tmp tar xvfz wordpress.tgz mv wordpress /var/www/htdocs/. chown -R www:www /var/www/htdocs/wordpress cd /var/www/htdocs/wordpress find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;


Leave a Comment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë