मुझे सीजीआईएचपी 2.1 एप्लिकेशन को सीजीआई-पीएचपी के साथ पर्यावरण में चलाने और अपाचे एलियास घोषित करने की क्षमता के बिना चलाने के लिए है। मैं mod_rewrite के साथ केकपीएचपी को सबडोमेन के अनुरोधों को रीडायरेक्ट करना चाहता हूं, लेकिन यह काम नहीं करता है।केकेपीएचपी, सीजीआई और mod_rewrite
वर्तमान सेटअप
- Webroot
~/user/public_html
- CakePHP
~/user/public_html/cakephp/
में है - CakePHP
dev.mydomain.tld
में अनुरोध किया जाना चाहिए क्या मैं अब तक इस (सभी रास्ते रिश्तेदार है वेबूट करने के लिए):
~/user/public_html/.htaccess
RewriteEngine on Options +FollowSymlinks RewriteCond %{HTTP_HOST} ^(www\.)?dev\.mydomain.com$ [NC] RewriteCond %{REQUEST_URI} !^/cakephp/app/webroot/ [NC] RewriteCond %{REQUEST_URI} !/$ RewriteCond %{DOCUMENT_ROOT}/cakephp/app/webroot%{REQUEST_URI}/ -d RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R,L] RewriteCond %{HTTP_HOST} ^(www\.)?dev\.mydomain.com$ [NC] RewriteCond %{REQUEST_URI} !^/cakephp/app/webroot/ [NC] RewriteRule ^(.*)$ /cakephp/app/webroot/$1 [L]
~/user/public_html/cakephp/app/webroot/.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L]
समस्या
अनुरोध किसी भी तरह सही ढंग से कराई नहीं कर रहे हैं (आवेदन समस्याओं के बिना चलाता है एक मॉड्यूल के रूप में PHP के साथ मेरे विकास पर्यावरण में और /cakephp/app/webroot/
स्तर पर वर्चुअल होस्ट)। जब मैं dev.mydomain.tld
पर होम पेज का अनुरोध करता हूं तो मुझे केवल एक त्रुटि मिलती है, केक मुझे बता रहा है कि केकफ़्प कंट्रोलर गुम है।
डिबग जानकारी
/cakephp/app/webroot/index.php
[REDIRECT_REDIRECT_REDIRECT_STATUS] => 200 [REDIRECT_REDIRECT_STATUS] => 200 [REDIRECT_HANDLER] => php-script [REDIRECT_STATUS] => On [HTTP_HOST] => dev.mydomain.tld [HTTP_CONNECTION] => keep-alive [SERVER_SOFTWARE] => Apache/2.2.21 (Unix) [SERVER_NAME] => dev.mydomain.tld [SERVER_ADDR] => 192.0.43.10 [SERVER_PORT] => 80 [DOCUMENT_ROOT] => /home/user/public_html [SCRIPT_FILENAME] => /home/user/public_html/cakephp/app/webroot/index.php [REDIRECT_URL] => /cakephp/app/webroot/index.php [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] =>/ [SCRIPT_NAME] => /cakephp/app/webroot/index.php [_PHP5_WORK_DIR] => /home/user/public_html/cakephp/app/webroot [PHP_SELF] =>/ [ORIG_PATH_INFO] => [ORIG_PATH_TRANSLATED] => /home/user/public_html/cakephp/app/webroot/index.php [PATH_INFO] => /cakephp/app/webroot/index.php
में
$_SERVER
पहली पंक्ति के रूप डिबग के दिलचस्प भागोंCakeRequest
वस्तु डिस्पैचर के लिए पारित की दिलचस्प भागों:url => 'cakephp/app/webroot/index.php' base => '/cakephp' webroot => '/app/webroot/' here => '/cakephp/cakephp/app/webroot/index.php'
सवाल
तो, मैं यहाँ नहीं मिलता है क्या, यही वजह है कि CakeRequest वस्तु मेरी फ़ोल्डर संरचना जबकि $_SERVER['REQUEST_URI'] == '/'
के लिए संदर्भ है। यह सही करने के लिए मुझे क्या करना होगा? और सबसे पहले, मुझे समस्या की तलाश करनी चाहिए: mod_rewrite निर्देशों में या केकेपीएचपी में ही? मैंने कॉन्फ़िगरेशन ऑब्जेक्ट में App.baseUrl
के लिए एली .htaccess फ़ाइलों और विभिन्न सेटिंग्स में रीवाइटबेस सेट करने सहित कुछ चीजों की कोशिश की, लेकिन यहां कुछ भी मदद नहीं कर रहा था।
अगर कोई मुझे इस समस्या को हल करने के बारे में संकेत दे सकता है तो मैं वास्तव में आभारी रहूंगा।
सूचक के लिए धन्यवाद! मैंने इसे पहले नहीं पढ़ा, लेकिन आप सही हैं, यह काफी समान दिखता है। यह एक दयालु बात है कि प्रस्तावित समाधान मेरे मामले में भी मदद नहीं करता है। मैं संभवतः अपने 'ऐप/वेबूट' को हार्ड वेबूट पर जोड़ने के लिए जा रहा हूं, जो निश्चित रूप से भविष्य में समस्या को आगे बढ़ाएगा। मैं अभी भी इसे हल करने में वास्तव में दिलचस्पी लेता हूं, आपको यह भी देखने के बाद और भी एक ही समस्या थी। पीएस .: कोई WAMP यहां शामिल है। – bfncs
आप इसे भी पढ़ सकते हैं, विशेष रूप से टिप्पणियां, इस तरह मैंने अपनी समस्या हल की: http://bakery.cakephp.org/articles/BBBThunda/2010/02/25/troubleshooting-cakephp-installation-issues-related-to- apache-2-mod_rewrite-for-beginners –
एएलएस, मैंने अंततः आपको जवाब दिया क्योंकि यह मेरी जरूरत के करीब आ गया और मैं अंक बर्बाद नहीं करना चाहता था। यह बहुत यकीन है कि होस्टर द्वारा कुछ अजीब सर्वर गलत कॉन्फ़िगरेशन था और वे इसे ठीक करने पर काम कर रहे हैं। इतने लंबे समय तक, मैं उचित डिफ़ॉल्ट के साथ '$ _SERVER' में मानों को ओवरराइट कर रहा हूं। यह वास्तव में, वास्तव में बदसूरत है, लेकिन यह एक वर्कअराउंड के रूप में काम करता है जब तक कि सर्वर कॉन्फ़िगर नहीं किया गया है। – bfncs