Paano ibahagi ang Memcached sa maraming website ng WordPress sa iisang server? Isang 100% gabay sa pag-configure na hindi nagkakamali.

Isang server ang nagpapatakbo ng maramiWordPressWebsite, ibinahagiMemcachedMaaari ba itong magdulot ng mga isyu sa data overwriting o crosstalk?

Ang artikulong ito ay nagbibigay ng sunud-sunod na gabay kung paano perpektong ihiwalay ang transient at object cache data sa iba't ibang site sa pamamagitan ng pag-configure ng hiwalay na cache prefix (WP_CACHE_KEY_SALT) at object cache scripts.

100% inaalis ang mga conflict sa data, na nagbibigay-daan sa maraming site na tamasahin ang sukdulang karanasan sa pagpapabilis ng memory-level nang sabay-sabay, at may kasamang mga tip sa kaligtasan upang maiwasan ang mga panganib sa mga kapaligiran ng produksyon!

Ilang araw na ang nakalipas, tinanong ako ng isang kaibigan tungkol sa tatlong WordPress website niya na tumatakbo sa server niya. Gusto niyang i-configure ang Memcached para mapabilis ang mga ito, pero nag-aalala siya na baka magulo ang data.

Natawa ako nang mga sandaling iyon dahil ako mismo ay nahulog sa patibong na ito.

Paano ibahagi ang Memcached sa maraming website ng WordPress sa iisang server? Isang 100% gabay sa pag-configure na hindi nagkakamali.

Sa totoo lang, napakadaling i-set up ang Memcached para sa iisang site, pero nagiging interesante ito pagdating sa maraming site na magkakasamang ginagamit. Bakit?

Bilang default, inilalagay ng Memcached ang lahat ng transient at object cache ng mga website sa iisang pool. Isipin mo na lang kung ang mga website na A at B ay gumagamit ng parehong cache key—magdudulot iyon ng kaguluhan. Direktang ipapatong ng data ni A ang data ni B, at magsisimulang "makialam" ang dalawang website sa data ng isa't isa.

Mas nakakatawa pa ang nasaksihan ko, isaE-commerceAng pahina ng mga detalye ng produkto ng website ay nagpapakita ng nilalaman ng artikulo mula sa ibang blog site. Natigilan ako at napaisip, "Ano ito???"

Inabot ako ng isang buong gabi bago ko naintindihan; conflict pala ito sa cache key.

Kaya ngayon, ibabahagi ko ang aking paraan ng pag-configure sa pag-asang makakatulong ito sa mga kaibigan ko na may parehong pangangailangan. Sinusuri ko pa rin ito, at ang ilan sa aking mga ideya ay maaaring hindi pa ganap na nabubuo, ngunit ang pamamaraang ito ay gumana nang maayos para sa akin.

Paghahanda ng kapaligiran ng server

Bago mo simulan ang pag-configure ng WordPress, dapat mong tiyakin na ang server ay may serbisyong Memcached at naka-install ang extension na PHP Memcached.

Paano i-install ang Memcached sa HestiaCP?

Kung gagamit tayo ng Ubuntu bilang halimbawa, tatlong linya lamang ng mga utos ang kasama rito.

sudo apt update
sudo apt install memcached php-memcached
sudo systemctl restart php8.x-fpm  # 根据你的 PHP 版本改

Pagkatapos ng pag-install, tandaan na suriin kung tumatakbo ang serbisyo ng Memcached.

sudo systemctl status memcached

Kung nakikita mo ang "aktibo (tumatakbo)," ibig sabihin ay walang problema.

Pakitandaan na maaaring magkaiba ang mga pangalan ng pakete sa iba't ibang sistema. Ang utos na ito ay karaniwang ginagamit sa mga sistema ng Debian. Kung... CentOS Para sa iba pang mga distribusyon, maaaring kailanganin mong gamitin ang yum o dnf upang i-install ang mga ito.

Gumagamit ako ng Ubuntu 20.04 noong panahong iyon, at naging maayos naman ang buong proseso.

Pangunahing operasyon: I-configure ang prefix ng cache

Ang hakbang na ito ang kaluluwa ng buong konpigurasyon at ang susi upang maiwasan ang kalituhan sa datos.

Kailangan mong magdagdag ng natatanging prefix ng cache sa wp-config.php file sa root directory ng bawat website ng WordPress.

Buksan ang wp-config.php file ng unang website at hanapin ang linyang ito ng mga komento.

/* That's all, stop editing! Happy blogging. */

Sa industriyang itosa itaas,Idagdag sa

// 网站 A 的配置
define( 'WP_CACHE_KEY_SALT', 'site1_unique_string_' );

Pagkatapos ay buksan ang wp-config.php file sa pangalawang website at magdagdag ng katulad na configuration.

// 网站 B 的配置
define( 'WP_CACHE_KEY_SALT', 'site2_unique_string_' );

Sinasabi ko sa iyo, ang string na sumusunod sa WP_CACHE_KEY_SALT ay dapat...Talagang kakaibaOo. Iminumungkahi kong gamitin mo nang direkta ang domain name ng website o ang pagpapaikli nito, tulad ng site1_com_ o site2_net_.

Tinatamad ako at gumamit ng mga numero, pero pagkalipas ng tatlong buwan, tuluyan ko nang nakalimutan kung aling numero ang tumutugma sa kung anong website, at kinailangan ko silang hanapin isa-isa, na talagang nakakasakit ng ulo.

Isipin mo: Gumagana ang Memcached sa pamamagitan ng pag-iimbak at pagkuha ng data batay sa mga cache key. Kung magtatakda ka ng natatanging prefix para sa bawat website, natural na ihihiwalay ang kanilang data at hindi makakasagabal sa isa't isa.

Para itong pagbibigay sa bawat website ng sarili nitong locker. Bagama't nasa iisang kwarto lang sila, magkakaiba ang mga susi, kaya hindi magkakahalo ang data.

Paganahin ang pag-cache ng bagay

Pagkatapos i-configure ang prefix, ang susunod na hakbang ay paganahin ang WordPress na aktwal na gamitin ang Memcached.

May dalawang opsyon dito, at sinubukan ko na ang pareho. Bawat isa ay may kanya-kanyang bentaha.

Opsyon 1: Paraan ng pag-plugin (pinaka-walang problema)

Mag-log in sa WordPress admin panel at mag-install ng caching plugin na sumusuporta sa Memcached.

Inirerekomenda W3 Kabuuang CacheMaganda ang estabilidad. Pagkatapos ng pag-install, sa mga setting ng plugin, piliin ang Memcached bilang uri ng cache, ilagay ang 127.0.0.1 bilang address ng server, at ilagay ang default na port na 11211, pagkatapos ay i-save.

Kung gusto mo ng mas purong solusyon, maaari mo itong i-install nang direkta. Memcached Object Cache Ang plugin na ito ay partikular na idinisenyo para sa layuning ito; wala itong iba pang mga function.

Sa totoo lang, noong una ay inakala kong maganda ang paraan ng paggamit ng plugin, dahil maginhawa ito. Pero kalaunan ay natuklasan ko na ang ilang plugin ay may kasamang maraming feature na hindi ko naman kailangan, at lagi akong nag-aalala tungkol sa mga update, natatakot na bigla silang magdadagdag ng feature na makakasira sa aking configuration.

Opsyon 2: Manu-manong i-deploy ang object-cache.php (mas kontrolado)

Kung medyo perpeksyonista ka tulad ko at ayaw mong mag-install ng napakaraming plugin, maaari mong gamitin ang solusyon na ito.

I-download mula sa opisyal na imbakan ng plugin ng WordPress. Memcached Object Cache Ang plugin na ito, o maaari mong mahanap ang pinakabagong object-cache.php file sa GitHub. Pagkatapos, i-upload ang nakuha na object-cache.php file sa wp-content directory ng bawat website sa pamamagitan ng FTP o SSH.

Tandaan na ito ang root directory ng wp-content, hindi ang plugins subdirectory.

Pagkatapos mong idagdag ito, awtomatikong makikilala at ia-activate ng WordPress ang cache. Hindi mo na kailangang i-configure ang kahit ano, dahil babasahin nito ang WP_CACHE_KEY_SALT na itinakda mo kanina sa wp-config.php.

Gusto ko sanang makatipid ng oras, kaya ginamit ko ang solusyong ito dahil kontrolado ito. Kung may lumitaw na problema, alam ko kung saan hahanap ng solusyon, at hindi ako mabibigla sa mga awtomatikong pag-update ng plugin.

Tiyaking epektibo ang configuration.

Pagkatapos mong ihanda ang sample, tiyak na gugustuhin mong malaman kung ito ay matagumpay, tama ba?

Ang pinakasimpleng paraan ay ang pagsuri sa katayuan ng Memcached. Kumonekta gamit ang telnet o nc tools.

echo "stats" | nc 127.0.0.1 11211

Pagkatapos ay makakakita ka ng maraming estadistika. Bigyang-pansin ang mga halaga ng `cmd_set` at `get_hits`, at i-refresh ang pahina nang ilang beses upang makita kung tumataas ang mga ito. Kung tumataas, nangangahulugan ito na gumagana nang tama ang cache.

Isa pang mas madaling gamiting paraan para mapatunayan ito ay ang sabay na buksan ang parehong website at tingnan kung nakakasagabal ang mga ito sa isa't isa. Kung ang website A ay hindi nagpapakita ng nilalaman mula sa website B, nangangahulugan ito na gumagana ang prefix.

Gumawa ako ng mas mahigpit na pagsubok noong panahong iyon. Nagtakda ako ng iba't ibang transient values ​​sa dalawang magkaibang website at pagkatapos ay ginamit ang nc tool para direktang mag-query sa data sa Memcached. Nakakita nga ako ng dalawang key-value pairs na may magkaibang prefix, nang walang anumang kalituhan.

Sa sandaling iyon, pakiramdam ko talaga ay may nagawa akong isang bagay na dakila, at ang pag-iisip pa lamang tungkol dito ay nagpaparamdam sa akin ng kahanga-hangang pakiramdam.

Huwag balewalain ang mga isyu sa kaligtasan

Dahil lahat ng website ay gumagamit ng iisang Memcached instance, may panganib sa seguridad na dapat mong malaman.

Sa teorya, kung ang ibang mga gumagamit ay nasa server, maaari nilang basahin ang iyong naka-cache na data sa pamamagitan ng isang lokal na port. Bagama't nangangailangan ito ng isang tiyak na antas ng teknikal na kadalubhasaan, palaging mainam na maging maingat.

Samakatuwid, dapat mong tiyakin na gumagana nang maayos ang iyong Memcached. Huwag na huwag makinig sa mga pampublikong IP address.Sa configuration file na `/etc/memcached.conf`, tiyaking naroon ang linyang ito.

-l 127.0.0.1

Sa ganitong paraan, pakikinggan lamang ng Memcached ang lokal na loopback address at hindi ito maa-access mula sa labas.

Kung mayroon kang napakataas na mga kinakailangan sa seguridad, o kung ang iyong server ay nagho-host ng mga website na hindi komportable ang ibang mga gumagamit, iminumungkahi kong isaalang-alang mo ang paggamit... Redis Maaaring gamitin ang Redis bilang kapalit ng Memcached. Sinusuportahan nito ang multi-database isolation at password verification, na nag-aalok ng mas mahusay na seguridad.

Gayunpaman, ang Redis ay medyo mas kumplikado i-configure kaysa sa Memcached. Kung ginagamit mo lang ito para sa personal o maliit na layunin ng pangkat, ang Memcached na may 127.0.0.1 na limitasyon sa pakikinig ay sapat na.

Ilang mga patibong na naranasan

Bilang pangwakas, hayaan ninyong ibahagi ko ang ilang mga patibong na aking naranasan, sa pag-asang matulungan kayong maiwasan ang ilang mga paglihis.

Dapat na tugma ang bersyon ng extension ng PHP.Naranasan ko na dati ang isang sitwasyon kung saan in-install ko ang php-memcached extension, ngunit hindi ito nakilala ng WordPress. Kalaunan ay natuklasan ko na ito ay dahil sa hindi pagtutugma ng bersyon ng PHP. Siguraduhing maingat mong suriin ang bersyon ng iyong PHP kapag nag-i-install ng mga extension upang maiwasan ang maling pag-install.

Siguraduhing nakuha mo nang tama ang path ng object-cache.php file.Siguraduhing ilagay ito sa root directory ng wp-content, hindi sa plugins directory. Inilagay ito ng isang kaibigan ko sa maling lugar at matagal na niyang sinubukang ayusin ito ngunit hindi nagtagumpay.

Huwag gumamit ng masyadong maikli na string para sa prefix ng cache.Noong una ay gumamit ako ng a_ o b_, ngunit kalaunan ay natuklasan kong masyadong maikli ang mga ito at madaling magkabanggaan sa mga cache key ng WordPress. Dapat kang gumamit ng kahit man lang pitong o walong karakter na random na string o isang domain abbreviation.

Tandaang i-clear ang cache para sa parehong website.Minsan, isang website lang ang na-clear ko, pero napanatili pa rin ng kabilang website ang lumang data, kaya hindi pare-pareho ang nilalaman ng dalawang website. Matagal bago ko nalaman ang problema.

Sa totoo lang, hindi ko alam kung magiging kapaki-pakinabang ang mga karanasang ito sa lahat, pero ibinahagi ko ang mga ito nang walang pag-aalinlangan.

Sumulat sa dulo

Ang pag-configure ng Memcached para sa maraming site ay hindi teknikal na kumplikado; ang pangunahing isyu ay ang pag-configure ng prefix ng cache. Gayunpaman, ang problema ay nasa mga detalye. Ang mga isyu sa pagtutugma ng bersyon, mga path ng file, at mga configuration ng seguridad ay maaaring magdulot sa iyo ng malaking problema.

Halos isang taon ko nang ginagamit ang paraang ito, nagpapatakbo ng tatlong WordPress site, at sa ngayon ay wala pa akong nararanasang anumang malalaking problema. Kung gumagawa ka ng katulad nito, baka gusto mong subukan ito.

Siya nga pala, kung mayroon kang mas mainam na solusyon o nakatagpo ng anumang kawili-wiling mga problema, huwag mag-atubiling mag-iwan ng komento at ibahagi ang mga ito. Gusto kong matuto mula sa iyo.

Tutal, habang dumarami ang nakakaalam nito, mas kakaunti ang mahuhulog sa patibong, di ba?

Dahil nabasa mo na ito hanggang dito, kung nakatulong ito sa iyo, paki-like at share naman. Kung gusto mo munang makatanggap ng mga update, puwede mo rin akong sundan!

Salamat sa pagbabasa ng aking artikulo. Sa susunod na lang ulit.

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ Ang artikulong "Paano ibahagi ang Memcached sa maraming website ng WordPress sa iisang server? Ang pinakamahusay na gabay sa pag-configure upang maiwasan ang 100% na mga error" na ibinahagi rito ay maaaring makatulong sa iyo.

Maligayang pagdating upang ibahagi ang link ng artikulong ito:https://www.chenweiliang.com/cwl-34368.html

Upang i-unlock ang higit pang mga nakatagong trick🔑, maligayang pagdating sa aming Telegram channel!

Share and like kung nagustuhan mo! Ang iyong mga pagbabahagi at pag-like ay ang aming patuloy na pagganyak!

 

发表 评论

Ang iyong email address ay hindi maipa-publish. 必填 项 已 用 * Tatak

Mag-scroll sa Tuktok