
कई लोग लारवेल के उपयोग के लिए Nginx पर HHVM को स्थापित करने में रुचि रखते थे। चलिए शुरू करते हैं।
HHVM (या हिपहॉप वर्चुअल मशीन) एक वर्चुअल मशीन है जिसे PHP में लिखे प्रोग्राम को चलाने के लिए डिज़ाइन किया गया है। JIT संकलन तकनीक का उपयोग बायटेकोड निष्पादन गति को बढ़ाने के लिए करता है।प्रविष्टि
मेरे अधिकांश लेखों की तरह, मैं हमारे सामान को स्थापित करने के लिए एक सर्वर के रूप में Ubuntu 12.04 LTS का उपयोग करूंगा। हालाँकि, हम बहुत अच्छी तरह से ब्रू (
nginx और
hhvm ) का उपयोग करके मैक पर इसे स्थापित कर सकते हैं। HHVM को अन्य प्लेटफार्मों (उबंटू के नए संस्करणों सहित) पर स्थापित करने के बारे में जानकारी यहाँ से प्राप्त की जा सकती
है ।
अच्छा, चलिए!
मूल बातें सेट करना
सबसे पहले, हमारे उद्देश्य के लिए आवश्यक बुनियादी चीजों को स्थापित करें:
$ sudo apt-get update $ sudo apt-get install -y unzip vim git-core curl wget build-essential python-software-properties
Nginx स्थापना
अगला, Nginx स्थापित करें। वह पहले क्यों आ रहा है? जब से
hhvm-fastcgi पैकेज स्थापित कर रहा है, यह [पैकेज] कुछ Nginx विन्यास बदल जाएगा अगर यह पता लगाता है।
$ sudo apt-get install -y nginx
HHVM FastCGI स्थापित करें
एचएचवीएम ब्लॉग को देखते हुए
, हम फास्टएचजीआई के साथ एचएचवीएम स्थापित कर सकते हैं। निम्न कोड HHVM स्थापित करेगा और FastCGI के साथ काम करने के लिए इसे कॉन्फ़िगर करेगा।
$ echo deb http://dl.hhvm.com/ubuntu precise main | sudo tee /etc/apt/sources.list.d/hhvm.list $ sudo apt-get update $ sudo apt-get install -y --force-yes hhvm-fastcgi
नोट: मैंने कुछ निर्भरता मुद्दों को ठीक करने के लिए
--force-Yes ध्वज को जोड़ा।
HHVM कॉन्फ़िगर करें
HHVM मूल रूप से PHP का एक देशी संस्करण है, इसलिए हमें अलग से PHP स्थापित करने की आवश्यकता नहीं है। स्थापना के बाद, आप सामान्य PHP के रूप में HHVM का उपयोग कर सकते हैं। उदाहरण के लिए, आप php फ़ाइलों को निष्पादित कर सकते हैं:
$ hhvm some_file.php
चूंकि हमारे पास संभवतः कंपोज़र और PHPUnit है, जो कमांड लाइन से एक्सेसिबिलिटी ग्रहण करते हैं, इसलिए हम hhvm पर php सिमिलिंक बना सकते हैं:
$ sudo ln -s `which hhvm` /usr/local/bin/php
अब हम हमेशा की तरह PHP का उपयोग कर सकते हैं!
$ php -v HipHop VM v2.3.2 (rel) Compiler: tags/HHVM-2.3.2-0-gf951cb8d8812c59344d5322454853b584b668636 Repo schema: 5b5a4fc9cde5a5d014d1dfdb491bf74e4e700131
एचएचवीएम फास्ट-सीजीआई
मैं
Vagrant का उपयोग कर रहा हूं और मैं चाहता हूं कि मेरी रूट निर्देशिका / योनि निर्देशिका हो। रूट बदलने के लिए, हमें HHVM और Nginx दोनों को कॉन्फ़िगर करने की आवश्यकता है।
HHVM से शुरू करते हैं। संपादन के लिए फ़ाइल: /etc/hhvm/server.hdf यहां निष्पादित करने के लिए एक एकल-पंक्ति कमांड है:
फिर परिवर्तनों को लागू करने के लिए HHVM को पुनरारंभ करें:
$ sudo service hhvm-fastcgi restart
Nginx कॉन्फ़िगर करें
अब Nginx को कॉन्फ़िगर करें। मैं एक नई कॉन्फ़िगरेशन फ़ाइल
बनाऊंगा जिसे
आवारा कहा जाता है
:
यहां आप इस फ़ाइल की अंतिम सामग्री देख सकते हैं:
// File /etc/nginx/sites-available/vagrant server { root /vagrant; index index.html index.htm index.php; server_name localhost;
दो महत्वपूर्ण बिंदु
सबसे पहले, हम एक
स्थान ब्लॉक को परिभाषित नहीं करते हैं। HHVM से पहले Nginx को स्थापित करना HHVM के लिए Nginx देखने और आपके लिए /etc/nginx/hhvm.conf फ़ाइल बनाने का अवसर प्रस्तुत करता है। Hhvm.conf फ़ाइल जिसमें हम पहले से ही शामिल हैं, PHP द्वारा आवश्यक स्थान ब्लॉक है।
दूसरे, hhvm.conf फ़ाइल रूट निर्देशिका / var / www को मानती है। यह
रूट / योनि सेटिंग को अधिलेखित करता है
। हमें इसे बदलने की आवश्यकता है ताकि हमारी योनि फ़ाइल hhvm.mf फ़ाइल में रूट निर्देश को हटाकर रूट डायरेक्टरी निर्धारित करे:
$ sudo vim /etc/nginx/hhvm.conf
/Etc/nginx/hhvm.conf फ़ाइल स्वयं:
location ~ \.php$ {
अब हमारे द्वारा बनाए गए वर्चुअल होस्ट को चालू करें:
$ sudo ln -s /etc/nginx/sites-available/vagrant /etc/nginx/sites-enabled/vagrant
अब आपको परिवर्तनों को प्रभावी करने के लिए HHVM-FastCGI और Nginx को पुनरारंभ करना होगा। लेकिन पहले, एक परीक्षण php फ़ाइल बनाएँ।
थोड़ा php
एक साधारण परीक्षण फ़ाइल बनाएँ:
$ vim /vagrant/index.php
कुछ इस तरह सरल:
<?php echo phpinfo();
छोटे के लिए मामला। बस hhvm-fastcgi और nginx को पुनः आरंभ करें। उसके बाद, आप ब्राउज़र में सर्वर के आईपी पते (या 192.168.33.10.xip.io पर, यदि आप
Vaprobash का उपयोग करते हैं ) से कनेक्ट करते समय index.php देख सकते हैं।
$ sudo service hhvm-fastcgi restart $ sudo service nginx reload
आपको ब्राउज़र में "हिपहॉप" देखना चाहिए।
Laravel
हमारे मामले में, लारवेल की स्थापना सामान्य स्थापना से अलग नहीं है। चूंकि हमने PHP को लिंक किया है, इसलिए सब कुछ एक घड़ी की तरह काम करना चाहिए। आइए कोशिश करते हैं।
संगीतकार स्थापित करें
यह एक सामान्य वैश्विक स्थापना होगी:
$ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer
लारवेल स्थापित करें
अब हमें एक नई लार्वा परियोजना बनाने का अवसर दिया गया है। मैं इसे नाम दे दूंगा:
आप चाय या कॉफी तब तक पी सकते हैं जब तक सभी निर्भरताएं स्थापित न हो जाएं :)
अंतिम चरण: लारवेल की स्थापना
आइए थोड़ा ट्वीक करें और रूट डायरेक्टरी को / पब्लिक में सेट करें:
सब कुछ तैयार है! आप ब्राउज़र का उपयोग करके प्रदर्शन की जांच कर सकते हैं।
चेतावनी और नोट्स
आप त्रुटि लॉग पर बहुत अधिक ध्यान देना चाहेंगे। डिफ़ॉल्ट रूप से, HHVM ब्राउज़र में कोई त्रुटि प्रदर्शित नहीं करता है। लारवेल लॉग की जाँच करें:
HHVM लॉग की जाँच करें:
$tail -n 50 -f /var/log/hhvm/error.log
आप
सर्वर कॉन्फ़िगरेशन को
बदलकर अपने लॉग में स्टैक ट्रेस भी प्राप्त कर सकते हैं।
/Etc/hhvm/server.hdf को संपादित करें और
इंजेक्टस्टैकट्रेस और
नेटिवैकटैक निर्देश जोड़ें
। Log { Level = Warning AlwaysLogUnhandledExceptions = true RuntimeErrorReportingLevel = 8191 UseLogFile = true UseSyslog = false File = /var/log/hhvm/error.log InjectedStackTrace = true NativeStackTrace = true Access { * { File = /var/log/hhvm/access.log Format = %h %l %u % t \"%r\" %>s %b } } }
अंत में, आप डिबग की सेटिंग /etc/hhvm/server.hdf में जोड़कर ब्राउज़र विंडो में थोड़ा सा आउटपुट जोड़ सकते हैं:
Debug { FullBacktrace = true ServerStackTrace = true ServerErrorMessage = true TranslateSource = true }
हालाँकि, याद रखें कि त्रुटि लॉग में अधिक विस्तृत त्रुटि जानकारी होगी। यहां
HHVM के लिए दूरस्थ डिबगर का उपयोग करने के बारे में एक लेख है (मैंने इसे स्वयं परीक्षण नहीं किया है)।