वर्डप्रेस मेरे एफ़टीपी क्रेडेंशियल को प्लग इन स्थापित करने के लिए कह रहा है


118

मैंने अपने स्थानीय सिस्टम में वर्डप्रेस ब्लॉग स्थापित किया है। लेकिन जब मैं व्यवस्थापक से प्लगइन्स जोड़ने की कोशिश करता हूं तो वह एफ़टीपी एक्सेस मांगता है। मुझे FTP के बिना अपलोड करने में सक्षम होने के लिए वर्डप्रेस को कॉन्फ़िगर करने की क्या आवश्यकता है?

जवाबों:


302

कोड को wp-config.php में जोड़ने का प्रयास करें:

define('FS_METHOD', 'direct');

29
मैं इस जवाब पर गुगली करते हुए लड़खड़ाता रहता हूँ, इसलिए मैं यहाँ अपने और दूसरों के लिए एक नोट पोस्ट करता हूँ: कोड wp-admin में है / / file.php शामिल है: get_filesystem_method। वर्डप्रेस एक फाइल बनाने की कोशिश करता है 'wp-content / temp-write-test -' time ()। यदि यह विफल हो जाता है तो यह मान लिया जाता है कि आप केवल FTP का उपयोग कर सकते हैं। लेकिन यह सच नहीं हो सकता है, अगर wp-content खुद ही लिखने योग्य नहीं है, लेकिन उदाहरण के लिए wp-content / plugins है। फिर, FS_METHOD मजबूर करता है।
सेबेस्टियन श्मिट

3
यह काम करता है, लेकिन समस्या यह है कि पैकेज को अनपैक करने के बाद त्रुटि होती है: "निर्देशिका नहीं बना सकता।"
एंड्रयू

3
इससे मुझे मदद मिली, लेकिन केवल इसलिए कि इसने विफलता के बारे में अधिक जानकारी उजागर की। मुख्य समस्या यह है कि अद्यतन करने वाले उपयोगकर्ता खाते के लिए लेखन अनुमति है। हर प्रकार की प्रणाली के लिए, यह अलग हो सकता है। (ध्यान दें कि नीचे दिए गए कुछ उत्तर आपको डेमॉन, या httpd, या अपाचे के लिए लिखने की अनुमति देने के लिए कहते हैं ...) इससे मुझे नीचे टिप्पणी से PHP स्निपेट देखने में मदद मिली (<? php इको (निष्पादन ("whoami")); ?>) ताकि मैं बता सकूं कि उपयोगकर्ता क्या अपडेट चला रहा है। यहाँ सुझाए गए बदलाव को केवल एफ़टीपी साख की चुनौती को दबा देना प्रतीत होता है ताकि मैं त्रुटि संदेश देख सकूं।
एजेंटव

मैं nginx का उपयोग कर रहा हूं, और अपाचे का नहीं। यह काफी स्पष्ट है कि पीएचपी-एफ पी एम करता है सही उपयोगकर्ता / समूह संयोजन का उपयोग करें (चाल @Aboozar rajabi द्वारा वर्णित का उपयोग कर); हालाँकि, किसी कारण से, WP जाँच विफल हो जाती है (लॉग पर कोई त्रुटि नहीं है)। इस सेटिंग का उपयोग करके मुझे 4.7 निर्दोष रूप से अपग्रेड करने की अनुमति है
ग्वेनेथ लेलेव्लिन

1
मैं वर्डप्रेस से पहले अन्य क्षेत्रों में देवोप कर रहा हूं, मेरा सबसे अच्छा अनुमान है कि FS_METHODयह छोटा है FILESYSTEM_METHOD। जब आप परिभाषित कर रहे हैं direct-ly फ़ाइलों को संशोधित - एफ़टीपी का उपयोग नहीं कर रहा है, तो आप वर्डप्रेस को सीधे साइट पर फ़ाइलों को बदलने और बदलने के लिए मजबूर कर रहे हैं।
डायलन पियर्स

40

यदि आप उबंटू का उपयोग कर रहे हैं।

sudo chown -R www-data:www-data PATH_TO_YOUR_WORDPRESS_FOLDER

7
-1 बुरा विचार यह करने के लिए, केवल wp-content का स्वामित्व www-dataयहां देखने के लिए होना चाहिए : codex.wordpress.org/Hardening_WordPress या यहाँ: stackoverflow.com/questions/18352682/…
timhc22

यह उत्तर त्रुटि को भी ठीक करता है "स्थापना विफल: वर्डप्रेस सामग्री निर्देशिका (wp-content) का पता लगाने में असमर्थ।" जब डैशबोर्ड से एक प्लगइन स्थापित करने की कोशिश कर रहा है।
विंडचाइम्स

25

"जब भी आप प्लगइन्स को स्वचालित रूप से इंस्टॉल, अपग्रेड या हटाने के लिए वर्डप्रेस कंट्रोल पैनल का उपयोग करते हैं, तो वर्डप्रेस को फाइल सिस्टम पर फाइलों में बदलाव करना चाहिए।

कोई भी परिवर्तन करने से पहले, वर्डप्रेस पहले यह देखने के लिए जाँच करता है कि फ़ाइल सिस्टम में सीधे हेरफेर करने के लिए उसकी पहुँच है या नहीं।

यदि वर्डप्रेस के पास सीधे फाइलसिस्टम को संशोधित करने की आवश्यक अनुमति नहीं है, तो आपको एफ़टीपी क्रेडेंशियल के लिए कहा जाएगा ताकि वर्डप्रेस एफटीपी के माध्यम से इसे करने की कोशिश कर सके। "

समाधान: यह जानने के लिए कि अपाचे का आपका उपयोगकर्ता किस रूप में चल रहा है, निम्न सामग्री के साथ एक परीक्षण स्क्रिप्ट बनाएं:

<?php echo(exec("whoami")); ?>

मेरे लिए, यह डेमॉन था न कि www-data। फिर, द्वारा अनुमति को ठीक करें:

sudo chown -R daemon /path/to/your/local/www/folder

3
निष्पादन () या इसी तरह के संवेदनशील कार्यों को अक्षम करने के लिए मत भूलना। उत्पादन में।
अरदा

2
बेहतर अभी भी उपयोग करने के लिए है <?php echo(exec("id")); ?>जो आपको उपयोगकर्ता आईडी से परे समूह डेटा भी प्रदान करेगा:uid=5018(web27) gid=5012(client7) groups=5012(client7),5002(sshusers)
Gwyneth Llewelyn

यदि आप सूदो और चांस ले सकते हैं whoamiतो आप एक ही जानकारी देख सकते हैं:sudo chown -R `whoami` /path/to/your/local/www/folder
बेंजी

11

OSX पर, मैंने निम्नलिखित का उपयोग किया, और इसने काम किया:

sudo chown -R _www:_www {path to wordpress folder}

_www वह उपयोगकर्ता है जो PHP मैक के तहत चलता है।

(आपको कुछ फ़ोल्डरों को भी चोदने की आवश्यकता हो सकती है। मैंने पहले ऐसा किया था और उसने इसे ठीक नहीं किया। यह तब तक नहीं था जब तक कि मैंने चाउन कमांड को काम नहीं किया था, इसलिए मुझे यकीन नहीं है कि यह चॉइस कमांड था। अकेले, या चामोद और चाउन का संयोजन।)


9

मैंने वर्डप्रेस फ़ोल्डर के स्वामित्व को www-डेटा के लिए पुनरावर्ती और पुनः आरंभ करने वाले एपाचे में बदल दिया।

sudo chown -R www-data:www-data <folderpath>

इसने एक जादू की तरह काम किया!


यह संभवतः अधिकांश लोगों के लिए सही उत्तर है। मुझे लगता है कि यह तीसरी बार है जब मैंने एक फोल्डर बनाया है और चांस देना भूल गया हूं।
MrMysterious2502

7

Google पर पहली हिट से :

वर्डप्रेस आपके एफ़टीपी क्रेडेंशियल के लिए पूछता है जब वह सीधे फ़ाइलों तक नहीं पहुंच सकता है। यह आमतौर पर PHP के कारण होता है जो अपाचे उपयोगकर्ता (mod_php या CGI) के रूप में चलता है, बजाय उस उपयोगकर्ता के जो आपकी वर्डप्रेस फाइलों का मालिक है।

यह सबसे साझा होस्टिंग वातावरण में सामान्य है - फ़ाइलें उपयोगकर्ता के रूप में संग्रहीत की जाती हैं, और अपाचे उपयोगकर्ता apacheया के रूप में चलता है httpd। यह वास्तव में एक अच्छा सुरक्षा एहतियात है इसलिए शोषण और हैक मेजबान फ़ाइलों को संशोधित नहीं कर सकते हैं। आप सभी WP फ़ाइलों को 777 सुरक्षा पर सेट करके इसे दरकिनार कर सकते हैं, लेकिन इसका मतलब है कि कोई सुरक्षा नहीं है, इसलिए मैं इसके खिलाफ अत्यधिक सलाह दूंगा। बस FTP का उपयोग करें, यह स्वचालित रूप से सलाह दी जाती है अच्छे कारण के साथ।


स्पष्टीकरण के लिए धन्यवाद। क्या PHP को सही उपयोगकर्ता के रूप में चलाने या मालिक या किसी अन्य समाधान को ठीक करने के लिए साझा किए गए सर्वर को कॉन्फ़िगर करने का एक तरीका है?
मैक्सवेल sc 12

4

पहले अपने इंस्टालेशन फोल्डर में जाएं (उदाहरण के लिए)

cd /Applications/XAMPP/xamppfiles/

अब हम आपकी htdocs निर्देशिका को संशोधित करने जा रहे हैं:

sudo chown -R daemon htdocs

संकेत दिए जाने पर अपना रूट पासवर्ड दर्ज करें, फिर इसे एक चामॉड कॉल के साथ समाप्त करें:

sudo chmod -R g+w htdocs

4

मैंने उबंटू 14.04 पर वर्डप्रेस का एक स्थानीय इंस्टॉलेशन किया था, जो यहां बताए गए चरणों का पालन कर रहा था और बस चल रहा था:

sudo chown -R www-data:www-data {path_to_your_project_directory}

प्लगइन्स डाउनलोड करने के साथ मेरी समस्या को हल किया। इस पद को छोड़ने का एकमात्र कारण यह है कि जब मैंने अपने मुद्दे को हल किया, तो यह पहले परिणामों में से एक था और इसने मुझे मेरी समस्या के समाधान के लिए प्रेरित किया।

आशा है कि यह किसी को भी मदद करता है!


3

हम एक बड़ी समस्या के हिस्से के रूप में एक ही समस्या थी। का हल सुझाया

define('FS_METHOD', 'direct');

उस विंडो को छुपाता है, लेकिन फिर भी हमारे पास लोडिंग थीम और अपग्रेड आदि की समस्याएं हैं। यह अनुमतियों से संबंधित है, लेकिन हमारे मामले में हमने php OS विक्रेता mod_php से अधिक सुरक्षित php OS विक्रेता FastCGI एप्लिकेशन पर ले जाकर समस्या को ठीक किया है ।


3

यदि एक प्लगइन की स्थापना के दौरान, Wordpress आपके होस्टनाम या एफ़टीपी विवरण के लिए पूछता है। तो इन चरणों का पालन करें:

अपने सर्वर पर लॉगिन करें और / var / www / html / वर्डप्रेस / पर नेविगेट करें । Wp-config.php खोलें और परिभाषित करने के बाद इस लाइन को जोड़ें ('DB_COLLATE')

define('FS_METHOD', 'direct');

यदि आपको "निर्देशिका नहीं बना सका" त्रुटि। अपने वर्डप्रेस निर्देशिका में लिखने की अनुमति पुनरावर्ती में दें

chmod -R go+w wordpress

ध्यान दें। सुरक्षा के लिए, एक प्लगइन स्थापित करने के बाद इन अनुमतियों को रद्द करें

chmod -R go-w wordpress

2

इस समस्या को हल करने का सबसे आसान तरीका आपके लिए निम्न एफ़टीपी जानकारी जोड़ना है wp-config.php

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');

FTP_BASE WordPress स्थापना के "आधार" (ABSPATH) फ़ोल्डर का पूर्ण पथ है FTP_CONTENT_DIR वर्डप्रेस इंस्टॉलेशन के wp-content फ़ोल्डर का पूर्ण पथ है। FTP_PLUGIN_DIR वर्डप्रेस इंस्टॉलेशन के प्लग इन फ़ोल्डर का पूर्ण पथ है।


एफ़टीपी सुरक्षित नहीं है और जैसे कि हम इसे अक्षम करते हैं, इसलिए इसका समाधान नहीं है। हम इसके बजाय SFTP का उपयोग करते हैं।
लारेंस कोप

1

जैसा कि नील्स ने उल्लेख किया है, ऐसा इसलिए होता है क्योंकि सर्वर प्रक्रिया उपयोगकर्ता वर्डप्रेस फ़ोल्डर में नहीं लिख सकता है।

लेकिन यहाँ बहुत सारे लेखों की व्याख्या नहीं है। यह php प्रक्रिया का स्वामी है, नगीनक्स प्रक्रिया का नहीं। यदि आप nginx के मालिक को बदलने की कोशिश करते हैं, तो यह इसका समाधान नहीं करेगा।

इसे हल करने के लिए, यह ps auxदेखने के लिए चलें कि कौन सा उपयोगकर्ता php-fpm प्रक्रिया का मालिक है। फिर जांच लें कि उपयोगकर्ता वही है जो वर्डप्रेस फ़ोल्डर का मालिक है, या कम से कम इसे लिख सकता है। यदि उपयोगकर्ता इसे नहीं लिख सकता है, तो आपको फ़ोल्डर की अनुमति और / या स्वामित्व बदलने की आवश्यकता होगी; या दो उपयोगकर्ताओं (सर्वर स्वामी और वर्डप्रेस फ़ोल्डर के मालिक) को एक सामान्य समूह में रखें, जो फ़ोल्डर में लिख सकता है; या php.ini "उपयोगकर्ता" गुण को उस उपयोगकर्ता को बदलें जो फ़ोल्डर में लिख सकता है।


1

इस सवाल पर बहुत सी समान प्रतिक्रियाएं हैं, लेकिन उनमें से कोई भी पूरी तरह से मूल कारण को नहीं छूता है। मूल पोस्ट पर सेबस्टियन श्मिड की टिप्पणी उस पर स्पर्श करती है लेकिन पूरी तरह से नहीं। यहाँ मेरा 2018-11-06 तक का समय है:

मूल कारण

जब आप WordPress व्यवस्थापक इंटरफ़ेस के माध्यम से एक प्लगइन अपलोड करने की कोशिश, वर्डप्रेस "get_filesystem_method ()" एक समारोह कहा जाता है (: रेफरी के लिए खत्म हो एक फोन करना होगा /wp-admin/includes/file.php:1549 )। यह दिनचर्या प्रश्न में स्थान के लिए एक फ़ाइल लिखने का प्रयास करेगी (इस मामले में प्लगइन निर्देशिका)। यह निश्चित रूप से यहां विफल हो सकता है अगर फ़ाइल अनुमतियों को वर्डप्रेस उपयोगकर्ता को अनुमति देने के लिए सेटअप अधिकार नहीं है (सोचें कि उपयोगकर्ता की पहचान php निष्पादित करें) फ़ाइल को प्रश्न में स्थान पर लिखने के लिए।

यदि फ़ाइल बनाई जा सकती है, तो यह फ़ंक्शन तब अस्थायी फ़ाइल के फ़ाइल स्वामी का पता लगाता है, साथ ही फ़ंक्शन की वर्तमान फ़ाइल के फ़ाइल स्वामी (रेफरी: /wp-admin/includes/file.php:1572 ) और दोनों की तुलना करता है। यदि वे तब मेल खाते हैं, तो वर्डप्रेस के शब्दों में, "वर्डप्रेस फ़ाइलों के रूप में एक ही मालिक के रूप में वर्डप्रेस बना रहा है, इसका मतलब यह है कि PHP के माध्यम से नई फ़ाइलों को संशोधित करना और बनाना सुरक्षित है" और आपका प्लगइन एफ़टीपी क्रेडेंशियल प्रॉम्प्ट के बिना सफलतापूर्वक अपलोड किया गया है। यदि वे मेल नहीं खाते हैं, तो आपको एफ़टीपी क्रेडेंशियल शीघ्र मिलता है।

ठीक करता है

  1. सुनिश्चित करें कि प्लगइन निर्देशिका आपकी php प्रक्रिया को चलाने वाली पहचान से योग्य है।
  2. पहचान सुनिश्चित करें कि आपकी php प्रक्रिया चल रही है या तो फ़ाइल स्वामी है:

    क) सभी वर्डप्रेस एप्लिकेशन फाइलें, या ...
    बी) बहुत कम से कम /wp-admin/includes/file.php फ़ाइल पर

अंतिम टिप्पणियाँ

मैं विशेष रूप से इस मुद्दे के आसपास काम करने के लिए file.php पर फ़ाइल स्वामित्व लागू करने के लिए उत्सुक नहीं हूँ (यह कम से कम कहने के लिए एक बालक हैकी लगता है!)। यह इस बिंदु पर मुझे लगता है कि वर्डप्रेस कोड आधार हमें उसी उपयोगकर्ता प्रिंसिपल के तहत PHP प्रक्रिया को निष्पादित करने की दिशा में झुकाव कर रहा है जो वर्डप्रेस एप्लिकेशन फ़ाइलों के लिए फ़ाइल स्वामी के रूप में है। मैं इस पर समुदाय की कुछ टिप्पणियों का स्वागत करूंगा।


1

मैं उसी समस्या का सामना कर रहा था! मैंने नीचे wp-config.php फ़ाइल (किसी भी लाइन में) कोड जोड़ा है और यह अब काम कर रहा है!

define('FS_METHOD', 'direct');
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.