php - SwiftMailer 'ErrorException' with message 'fopen(/tmp/...) failed to open stream: Permission denied' -
मैंने ईमेल usign मैंने मेजबान समर्थन से संपर्क किया था, उन्होंने कहा था कि मुझे बदलने की आवश्यकता है डिफ़ॉल्ट अस्थायी निर्देशिका। SwiftMailer पैकेज में मैं 1) .htaccess: 2) में 3) में लेकिन उन में से कोई भी फ़ाइल खोले जाने के कारण पथ बदलता है और कारण बनता है निम्न आपको यह जांचना है कि निर्देशिका को लिखने की कोशिश कर रही है निर्देशिका। आप यह सत्यापित कर सकते हैं कि कौन सी उपयोगकर्ता और समूह क्रियान्वित कर आपकी प्रक्रिया द्वारा उपयोग किया जाता है: यह आपको laravel एप पर एक
cpanel
साझा मेजबान ।
मेल वर्ग भेजते समय, निम्न त्रुटि बेतरतीब ढंग से होती है (कभी-कभी मेल भेजी जाती है लेकिन कभी-कभी त्रुटि आती है)
उत्पादन। सर्वर: अपवाद 'त्रुटि एक्स्पेक्शन' संदेश के साथ 'एफओपीएएन (/ टीएमपी / ई 19839 एफ 1 ए 2 डी 67 ए 4 बी 7 सी 83 ए 5951 सी 31 बीएफडी / बॉडी): स्ट्रीम को खोलने में असफल: अनुमति अस्वीकृत '/home/ekbatana/laravel4/vendor/swiftmailer/swiftmailer/lib/classes/swift/keycache/diskkeycache.php:300 में
lib / preferences.php एक चर बुलाया
$ tmp
getenv ( 'TMPDIR' पर सेट है ) और फ़ाइल में एक टिप्पणी का कहना है कि:
// आप टीएमपीडीआईआर परिवेश चर को सेट करके डिफ़ॉल्ट अस्थायी निर्देशिका को ओवरराइड कर सकते हैं।
स्थापित करने का प्रयास TMPDIR अलग अलग तरीकों से
setenv TMPDIR / घर / ... / laravel4 / ऐप्स / भंडारण / my_temp
एप्लिकेशन / से पहले / global.php और भी
अनुप्रयोग :: में शुरू कॉलबैक फ़ंक्शन का उपयोग कर
php putenv समारोह
lib / preferences.php से पहले लाइन है कि अस्थायी $ का उपयोग कर सेट किया गया है
php putenv < / Code> फ़ंक्शन
स्ट्रीम को खोलने में विफल: अनुमति अस्वीकृत त्रुटि
swiftmailer / lib / preferences.php
& lt;? Php / ******************** ************************************************** ******* / / * * / / * यदि आप संशोधित या निम्नलिखित लाइनों जो चूक * / / * * / / सेट निकाल करना चाह सकते हैं **************** ************************************************** ********** / $ प्राथमिकताओं = स्विफ्ट_Preferences :: getInstance (); // डिफ़ॉल्ट वर्णसेट सेट करता है ताकि सेटसेटसेट () की कहीं और की आवश्यकता नहीं है- preferences- & gt; setCharset ('utf-8'); // इन लाइनों के बिना डिफ़ॉल्ट कैशिंग तंत्र "सरणी" है लेकिन यह बहुत मेमोरी का उपयोग करता है // यदि संभव हो तो, बड़े अनुलग्नक आदि को सक्षम करने के लिए डिस्क कैश का उपयोग करें। // आप टीएमपीडीआईआर पर्यावरण चर सेट करके डिफ़ॉल्ट अस्थायी निर्देशिका को ओवरराइड कर सकते हैं। // is_writable कॉल के सामने @ ऑपरेटर PHP के चेतावनियों से बचने के लिए / जब open_basedir $ tmp = getenv ('TMPDIR') का प्रयोग किया जाता है; अगर ($ tmp & amp; amp;; _wr_writable ($ tmp)) {$ वरीयताएँ - & gt; सेटमेटडिम ($ tmp) - & gt; सेटकैचेटाइप ('डिस्क'); } अन्यथा (function_exists ('sys_get_temp_dir') और amp; @is_writable (sys_get_temp_dir ())) {$ वरीयताएँ - & gt; सेटटैंपडीर (sys_get_temp_dir ()) - & gt; सेटकैचेटाइप ('डिस्क'); } // यह केवल तभी किया जाना चाहिए जब स्विफ्टमैल्डर देशी क्यूपी सामग्री एन्कोडर का उपयोग नहीं करेगा // देखें mime_deps.php अगर (version_compare (phpversion (), '5.4.7', '& lt;')) {$ preferences- & gt ; setQPDotEscape (गलत); }
& lt;? Php echo getmyuid ()। ':'। ? & Gt;
उपयोगकर्ता: समूह जैसा कुछ देगा। तो फिर आप की जरूरत करने के लिए
chown निर्देशिका में लिखने के लिए के साथ:
chown आर उपयोगकर्ता: समूह writable_directory / < / html>
Comments
Post a Comment