আমি আমার ডেভলপমেন্ট বক্সে উবুন্টু 12.04 চলছে এমন একাধিক পিএইচপি সংস্করণ চালাতে সক্ষম হতে চাই। আমি যা অর্জন করতে চাই তা হ'ল আমি যখন লোকালহোস্টকে ডোমেন হিসাবে ব্যবহার করি তখন একটি ডিফল্ট ব্যবহার করা হয় (আসুন পিএইচপি 5.3.17 বলি)। আমি যখন 547.localhost ব্যবহার করি তখন ডোমেন হিসাবে পিএইচপি 5.4.7 ব্যবহৃত হয়। এই কাজটি ফাস্টসিজি ব্যবহার করে করার জন্য আমি কিছু টিউটোরিয়াল দেখেছি তবে এখন পর্যন্ত আমি এটি কাজ করতে সক্ষম হতে পারিনি। আমি এই টিউটোরিয়ালগুলি দেখেছি:
- 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/
যতদূর আমি দেখতে পাচ্ছি প্রয়োজনীয় যা প্রয়োজন তা আমি করেছি। সমস্যা হ'ল পিএইচপি সহজভাবে চালায় না। আমি যখন http://localhost/somephpfile.php
এটিতে যাই তখন কেবল পিএইচপি ফাইলের উত্স আউটপুট করে। একই জন্য http://547.localhost/somephpfile.php
।
আমি যে পদক্ষেপ নিয়েছি তা ভেঙে দেব এই আশায় যে কেউ আমার কী মিস করেছে তা চিহ্নিত করতে সক্ষম হবে।
- প্রথমে আমি একটি ডিফল্ট ল্যাম্প স্ট্যাক ব্যবহার করে ইনস্টল করেছি
sudo apt-get install lamp-server^ phpmyadmin
। এর পরে আমার পিএইচপি-র সংগ্রহস্থল সংস্করণ চলমান একটি কর্মক্ষম ডেভলপমেন্ট সার্ভার ছিল। - তারপরে আমি পিএইচপিফর্মটি দুটি পিএইচপি ইনস্টল তৈরি করতে ব্যবহার করেছি, একটি 5.3.17 এর জন্য এবং একটি 5.4.7 এর জন্য। পিএইচপিফর্মের লোকেশনটি
/etc/php/phpfarm
তাই এক্সিকিউটেবলের মধ্যে রয়েছে/etc/php/phpfarm/inst/php-{version}/bin
- তারপরে আমি অ্যাপাচি এবং মোড_এফপি নিষ্ক্রিয় করার জন্য স্যাক্সেক্স এবং ফাস্টসিজি সক্ষম করি
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/
আমি একটি ফোল্ডার সিজি-বিন তৈরি করেছিলাম এবং এই ফোল্ডারে দুটি পিএইচপি সংস্করণের জন্য নিম্নরূপ দুটি ফাইল রেখেছি (আমি 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>
অবশেষে আমি পড়ার জন্য / ইত্যাদি / হোস্টগুলি পরিবর্তন করেছি
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
এখন আমি জিনিসগুলি কাজ করার আশা করব, তবে দুঃখের সাথে তারা তা দেয় না। পরিবর্তে যে কোনও পিএইচপি ফাইল পিএইচপি এর মধ্য দিয়ে চলে এটি কেবল কাঁচা ফাইলকে আউটপুট করে।
এখানে আমি অবশ্যই কিছু মিস করেছি, তবে আমি প্রক্রিয়াটি বহুবার পেরেছি এবং কোথায় ভুল হয়েছে তা আমি বুঝতে পারি না।
Action php-cgi /php-fcgi/php547.fcgi
/var/www/cgi-bin/php-cgi-5.4.7
করতে/var/www/cgi-bin/php54.fcgi
উদাহরণস্বরূপ বা শুধু/var/www/cgi-bin/php.fcgi
। আপনি সাহায্য করতে পারেন কিনা তা পরীক্ষা করতে পারেন? কেবল 5.4.7 সংস্করণের জন্য।