2012-09-11 19 views
9

में नहीं, मैं स्टैक ओवरफ्लो और विचारों के लिए कई अन्य वेबसाइटों पर देख रहा हूं, लेकिन अभी तक कुछ भी काम नहीं किया है और मुझे और सीधी मदद की आवश्यकता है।PHP मेल() झूठी वापसी, लेकिन कमांड लाइन

मेरे पास एक समर्पित उबंटू सर्वर (9.04 जौंटी) है और मैं अपाचे 2 के साथ कई PHP वेबसाइट चला रहा हूं। मेरी समस्या यह है कि मेल() फ़ंक्शन ने काम करना बंद कर दिया है। कुछ समय पहले मैं अधिकांश ईमेल के लिए पीईआर मेल कतार का उपयोग कर रहा हूं, इसलिए मुझे यकीन नहीं है कि मेल() ने काम करना बंद कर दिया था, लेकिन मुझे अभी भी कुछ अन्य चीजों के बीच ओपनकार्ट सेटअप के लिए इसकी आवश्यकता है, लेकिन मेल() कोई फर्क नहीं पड़ता कि मैं क्या करता हूं इससे कोई फर्क नहीं पड़ता। यहां तक ​​कि इस सरल कोड काम करेंगे नहीं:

<?php 
mail('[email protected]','test','test'); 
?> 

तो, मैं php.ini में सेंडमेल-सेटिंग्स जो सभी की जाँच को देखकर किया गया है, और जब मैं कमांड लाइन में इस चलाने के लिए, यह ठीक काम करता है और मुझे एक ईमेल भेजता है:

# sendmail 
[email protected] 
test message 

तो मैंने सोचा कि यह अपने आप में एक php समस्या है जो हो सकता है, तो मैं निम्न आदेश का प्रयास करें:

# php -r "mail('[email protected]','test','test');" 

और यह भी बिना किसी समस्या के ईमेल भेजता है! तो यह क्या हो सकता है? मैंने सोचना शुरू कर दिया कि यह किसी प्रकार की अनुमति समस्या हो सकती है, शायद www-data में स्क्रिप्ट चलाने के साथ कुछ समस्याएं थीं। अभी भी इस बारे में निश्चित नहीं है, क्योंकि मैं इस स्क्रिप्ट को भी नहीं चला सकता:

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

यह भी झूठी वापसी करता है! मैं visudo आदेश चला और सिर्फ मामले में निम्न पंक्ति जोड़ दिया है:

www-data ALL=(ALL) ALL 

और मैं जड़ से फ़ाइलों के उपयोगकर्ता और समूह के मालिकों बदल दिया है: www-डेटा के लिए रूट: www-data लेकिन अभी भी कुछ भी नहीं!

मैं और क्या प्रयास कर सकता हूं? कुछ होना चाहिए! क्या कोई मेरी मदद कर सकता है?

+1

क्या आप मेल-मेल-त्रुटि-लॉग (/ var/log/mail या उस तरह कुछ) में त्रुटियों को देखते समय मेल का उपयोग करते समय कोई त्रुटि देख रहे हैं? –

+0

ड्रॉप 'मेल() '। I.e. 'PhpMailer' का उपयोग करें और इसे' एसएमटीपी 'के माध्यम से वितरित करें और आप सुरक्षित जमीन पर हैं। –

+0

'SYSERR (UID0) कहने वाली त्रुटियों में से बहुत कुछ हैं: आप कौन हैं ?: अनुमति अस्वीकृत' और कुछ जो rendAsUser और TrusedUser 'अज्ञात उपयोगकर्ता smmsp के साथ लाइन पर submit.cf फ़ाइल के बारे में शिकायत करते हैं: अनुमति अस्वीकृत' जहां smmsp दोनों पर सेट है। इसका मैं क्या करूँ? @ लुइस – user1663164

उत्तर

0

मुझे कुछ हफ्ते पहले एक ही समस्या थी। मैंने कोशिश की:

और कुछ अन्य।

मेरे पास त्रुटि लॉग में Segmentation fault कहने में प्रविष्टि थी। 2 दिनों के बाद एक समस्या मिली। मैंने अपने डेबियन सिस्टम पर एक्सिम 4 का इस्तेमाल किया, अपाचे 2 के साथ संयोजन ने सेगमेंटेशन गलती दी। मैंने एक्सिम 4 को पोस्टफिक्स के साथ बदल दिया और यह काम किया!

हालांकि, आपके मामले में आप whoami जैसे निष्पादन नहीं चला सकते हैं और आपको उस पथ का पीछा करना चाहिए।

क्योंकि मेल फ़ंक्शन अंततः ओएस पर आता है, इसलिए एक निष्पादन कमांड काम करना चाहिए!

+0

तो आप इसके बारे में क्या सुझाव देते हैं? PHP में इस तरह की अनुमतियों को नियंत्रित करता है? – user1663164

0

आप मेल() फ़ंक्शन का उपयोग करके phpMailer throw SMTP का उपयोग करके ईमेल भेज सकते हैं। कोड here(http://phpmailer.worxware.com/) है बस एक विचार

संभवतः इस extation opencart के लिए PHPMailer उपयोग करने के लिए मेल समारोह को बदलने के लिए उपयोग कर सकते हैं। मैंने इसका परीक्षण नहीं किया है, इसलिए उसने सोचा और सोचा कि यह किसी को कुछ विचार दे सकता है।

+0

ठीक नहीं, ओपनकार्ट मेल() - फ़ंक्शन का उपयोग करता है, इसलिए दुर्भाग्यवश, मुझे इसे काम करने की आवश्यकता है। अन्यथा मैं इस से बहुत परेशान नहीं होगा। – user1663164

+0

मैंने अपना जवाब अपडेट किया है ऐसा लगता है कि किसी ने phpmailer का उपयोग करने के लिए ओपन कार्ट के लिए एक विस्तार किया है, यह आपकी मदद नहीं कर सकता है, लेकिन यह किसी ऐसे व्यक्ति की मदद कर सकता है जिसके पास सर्वर तक ज्यादा पहुंच न हो। – Justin

2

कमांडलाइन और वेबसर्वर एक ही php.ini साझा नहीं करते हैं! जांचें कि कौन सी php.ini कमांडलाइन पर और सर्वर मॉड्यूल में उपयोग की जाती है।

+0

मैं यह कहां देख सकता हूं? – user1663164

+0

कभी नहीं, इसे मिला। लेकिन फाइलें काफी समान हैं, यह समस्या नहीं है। कोई अन्य विचार? – user1663164

+0

app php.ini को php.ini.bak पर सुरक्षित पक्ष पर रहने का प्रयास करें और cli php.ini की प्रतिलिपि बनाएँ और जांचें। यह देखने के लिए मुद्दे के अपने दायरे को कम कर देगा –

0

मेरे मामले में यह php-fpm मैगेंटो डॉकर छवि में उपयोग किया गया था जिसमें मैं खेल रहा था। यह php preloaded रखा गया (विन्यास के साथ)।

पुनरारंभ करने के बाद इसे नई सेटिंग्स उठाई गई: how to restart या बस sudo killall php-fpm

संबंधित मुद्दे