2014-09-02 10 views
5

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

मेरी कॉन्फ़िगरेशन बदलने और सेवाओं को पुनरारंभ करने के बजाय, अगर मैं केवल बंदरगाहों या निर्देशिकाओं को स्विच कर सकता हूं तो यह बहुत आसान होगा।

मेरा प्रश्न: क्या एक बंदरगाह (80) पर एक सामान्य अपाचे सर्वर और किसी अन्य पोर्ट (8080) पर एक एचएचवीएम संचालित सर्वर चलाने के लिए संभव है? वैकल्पिक रूप से, क्या यह केवल एक विशिष्ट निर्देशिका (और इसकी 'उप-निर्देशिका) में HHVM चलाने के लिए संभव है?

परिदृश्य 1 HHVM आवेदन करने के लिए स्विचन में इस प्रकार दिखाई देगा:

localhost/my-project/index.php 
    localhost:8080/my-project/index.php 

परिदृश्य 2 में स्विचिंग HHVM के लिए आवेदन इस प्रकार दिखाई देगा:

localhost/my-project/index.php 
    localhost/hhvm/my-project/index.php 

मुझे लगता है कि है कि यह प्राप्त किया जा सकता अपाचे की कॉन्फ़िगरेशन फ़ाइल के माध्यम से, लेकिन मुझे यह नहीं पता कि कॉन्फ़िगरेशन फाइलें इसे स्वयं करने के लिए कैसे काम करती हैं, कृपया मदद करें !?


ओएस: Ubuntu 14.04
अपाचे संस्करण: 2.4.7
HHVM संस्करण: 3.2.0

+1

आप इसे अपाचे और PHP-FPM के साथ [फास्टसीजीआई मोड] (https://github.com/facebook/hhvm/wiki/fastcgi) में चला सकते हैं। – mario

+0

@ मारियो धन्यवाद, मुझे लगता है कि मुझे दिखाएं कि परिदृश्य कैसे करें 2. लेकिन यदि संभव हो, तो भी मैं परिदृश्य 1 पसंद करूंगा; इसके लिए कोई विचार है ??? –

उत्तर

6

/etc/apache2/ports.conf जोड़ने के लिए ...

Listen 8080 

फिर, अपने vhost विन्यास में (/ etc/apache2/साइटों से उपलब्ध/डिफ़ॉल्ट आपके डोमेन के रूप में स्थानीय होस्ट का उपयोग करते हुए, शायद के बाद से। conf), वहां सबकुछ कॉपी करें और इसे नीचे पेस्ट करें ताकि आपके पास दूसरा वर्चुअलहोस्ट इंस्टेंस हो। दूसरे उदाहरण के लिए, *: 80 से *: 8080 बदलें, फिर अपने प्रॉक्सीपासमैच को यह बताने के लिए जोड़ें कि आप एचएच और PHP फ़ाइल एक्सटेंशन के लिए HHVM का उपयोग करना चाहते हैं (निर्देशिका को सही करने के लिए अपडेट करना न भूलें)।

यह कुछ की तरह दिखना चाहिए ...

<VirtualHost *:80> 

    ... keep the same ... 

</VirtualHost> 
<VirtualHost *:8080> 

    ... keep the same ... 

    ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1 

</VirtualHost> 

/etc/apache2/mods-available/hhvm_proxy_fcgi.conf में जाकर बाहर टिप्पणी क्या वहाँ में है। अन्यथा सब कुछ एचएचवीएम की ओर बढ़ जाएगा।

अंत में, पुन: प्रारंभ अपाचे

sudo service apache2 restart 

मैं किसी मौजूदा स्थानीय साइट पर जल्दी से इस परीक्षण किया है और यह 8080 है जो यह किया जाना चाहिए से 80 करने के लिए वापस पुनः निर्देशित किया गया था। अगर यह काम नहीं करता है, तो मुझे बताएं।

अद्यतन: थोड़ा और परीक्षण किया गया, और ऐसा लगता है कि यह आपके लिए काम करना चाहिए। निम्नलिखित जोड़ने के बाद, local.site.com/hhvm.php और local.site.com:8080/hhvm.php के बीच कूदने से इको सही ढंग से फ़्लिप हो गया।

<?php if (defined('HHVM_VERSION')) { 
    echo "golden!"; 
} else { 
    echo "doh..."; 
} 
+0

बिल्कुल सही! = डी (15 से अधिक वर्ण) –

+1

मैं यह इंगित करना चाहूंगा कि जिस चरण में आप टिप्पणी करते हैं वह '/ etc/apache2/mods-available/hhvm_proxy_fcgi.conf' सामग्री बहुत महत्वपूर्ण है, और ** को करने की आवश्यकता होगी फिर यदि आप एचएचवीएम ** अपडेट करते हैं। –

1

हां। आप अपाचे को पोर्ट 80 और पोर्ट 8080 दोनों में सुन सकते हैं (बस अतिरिक्त सुनो कॉन्फ़िगरेशन में जोड़ें), फिर स्थानीयहोस्ट के लिए वर्चुअल होस्ट जोड़ें: 8080 जो फास्टसीजीआई के माध्यम से एचएचवीएम को अनुरोध पास करता है।

+0

ठीक है, मुझे पूरा यकीन है कि अपाचे की कॉन्फ़िगरेशन फ़ाइलों में से एक को संपादित करना शामिल है। ऊपर बताए अनुसार, मुझे कॉन्फ़िगरेशन फ़ाइलों के बारे में पर्याप्त जानकारी नहीं है। क्या आप कुछ कोड जोड़ सकते हैं जो एक पोर्ट के लिए एचएचवीएम का उपयोग करने के लिए कैसा दिखता है और ऐसा नहीं करता है? –

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