लेख निर्देशिका
एउटा सर्भरले धेरै चलाउँदैWordPressवेबसाइट, साझा गरिएकोमेमेच गरिएकोके यसले डेटा ओभरराइटिङ वा क्रसटलक समस्याहरू निम्त्याउन सक्छ?
यस लेखले छुट्टै क्यास उपसर्ग (WP_CACHE_KEY_SALT) र वस्तु क्यास स्क्रिप्टहरू कन्फिगर गरेर विभिन्न साइटहरूमा ट्रान्जियन्ट र वस्तु क्यास डेटालाई कसरी पूर्ण रूपमा अलग गर्ने भन्ने बारे चरण-दर-चरण गाइड प्रदान गर्दछ।
१००% ले डेटा द्वन्द्वहरू हटाउँछ, धेरै साइटहरूलाई एकै साथ परम मेमोरी-स्तरको त्वरण अनुभवको आनन्द लिन अनुमति दिन्छ, र उत्पादन वातावरणमा हुने जोखिमहरू रोक्न सुरक्षा सुझावहरू समावेश गर्दछ!
केही दिन अघि, एक जना साथीले मलाई उसको सर्भरमा चलिरहेका तीनवटा WordPress वेबसाइटहरूको बारेमा सोधे। उसले Memcached लाई गति दिन कन्फिगर गर्न चाहन्थ्यो, तर उसलाई चिन्ता थियो कि डाटा गडबड हुनेछ।
त्यो क्षण म हाँसे किनभने म आफैं यो पासोमा परेको थिएँ।

इमानदारीपूर्वक भन्नुपर्दा, मेमक्याच्ड एउटै साइटको लागि सेटअप गर्न अविश्वसनीय रूपमा सजिलो छ, तर धेरै साइटहरू सहअस्तित्वमा हुँदा यो रोचक हुन्छ। किन?
पूर्वनिर्धारित रूपमा, मेमक्याच्डले सबै वेबसाइटहरूको ट्रान्जियन्ट र वस्तु क्यासहरूलाई एउटै पूलमा राख्छ। कल्पना गर्नुहोस् यदि वेबसाइटहरू A र B ले एउटै क्यास कुञ्जी प्रयोग गर्छन् भने - त्यसले अराजकता निम्त्याउँछ। A को डेटाले B लाई सिधै ओभरराइट गर्नेछ, र दुई वेबसाइटहरूले एकअर्काको डेटामा "हस्तक्षेप" गर्न थाल्नेछन्।
मैले भेटेको कुरा अझ रमाइलो थियो, एउटाई-वाणिज्यवेबसाइटको उत्पादन विवरण पृष्ठमा अर्को ब्लग साइटबाट लेख सामग्री प्रदर्शन गरिएको थियो। म छक्क परें र सोचें, "यो के हो???"
यो पत्ता लगाउन मलाई पूरा रात लाग्यो; यो क्यास कुञ्जी द्वन्द्व रहेछ भन्ने कुरा पत्ता लाग्यो।
त्यसैले आज म मेरो कन्फिगरेसन विधि साझा गर्दैछु, आशा छ कि यसले समान आवश्यकता भएका साथीहरूलाई मद्दत गर्न सक्छ। म अझै पनि यसलाई आफैं अन्वेषण गरिरहेको छु, र मेरा केही विचारहरू पूर्ण रूपमा विकसित नभएको हुन सक्छ, तर यो विधिले मेरो लागि राम्रो काम गरेको छ।
सर्भर वातावरण तयारी
वर्डप्रेस कन्फिगर गर्न सुरु गर्नु अघि, तपाईंले सर्भरमा मेमक्याच गरिएको सेवा र PHP मेमक्याच गरिएको एक्सटेन्सन स्थापना भएको सुनिश्चित गर्नुपर्छ।
HestiaCP मा Memcached कसरी स्थापना गर्ने?
उबुन्टुलाई उदाहरणको रूपमा लिँदा, यसमा केवल तीन लाइनका आदेशहरू समावेश छन्।
sudo apt update
sudo apt install memcached php-memcached
sudo systemctl restart php8.x-fpm # 根据你的 PHP 版本改स्थापना पछि, मेमक्याच गरिएको सेवा चलिरहेको छ कि छैन जाँच गर्न नबिर्सनुहोस्।
sudo systemctl status memcachedयदि तपाईंले "सक्रिय (चलिरहेको)" देख्नुभयो भने, यसको अर्थ कुनै समस्या छैन।
कृपया ध्यान दिनुहोस् कि प्याकेज नामहरू विभिन्न प्रणालीहरूमा फरक हुन सक्छन्। यो आदेश सामान्यतया डेबियन प्रणालीहरूमा प्रयोग गरिन्छ। यदि... CentOS अन्य वितरणहरूको लागि, तपाईंले तिनीहरूलाई स्थापना गर्न yum वा dnf प्रयोग गर्नुपर्ने हुन सक्छ।
म त्यतिबेला उबुन्टु २०.०४ प्रयोग गरिरहेको थिएँ, र सम्पूर्ण प्रक्रिया एकदमै सहज रूपमा चल्यो।
मुख्य सञ्चालन: क्यास उपसर्ग कन्फिगर गर्नुहोस्
यो चरण सम्पूर्ण कन्फिगरेसनको आत्मा हो र डेटा भ्रम रोक्नको लागि महत्वपूर्ण छ।
तपाईंले प्रत्येक WordPress वेबसाइटको रूट डाइरेक्टरीमा रहेको wp-config.php फाइलमा एउटा अद्वितीय क्यास उपसर्ग थप्नु पर्छ।
पहिलो वेबसाइटको wp-config.php फाइल खोल्नुहोस् र टिप्पणीहरूको यो लाइन फेला पार्नुहोस्।
/* That's all, stop editing! Happy blogging. */यस उद्योगमा上方,मा थप्नुहोस्
// 网站 A 的配置
define( 'WP_CACHE_KEY_SALT', 'site1_unique_string_' );त्यसपछि दोस्रो वेबसाइटमा wp-config.php फाइल खोल्नुहोस् र त्यस्तै कन्फिगरेसन थप्नुहोस्।
// 网站 B 的配置
define( 'WP_CACHE_KEY_SALT', 'site2_unique_string_' );म तपाईंलाई भन्दै छु, WP_CACHE_KEY_SALT पछि आउने स्ट्रिङ... हुनुपर्छ।एकदमै अद्वितीयहो। म तपाईंलाई वेबसाइटको डोमेन नाम वा यसको संक्षिप्त नाम सिधै प्रयोग गर्न सुझाव दिन्छु, जस्तै site1_com_ वा site2_net_।
म अल्छी थिएँ र नम्बरहरू प्रयोग गर्थें, तर तीन महिना पछि मैले कुन नम्बर कुन वेबसाइटसँग मेल खान्छ भनेर पूर्ण रूपमा बिर्सिएँ, र मैले तिनीहरूलाई एक-एक गरेर हेर्नु पर्यो, जुन साँच्चै टाउको दुखाइ थियो।
यसको बारेमा सोच्नुहोस्: मेमक्याचले क्यास कुञ्जीहरूमा आधारित डेटा भण्डारण र पुन: प्राप्त गरेर काम गर्दछ। यदि तपाईंले प्रत्येक वेबसाइटको लागि एक अद्वितीय उपसर्ग सेट गर्नुभयो भने, तिनीहरूको डेटा स्वाभाविक रूपमा अलग हुनेछ र एकअर्कासँग हस्तक्षेप गर्नेछैन।
यो प्रत्येक वेबसाइटलाई आफ्नै लकर दिनु जस्तै हो। यद्यपि तिनीहरू सबै एउटै कोठामा छन्, कुञ्जीहरू फरक छन्, त्यसैले डेटा मिसिने छैन।
वस्तु क्यासिङ सक्षम गर्नुहोस्
उपसर्ग कन्फिगर गरेपछि, अर्को चरण भनेको WordPress लाई वास्तवमा Memcached प्रयोग गर्न सक्षम पार्नु हो।
यहाँ दुई विकल्पहरू छन्, र मैले दुवै प्रयास गरेको छु। प्रत्येकका आफ्नै फाइदाहरू छन्।
विकल्प १: प्लगइन विधि (सबैभन्दा झन्झटमुक्त)
WordPress एडमिन प्यानलमा लग इन गर्नुहोस् र Memcached लाई समर्थन गर्ने क्यासिङ प्लगइन स्थापना गर्नुहोस्।
सिफारिस गरिएको W3 कुल क्यासस्थिरता राम्रो छ। स्थापना पछि, प्लगइन सेटिंग्समा, क्यास प्रकारको रूपमा मेमक्याच्ड चयन गर्नुहोस्, सर्भर ठेगानाको रूपमा १२७.०.०.१ प्रविष्ट गर्नुहोस्, र पूर्वनिर्धारित पोर्ट ११२११ प्रविष्ट गर्नुहोस्, त्यसपछि बचत गर्नुहोस्।
यदि तपाईं शुद्ध समाधान चाहनुहुन्छ भने, तपाईं यसलाई सिधै स्थापना गर्न सक्नुहुन्छ। मेमक्यास गरिएको वस्तु क्यास यो प्लगइन विशेष गरी यसै उद्देश्यका लागि डिजाइन गरिएको हो; यसमा अन्य कुनै विविध प्रकार्यहरू छैनन्।
इमान्दारीपूर्वक भन्नुपर्दा, मैले सुरुमा प्लगइनको दृष्टिकोण एकदमै राम्रो ठानेको थिएँ, किनकि यो सुविधाजनक छ। तर पछि मैले थाहा पाएँ कि केही प्लगइनहरूमा मलाई नचाहिने धेरै सुविधाहरू हुन्छन्, र म सधैं अपडेटहरूको बारेमा चिन्तित हुन्छु, डर लाग्छ कि तिनीहरूले अचानक मेरो कन्फिगरेसनलाई बिगार्ने केही सुविधा थप्नेछन्।
विकल्प २: object-cache.php लाई म्यानुअली डिप्लोय गर्नुहोस् (अधिक नियन्त्रणयोग्य)
यदि तपाईं म जस्तै अलिकति पूर्णतावादी हुनुहुन्छ र धेरै प्लगइनहरू स्थापना गर्न चाहनुहुन्न भने, तपाईं यो समाधान प्रयोग गर्न सक्नुहुन्छ।
आधिकारिक वर्डप्रेस प्लगइन भण्डारबाट डाउनलोड गर्नुहोस्। मेमक्यास गरिएको वस्तु क्यास यो प्लगइन, वा तपाईंले GitHub मा पछिल्लो object-cache.php फाइल फेला पार्न सक्नुहुन्छ। त्यसपछि, निकालिएको object-cache.php फाइल FTP वा SSH मार्फत प्रत्येक वेबसाइटको wp-सामग्री निर्देशिकामा अपलोड गर्नुहोस्।
ध्यान दिनुहोस् कि यो wp-content को मूल निर्देशिका हो, plugins उपनिर्देशिका होइन।
तपाईंले यसलाई थपेपछि, WordPress ले स्वचालित रूपमा क्यास पहिचान गर्नेछ र सक्रिय गर्नेछ। तपाईंले केहि पनि कन्फिगर गर्नु पर्दैन, किनकि यसले तपाईंले पहिले wp-config.php मा सेट गर्नुभएको WP_CACHE_KEY_SALT पढ्नेछ।
म समय बचत गर्न चाहन्थें, त्यसैले मैले यो समाधान मुख्यतया नियन्त्रणयोग्य भएकोले प्रयोग गरें। यदि कुनै समस्या आयो भने, मलाई समाधान कहाँ खोज्ने भनेर थाहा छ, र म स्वचालित प्लगइन अपडेटहरूबाट अलमलिने छैन।
कन्फिगरेसन प्रभावकारी छ भनी प्रमाणित गर्नुहोस्।
नमुना तयार गरिसकेपछि, तपाईं पक्कै पनि जान्न चाहनुहुन्छ कि यो सफल भयो कि भएन, हैन?
सबैभन्दा सरल तरिका भनेको Memcached को स्थिति जाँच गर्नु हो। टेलनेट वा nc उपकरणहरू प्रयोग गरेर जडान गर्नुहोस्।
echo "stats" | nc 127.0.0.1 11211त्यसपछि तपाईंले धेरै तथ्याङ्कहरू देख्नुहुनेछ। `cmd_set` र `get_hits` को मानहरूमा विशेष ध्यान दिनुहोस्, र तिनीहरू बढ्दै छन् कि छैनन् भनेर हेर्न पृष्ठलाई केही पटक रिफ्रेस गर्नुहोस्। यदि तिनीहरू बढ्दै छन् भने, यसको अर्थ क्यास सही रूपमा काम गरिरहेको छ।
यसलाई प्रमाणित गर्ने अर्को सहज तरिका भनेको दुबै वेबसाइटहरू एकैसाथ खोल्नु र तिनीहरूले एकअर्कालाई हस्तक्षेप गर्छन् कि गर्दैनन् भनेर हेर्नु हो। यदि वेबसाइट A ले वेबसाइट B बाट सामग्री प्रदर्शन गर्दैन भने, यसको मूल अर्थ उपसर्ग काम गरिरहेको छ भन्ने हो।
त्यतिबेला मैले अझ कडा परीक्षण गरें। मैले दुई फरक वेबसाइटहरूमा फरक-फरक ट्रान्जियन्ट मानहरू सेट गरें र त्यसपछि मेमक्याच्डमा डेटा सिधै क्वेरी गर्न nc उपकरण प्रयोग गरें। मैले वास्तवमा फरक-फरक उपसर्गहरू भएका दुई कुञ्जी-मान जोडीहरू देख्न सक्थें, कुनै पनि भ्रम बिना।
त्यो क्षणमा, मलाई साँच्चै महसुस भयो कि मैले केही ठूलो उपलब्धि हासिल गरेको छु, र यसको बारेमा सोच्दा मात्र पनि मलाई अद्भुत महसुस हुन्छ।
सुरक्षा मुद्दाहरूलाई बेवास्ता नगर्नुहोस्
सबै वेबसाइटहरूले एउटै मेमक्याच गरिएको उदाहरण साझा गर्ने भएकोले, त्यहाँ एउटा सुरक्षा जोखिम छ जुन तपाईंले सचेत हुनुपर्छ।
सिद्धान्ततः, यदि अन्य प्रयोगकर्ताहरू सर्भरमा छन् भने, तिनीहरूले स्थानीय पोर्ट मार्फत तपाईंको क्यास गरिएको डाटा पढ्न सक्छन्। यद्यपि यसका लागि निश्चित स्तरको प्राविधिक विशेषज्ञता चाहिन्छ, सतर्क रहनु सधैं बुद्धिमानी हुन्छ।
त्यसकारण, तपाईंले आफ्नो मेमक्याच्डले राम्रोसँग काम गरिरहेको छ भनी सुनिश्चित गर्नुपर्छ। सार्वजनिक IP ठेगानाहरू कहिल्यै नसुन्नुहोस्।`/etc/memcached.conf` कन्फिगरेसन फाइलमा, यो लाइन अवस्थित छ भनी सुनिश्चित गर्नुहोस्।
-l 127.0.0.1यस तरिकाले, मेमक्याचले स्थानीय लुपब्याक ठेगाना मात्र सुन्नेछ र बाहिरबाट पहुँचयोग्य हुनेछैन।
यदि तपाईंसँग अत्यन्तै उच्च सुरक्षा आवश्यकताहरू छन्, वा यदि तपाईंको सर्भरले अन्य प्रयोगकर्ताहरूलाई सहज नभएका वेबसाइटहरू होस्ट गर्छ भने, म तपाईंलाई ... प्रयोग गर्ने विचार गर्न सुझाव दिन्छु। Redis रेडिसलाई मेमक्याच्डको प्रतिस्थापनको रूपमा प्रयोग गर्न सकिन्छ। यसले बहु-डाटाबेस आइसोलेसन र पासवर्ड प्रमाणीकरणलाई समर्थन गर्दछ, जसले उल्लेखनीय रूपमा राम्रो सुरक्षा प्रदान गर्दछ।
यद्यपि, रेडिस मेमक्याच भन्दा कन्फिगर गर्न अलि जटिल छ। यदि तपाईं यसलाई व्यक्तिगत वा सानो टोली उद्देश्यका लागि मात्र प्रयोग गर्दै हुनुहुन्छ भने, १२७.०.०.१ सुन्ने सीमा भएको मेमक्याच मूलतः पर्याप्त छ।
केही समस्याहरू सामना गरियो
अन्तमा, म तपाईंलाई केही घुमाउरो बाटोबाट बच्न मद्दत गर्ने आशामा, मैले सामना गरेका केही समस्याहरू साझा गर्न चाहन्छु।
PHP एक्सटेन्सन संस्करण उपयुक्त हुनुपर्छ।मैले पहिले php-memcached एक्सटेन्सन स्थापना गर्ने परिस्थितिको सामना गरेको थिएँ, तर WordPress ले यसलाई पहिचान गरेन। मैले पछि पत्ता लगाएँ कि यो PHP संस्करण बेमेलको कारणले भएको हो। गलत स्थापनाबाट बच्नको लागि एक्सटेन्सनहरू स्थापना गर्दा आफ्नो PHP संस्करण ध्यानपूर्वक जाँच गर्नुहोस्।
object-cache.php फाइलको मार्ग सही तरिकाले प्राप्त गर्नुहोस्।यसलाई wp-content को रूट डाइरेक्टरीमा राख्न निश्चित गर्नुहोस्, plugins डाइरेक्टरीमा होइन। मेरो एक साथीले यसलाई गलत ठाउँमा राख्यो र धेरै वर्षसम्म यसलाई ठीक गर्ने प्रयास गर्दा पनि सफलता मिलेन।
क्यास उपसर्गको लागि धेरै छोटो स्ट्रिङ प्रयोग नगर्नुहोस्।मैले सुरुमा a_ वा b_ प्रयोग गरेको थिएँ, तर पछि थाहा पाएँ कि तिनीहरू धेरै छोटो थिए र WordPress को आफ्नै क्यास कुञ्जीहरूसँग सजिलै टकराव हुन्थे। तपाईंले कम्तिमा सात वा आठ-वर्णको अनियमित स्ट्रिङ वा डोमेन संक्षिप्त नाम प्रयोग गर्नुपर्छ।
दुबै वेबसाइटहरूको क्यास खाली गर्न नबिर्सनुहोस्।एक पटक, मैले एउटा वेबसाइटको क्यास मात्र खाली गरें, तर अर्को वेबसाइटले अझै पनि पुरानो डाटा कायम राख्यो, जसले गर्दा दुई वेबसाइटहरूको सामग्री असंगत थियो। समस्या पत्ता लगाउन मलाई धेरै समय लाग्यो।
इमानदारीपूर्वक भन्नुपर्दा, मलाई थाहा छैन कि यी अनुभवहरू सबैका लागि उपयोगी हुनेछन् कि छैनन्, तर मैले बिना कुनै हिचकिचाहट ती अनुभवहरू साझा गरेको छु।
अन्तमा लेख्नुहोस्
धेरै साइटहरूको लागि मेमक्याच कन्फिगर गर्नु प्राविधिक रूपमा जटिल छैन; मुख्य समस्या क्यास उपसर्ग कन्फिगर गर्नु हो। यद्यपि, शैतान विवरणहरूमा छ। संस्करण मिलान, फाइल मार्गहरू, र सुरक्षा कन्फिगरेसनहरूसँग समस्याहरूले तपाईंलाई धेरै समस्या निम्त्याउन सक्छ।
म लगभग एक वर्षदेखि यो विधि प्रयोग गर्दै आएको छु, तीनवटा WordPress साइटहरू चलाउँदै छु, र अहिलेसम्म मैले कुनै ठूलो समस्याको सामना गरेको छैन। यदि तपाईं पनि यस्तै केही गर्दै हुनुहुन्छ भने, तपाईंले यसलाई प्रयास गर्न सक्नुहुन्छ।
खैर, यदि तपाईंसँग कुनै राम्रो समाधान छ वा कुनै रोचक समस्याहरू सामना गर्नुभएको छ भने, टिप्पणी छोड्न र साझा गर्न नहिचकिचाउनुहोस्। म तपाईंबाट सिक्न चाहन्छु।
आखिर, जति धेरै मानिसहरूलाई यसको बारेमा थाहा हुन्छ, त्यति नै कम मानिसहरू पासोमा पर्नेछन्, हैन र?
तपाईंले यहाँसम्म पढिसक्नुभएको हुनाले, यदि तपाईंलाई यो उपयोगी लाग्यो भने, कृपया यसलाई लाइक र सेयर गर्नुहोस्। यदि तपाईं पहिले अपडेटहरू प्राप्त गर्न चाहनुहुन्छ भने, तपाईं मलाई फलो पनि गर्न सक्नुहुन्छ!
मेरो लेख पढ्नुभएकोमा धन्यवाद। अर्को पटक भेटौँला।
आशा चेन वेइलियाङ ब्लग ( https://www.chenweiliang.com/ यहाँ साझा गरिएको "एउटै सर्भरमा धेरै WordPress वेबसाइटहरूसँग मेमक्याच कसरी साझा गर्ने? १००% त्रुटिहरू रोक्नको लागि अन्तिम कन्फिगरेसन गाइड" लेख तपाईंको लागि उपयोगी हुन सक्छ।
यस लेखको लिङ्क साझा गर्न स्वागत छ:https://www.chenweiliang.com/cwl-34368.html
