2011-06-04 17 views
11

मैंyii php ढांचा "अनुप्रयोग रनटाइम पथ मान्य नहीं है।" अपवाद

/var/www/html/yii/framework/yiic webapp demo 

को क्रियान्वित करते हुए परीक्षण के लिए एक Yii परियोजना करने की कोशिश की और मैं एन त्रुटि मिलती है जब मैं स्थानीय होस्ट/डेमो पर जाएँ:

Application runtime path "/var/www/html/demo/protected/runtime" is not valid. 
Please make sure it is a directory writable by the Web server process. 

पहले मैंने सोचा था कि यह वास्तव में isn पर ' टी लिखने योग्य तो मैंने किया:

chmod 777 /var/www/html/demo/protected/runtime 

पिछले विचार मैं निष्पादित के रूप में इतना काम नहीं किया:

chmod 777 -R /var/www/html/demo/ 

और मुझे अभी भी एक ही अपवाद मिलता है। क्या गलत हो सकता है पर कोई विचार?

--- संपादित करें ---

एफएफएस यह मेरे पागल

drwxrwxrwx. 4 apache apache 4096 Jun 5 00:06 commands 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 components 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 config 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 controllers 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 data 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 extensions 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 messages 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 migrations 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 models 
drwxrwxrwx. 3 apache apache 4096 Jun 5 00:06 runtime 
drwxrwxrwx. 7 apache apache 4096 Jun 5 00:06 tests 
drwxrwxrwx. 5 apache apache 4096 Jun 5 00:06 views 
-rwxrwxrwx. 1 apache apache 71 Jun 5 00:02 yiic 
-rwxrwxrwx. 1 apache apache 380 Jun 5 00:02 yiic.bat 
-rwxrwxrwx. 1 apache apache 178 Jun 5 00:02 yiic.php 

ड्राइव और मैं अभी भी नहीं PHP स्क्रिप्ट

उत्तर

6

ऐसा लगता है कि आपके पास SELinux चालू हो सकता है, जो इसकी अपनी सुरक्षा नीतियों को लागू करता है और वेब ऐप्स के लिए वास्तविक दर्द हो सकता है और जब यह समाप्त होता है तो बहुत परेशान होता है जिसके परिणामस्वरूप त्रुटियां होती हैं। जब भी आपको फंकी अनुमति समस्याएं हों, तो यह जांचना एक अच्छा विचार है कि आपने इसे सेट किया है या नहीं: /usr/sbin/getenforce (या इसी तरह, आप किस सिस्टम पर हैं) के आधार पर।

देखें: http://www.crypt.gen.nz/selinux/disable_selinux.html एक अच्छा अवलोकन के लिए और इसे कैसे बंद करें (फिर से, विवरण आपके ओएस/कर्नेल संस्करण के आधार पर भिन्न हो सकते हैं)। यदि यह एक परीक्षण मशीन है जो सार्वजनिक रूप से सुलभ नहीं है, तो आप इसे सुरक्षित रूप से बंद कर सकते हैं, अन्यथा, आपको यह समझने के लिए ऊपर दी गई साइट को पढ़ना चाहिए कि यह क्या करता है। अधिकांश लिनक्स पैकेज प्रबंधक विशिष्ट ऐप्स के लिए नीतियों का प्रबंधन करने में आपकी सहायता के लिए फ़ाइलों को इंस्टॉल कर सकते हैं। आरएच/सेंटोस पर, आप इसे चालू/बंद करने के लिए /usr/bin/system-config-securitylevel-tui का भी उपयोग कर सकते हैं।

+0

धन्यवाद। SELinux समस्या थी: डी –

23

कि चाहिए काम में से फ़ाइलों को लिख सकते हैं .. तो शायद /runtime के मालिक के रूप में अपने अपाचे उपयोगकर्ता (आमतौर पर 'www-data') को सेट करने का प्रयास करें? कुछ ऐसा:

chown -R www-data:www-data /var/www/html/demo/protected/runtime 

अपाचे umask समस्या भी हो सकती है। Yii मंच है, जो इस तरह उपयोगी पोस्ट की जाँच करें: http://www.yiiframework.com/forum/index.php?/topic/19400-question-about-directoryfile-permissions/

आप 777 करने के लिए अपने पूरी परियोजना स्थापित करने के लिए नहीं होना चाहिए, यह बहुत असुरक्षित है। मुझे लगता है कि /assets और /protected/runtime केवल उन्हीं निर्देशिका हैं जिन्हें लेखन अनुमतियां (775) की आवश्यकता है।

+0

अब भी वही जोड़ने इस आदेश को चलाते हैं। –

5

आपने chmod कमांड के लिए गलत वाक्यविन्यास दर्ज किया है। इसे आज़माएं:

sudo chmod -R 777 ./var/www/* 

जब आप संकेत देंगे तो एक पासवर्ड दर्ज करें।

महत्वपूर्ण सूचना:

कमांड लाइन के अंत में तारा चिह्न बहुत महत्वपूर्ण है। इसका मतलब वर्तमान निर्देशिका में सभी फाइलें हैं।

1

आप इस जो अपने सर्वर, कि मेरे लिए काम करता पर फिर से 'क्रम' फ़ोल्डर अपलोड करने के लिए निर्देशिका

# semanage fcontext -a -t httpd_sys_rw_content_t 'YOUR_PATH_HERE' 
# restorecon -v 'YOUR_PATH_HERE' 
0

कोशिश करने के लिए php-एफ पी एम लेखन पहुँच की अनुमति देने की तरह semanage साथ विन्यास करना होगा।

+0

क्या आप समस्या को हल करने के लिए बेहतर कदम निर्दिष्ट कर सकते हैं? – falsarella

+0

जब मैं इसे अपने सर्वर पर जांचता हूं, तो 'रनटाइम' फ़ोल्डर गायब था, इसलिए मैं इसे सर्वर पर अपलोड करता हूं और यह काम करता है। यहां 'रनटाइम' फ़ोल्डर का मार्ग yoursite \ संरक्षित \ runtime –

1

जब मैं इसे अपने सर्वर पर जांचता हूं, तो 'रनटाइम' फ़ोल्डर गायब था, इसलिए मैं इसे सर्वर पर अपलोड करता हूं और यह काम करता है। 'रनटाइम' फ़ोल्डर का मार्ग है yoursite \ संरक्षित \ runtime -

+0

यह मेरे लिए काम करता है। धन्यवाद! – nicolascolman

-1

रनटाइम फ़ोल्डर का उपयोग बदलें। रनटाइम फ़ोल्डर कार्यों के लिए प्लेस्क समानांतर पैनल में मेरे मामले में आरडब्ल्यूएक्स आरडब्ल्यूएक्स आरडब्ल्यूएक्स बदल रहा है। निम्न आदेश

sudo chmod -R 777 'name of your website folder' 

का उपयोग कर यह समस्या का समाधान होगा द्वारा साइट के संपूर्ण फ़ोल्डर की

+1

@ हबर्ट_जे ने पहले ही लिखा है कि 'रनटाइम' फ़ोल्डर पर 'chmod 777' काम नहीं किया है। –

-1

बदला गया पहुँच।

+0

बहुत बुरा अभ्यास है –

-1

यदि आप सुनिश्चित करते हैं कि फ़ाइल अनुमतियां फ़ोल्डर के लिए सही ढंग से सेट की गई हैं और फिर भी आपको त्रुटि मिल रही है, तो सेनलिनक्स को अक्षम करना या सेनलिनक्स के लिए अपवाद जोड़ना यदि आप CentOS का उपयोग कर रहे हैं तो काम कर रहा है। अक्षम SELinux के लिए संपादित /etc/selinux/config file या के लिए एक अपवाद

sudo chcon -t httpd_sys_rw_content_t /path/to/ur/annoying/folder -R

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