सबसे पहले, आपको स्थापित करने की आवश्यकता php5-fpm
और php7.0-fpm
से सह-स्थापना योग्य PHP5 और php7.0 के लिए Ondřej Sury के पीपीए। :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
हम तब, nginx
एफपीएम पैकेज का उपयोग करने का सुझाव देते हैं। तो, तदनुसार पैकेज स्थापित करें:
sudo apt-get update
# We need to ***remove*** php5 packages, so we can use php5.6 packages
# from the PPA instead
sudo apt-get remove php5-common
sudo apt-get autoremove
# Now we install php5.6 packages.
sudo apt-get install php5.6-fpm
# Now, install php7.0-fpm. You may need to install separate PHP plugins
# for databases, extensions, etc. later.
sudo apt-get install php7.0-fpm
स्रोत: "php 7 कैसे स्थापित करें?" पर एक उत्तर सवाल , और कस्टम टिप्पणी और खुद से संशोधन।
दूसरी बात यह है nginx
। nginx
केवल आपके कॉन्फ़िगरेशन के रूप में अच्छा होने में सक्षम है। आपके पास अपने nginx सर्वर ब्लॉक (ओं) पर इसी तरह ('डिफ़ॉल्ट' उदाहरण कॉन्फिग से) PHP हैंडलिंग ब्लॉक होने की संभावना है:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
यह कॉन्फ़िगरेशन केवल पास होगा php5-fpm
। वास्तव में, यह आपके पूरे सर्वर ब्लॉक के लिए लागू होगा। इसके बारे में जाने का सबसे आसान तरीका एक दूसरे सर्वर ब्लॉक (के लिए, कहते हैं test.domain.tld
), और PHP 7.0 fastcgi_pass
गंतव्य के बजाय प्रदान करना है। Xenial पर php7.0 में, यह कुछ इस तरह समाप्त होने जा रहा है (हाल ही में क्सीनल नेगनेक्स पैकेज पर अपलोड किए गए एक फिक्स से निकाला गया), हालांकि मुझे ओन्ड्रेज के पैकेज का लेआउट नहीं पता है, इसलिए मैं वहां सटीक विवरण नहीं दे सकता (चेक /etc/php7.0/fpm/pool.d/www.conf
या) यह निर्धारित करने के समान है कि यह कहाँ सुन रहा है):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
आपको अपने php5
ब्लॉक के लिए कुछ ऐसा ही करना होगा , यह प्रमाणित करने के लिए कि php5.6
सॉकेट का उपयोग बिल्ट-इन php5
सॉकेट (जिसे हमने हटा दिया है) के बजाय किया जाता है ।
फिर, परीक्षण चलाने के लिए दूसरे परीक्षण डोमेन का उपयोग करें php7.0
। यदि आप ऐसा करना चाहते हैं, तो अपनी साइट की एक प्रति सुनिश्चित करने के लिए सुनिश्चित करें - यह संभव है कि एक अलग परीक्षण प्रतिलिपि होना आवश्यक हो, ताकि एक बार जब आप इसे पूरा करना शुरू कर दें php7.0
, तो आप इसके बिना 'स्विच ओवर' कर सकते हैं मुद्दा।
दुर्भाग्य से, एक ही सर्वर ब्लॉक के भीतर बनाने php5
और php7.0
काम करने का कोई आसान तरीका नहीं है, न कि आपकी साइट, एप्लिकेशन आदि के लिए अपने पथ को बदलने के बिना, एक के लिए php5
और एक के लिए php7.0
; ऐसी साइटों के पुनर्मूल्यांकन से बुरा परिणाम मिल सकता है, इसलिए साइट कोड की दो अलग-अलग प्रतियां, एक php7.0
माइग्रेशन के लिए और एक php5
उत्पादन के लिए चलाने का सुझाव है ।
*php5.6*
पैकेजों का उपयोग करना चाहिए जो ओन्डेज़ प्रदान करता है, और सादेphp5
पैकेजों को हटा दें ।