मैं उबंटू 12.04 पर चलने वाले अपने विकास बॉक्स पर कई php संस्करण चलाने में सक्षम होना चाहता हूं। मैं जो पूरा करना चाहता हूं वह यह है कि जब मैं लोकलहोस्ट का उपयोग करता हूं तो डोमेन डिफ़ॉल्ट रूप से उपयोग किया जाता है (मान लीजिए php 5.3.17)। जब मैं 547.localhost का उपयोग करता हूं तो डोमेन php 5.4.7 का उपयोग किया जाता है। मैंने Fastcgi का उपयोग करके इस कार्य को प्राप्त करने के लिए कुछ ट्यूटोरियल देखे हैं, लेकिन अब तक मैं इसे काम करने में सक्षम नहीं कर पाया हूं। मैंने इन ट्यूटोरियल को देखा है:
- http://dbforch.wordpress.com/2010/05/21/apache2-fastcgi-multiple-php-versions-ubuntulucid-10-04/
- http://www.metod.si/multiple-php-versions-with-apache-2-fastcgi-phpfarm-on-ubuntu/
जहां तक मैं देख सकता हूं मैंने वह सब कुछ किया है जिसकी जरूरत है। समस्या यह है कि php बस नहीं चलता है। जब मैं इसके पास जाता हूं http://localhost/somephpfile.php
तो बस php फ़ाइल के स्रोत का आउटपुट होता है। उसी के लिए http://547.localhost/somephpfile.php
।
मैं इस बात को तोड़ दूंगा कि मैंने इस उम्मीद में क्या कदम उठाए हैं कि कोई मुझे याद करने में सक्षम है।
- पहले मैंने एक डिफ़ॉल्ट लैंप स्टैक का उपयोग करके स्थापित किया
sudo apt-get install lamp-server^ phpmyadmin
। इसके बाद मेरे पास php के रिपॉजिटरी संस्करण को चलाने वाला एक कार्यशील विकास सर्वर था। - फिर मैंने दो php इंस्टॉल बनाने के लिए phpfarm का उपयोग किया, एक 5.3.17 के लिए और 5.4.7 के लिए एक। Phpfarm का स्थानीयकरण है
/etc/php/phpfarm
, इसलिए निष्पादक अंदर हैं/etc/php/phpfarm/inst/php-{version}/bin
- फिर मैं अपाचे और disabe mod_php के लिए suaxec और fastcgi को सक्षम करता हूं
sudo a2enmod fastcgi actions suexec && sudo a2dismod php5
अगला, मैंने
/etc/apache2/mods-enabled/fastcgi.conf
पढ़ने के लिए संपादित किया:<IfModule mod_fastcgi.c> FastCgiIpcDir /var/lib/apache2/fastcgi FastCgiWrapper /usr/lib/apache2/suexec FastCgiConfig -idle-timeout 110 -killInterval 120 -pass-header HTTP_AUTHORIZATION -autoUpdate ScriptAlias /php-fcgi/ /var/www/cgi-bin/ </IfModule>
फिर
/var/www/
मैंने एक फोल्डर बनाया cgi-bin और इस फोल्डर में दो फाइल्स, दोनों में से प्रत्येक के लिए दो php वर्जन निम्नानुसार हैं (मैं केवल 5.3.17 के लिए एक दिखाता हूं/var/www/php5317.fcgi
):#!/bin/sh # you can change the PHP version here. version="5.3.17" # php.ini file location, */php-5.2.13/lib equals */php-5.2.13/lib/php.ini. PHPRC=/etc/php/phpfarm/inst/php-${version}/lib/php.ini export PHPRC PHP_FCGI_CHILDREN=3 export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_MAX_REQUESTS # which php-cgi binary to execute exec /etc/php/phpfarm/inst/php-${version}/bin/php-cgi
अंतिम चरण वर्चुअल होस्ट बनाना था। अंत में मेरे पास तीन फाइलें हैं
/etc/apache2/sites-enabled
: 000-डिफ़ॉल्ट, php5.3.17 और php5.4.7 निम्नलिखित सामग्री के साथ:चूक:
<VirtualHost *:80> ServerName localhost DocumentRoot /var/www <Directory "/var/www"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all AddHandler php-cgi .php Action php-cgi /php-fcgi/php5317.fcgi </Directory> </VirtualHost>
php5.3.17:
<VirtualHost *:80> ServerName 5317.localhost DocumentRoot /var/www <Directory "/var/www"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all AddHandler php-cgi .php Action php-cgi /php-fcgi/php5317.fcgi </Directory> </VirtualHost>
php5.4.7:
<VirtualHost *:80> ServerName 547.localhost DocumentRoot /var/www <Directory "/var/www"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all AddHandler php-cgi .php Action php-cgi /php-fcgi/php547.fcgi </Directory> </VirtualHost>
अंत में मैंने पढ़ने के लिए / etc / मेजबानों को बदल दिया
127.0.0.1 localhost 127.0.0.1 547.localhost 127.0.0.1 5317.localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
अब मुझे काम करने की उम्मीद होगी, लेकिन दुख की बात है कि वे काम नहीं करते। इसके बजाय कि एक php फाइल php से चलती है, यह सिर्फ कच्ची फाइल को आउटपुट करती है।
ऐसा कुछ होना चाहिए जो मुझे यहाँ याद आया हो, लेकिन मैं कई बार इस प्रक्रिया से गुज़रा हूँ और मैं यह पता नहीं लगा सकता कि यह कहाँ गलत है।
Action php-cgi /php-fcgi/php547.fcgi
/var/www/cgi-bin/php-cgi-5.4.7
का प्रयास करें । क्या आप मदद कर सकते हैं? सिर्फ 5.4.7 संस्करण के लिए।/var/www/cgi-bin/php54.fcgi
/var/www/cgi-bin/php.fcgi