CentOS के साथ, आप इसे PHP के एक संस्करण के लिए fastcgi के संयोजन का उपयोग करके कर सकते हैं, और दूसरे के लिए php-fpm, जैसा कि यहाँ वर्णित है:
https://web.archive.org/web/20130707085630/http://linuxplayer.org/2011/05/intall-multiple-version-of-php-on-one-server
अपाचे के लिए केवल CentOS 5.6 पर आधारित है
1. rpmforge और एपल यम रिपॉजिटरी को सक्षम करें
wget http:
wget http:
sudo rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
sudo rpm -ivh epel-release-5-4.noarch.rpm
2. php-5.1 स्थापित करें
CentOS / RHEL 5.x श्रृंखला में php-5.1 बॉक्स है, बस इसे यम के साथ स्थापित करें, जैसे:
sudo yum install php php-mysql php-mbstring php-mcrypt
3. स्रोत से php 5.2 और 5.3 को संकलित और स्थापित करें
5.2 और 5.3 के लिए, हम इंटरनेट पर कई आरपीएम पैकेज पा सकते हैं। हालांकि, वे सभी संघर्ष php के साथ आते हैं जो CentOS के साथ आते हैं, इसलिए, हम बेहतर बनाने और उन्हें soure से स्थापित करेंगे, यह मुश्किल नहीं है, बिंदु अलग-अलग स्थान पर php स्थापित करना है।
हालाँकि, जब एप्प को एक अपाचे मॉड्यूल के रूप में स्थापित किया जाता है, हम केवल उसी समय php के एक संस्करण का उपयोग कर सकते हैं। यदि हमें एक ही सर्वर पर php के विभिन्न संस्करण को चलाने की आवश्यकता है, तो एक ही समय में, उदाहरण के लिए, अलग-अलग वर्चुअल होस्ट को php के अलग-अलग संस्करण की आवश्यकता हो सकती है। सौभाग्य से, शांत FastCGI और PHP-FPM मदद कर सकता है।
Fastcgi सक्षम के साथ php-5.2 का निर्माण और स्थापित करें
1) आवश्यक देव संकुल स्थापित करें
yum install gcc libxml2-devel bzip2-devel zlib-devel \
curl-devel libmcrypt-devel libjpeg-devel \
libpng-devel gd-devel mysql-devel
2) संकलित करें और स्थापित करें
wget http:
tar -xjf php-5.2.17.tar.bz2
cd php-5.2.17
./configure --prefix=/usr/local/php52 \
--with-config-file-path=/etc/php52 \
--with-config-file-scan-dir=/etc/php52/php.d \
--with-libdir=lib64 \
--with-mysql \
--with-mysqli \
--enable-fastcgi \
--enable-force-cgi-redirect \
--enable-mbstring \
--disable-debug \
--disable-rpath \
--with-bz2 \
--with-curl \
--with-gettext \
--with-iconv \
--with-openssl \
--with-gd \
--with-mcrypt \
--with-pcre-regex \
--with-zlib
make -j4 > /dev/null
sudo make install
sudo mkdir /etc/php52
sudo cp php.ini-recommended /etc/php52/php.ini
3) एक Fastcgi आवरण स्क्रिप्ट बनाएँ
फ़ाइल /usr/local/php52/bin/fcgiwrapper.sh बनाएँ
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS
exec /usr/local/php52/bin/php-cgi
chmod a+x /usr/local/php52/bin/fcgiwrapper.sh
Build and install php-5.3 with fpm enabled
wget http:
tar -xjf php-5.3.6.tar.bz2
cd php-5.3.6
./configure --prefix=/usr/local/php53 \
--with-config-file-path=/etc/php53 \
--with-config-file-scan-dir=/etc/php53/php.d \
--enable-fpm \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-libdir=lib64 \
--with-mysql \
--with-mysqli \
--enable-mbstring \
--disable-debug \
--disable-rpath \
--with-bz2 \
--with-curl \
--with-gettext \
--with-iconv \
--with-openssl \
--with-gd \
--with-mcrypt \
--with-pcre-regex \
--with-zlib
make -j4 && sudo make install
sudo mkdir /etc/php53
sudo cp php.ini-production /etc/php53/php.ini
sed -i -e 's#php_fpm_CONF=\${prefix}/etc/php-fpm.conf#php_fpm_CONF=/etc/php53/php-fpm.conf#' \
sapi/fpm/init.d.php-fpm
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod a+x /etc/init.d/php-fpm
sudo /sbin/chkconfig --add php-fpm
sudo /sbin/chkconfig php-fpm on
sudo cp sapi/fpm/php-fpm.conf /etc/php53/
Php-fpm को कॉन्फ़िगर करें
/Etc/php53/php-fpm.conf संपादित करें, कुछ सेटिंग्स बदलें। यह कदम मुख्य रूप से कुछ सेटिंग्स को अनसुना करने के लिए है, आप चाहें तो मूल्य समायोजित कर सकते हैं।
pid = run/php-fpm.pid
listen = 127.0.0.1:9000
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
फिर, एफपीएम शुरू करें
sudo /etc/init.d/php-fpm start
स्थापित करें और mod_fastcgi, mod_fcgid सेटअप करें
sudo yum install libtool httpd-devel apr-devel
wget http:
tar -xzf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
sudo make top_dir=/usr/lib64/httpd/ install
sudo sh -c "echo 'LoadModule fastcgi_module modules/mod_fastcgi.so' > /etc/httpd/conf.d/mod_fastcgi.conf"
yum install mod_fcgid
वर्चुअल होस्ट सेटअप और परीक्षण करें
1) निम्नलिखित लाइन को / etc / मेजबानों में जोड़ें
127.0.0.1 web1.example.com web2.example.com web3.example.com
2) वेब डॉक्यूमेंट रूट बनाएं और इसके तहत एक index.php छोड़ें, यूजर रूट को phpinfo स्विच दिखाने के लिए, रन करें
mkdir /var/www/fcgi-bin
for i in {1..3}; do
web_root=/var/www/web$i
mkdir $web_root
echo "<?php phpinfo(); ?>" > $web_root/index.php
done
नोट: खाली / var / www / fcgi-bin डायरेक्टरी की आवश्यकता है, IT लेटर को रिमूव न करें
3) Apache config फाइल बनाएं (httpd.conf पर जाएं)
NameVirtualHost *:80
<IfModule mod_fcgid.c>
idletimeout 3600
processlifetime 7200
maxprocesscount 17
maxrequestsperprocess 16
ipcconnecttimeout 60
ipccommtimeout 90
</IfModule>
<IfModule mod_fastcgi.c>
FastCgiExternalServer /var/www/fcgi-bin/php-fpm -host 127.0.0.1:9000
</IfModule>
<VirtualHost *:80>
ServerName web1.example.com
DocumentRoot "/var/www/web1"
<ifmodule mod_php5.c>
<FilesMatch \.php$>
AddHandler php5-script .php
</FilesMatch>
</IfModule>
<Directory "/var/www/web1">
DirectoryIndex index.php index.html index.htm
Options -Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName web2.example.com
DocumentRoot "/var/www/web2"
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
FCGIWrapper /usr/local/php52/bin/fcgiwrapper.sh
</IfModule>
<Directory "/var/www/web2">
DirectoryIndex index.php index.html index.htm
Options -Indexes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName web3.example.com
DocumentRoot "/var/www/web3"
<IfModule mod_fastcgi.c>
ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/
AddHandler php5-fastcgi .php
Action php5-fastcgi /fcgi-bin/php-fpm
</IfModule>
<Directory "/var/www/web3">
DirectoryIndex index.php index.html index.htm
Options -Indexes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
4) अपाचे को पुनरारंभ करें। phpinfo को देखने और परिणाम को मान्य करने के लिए 3 साइटों को सम्मानपूर्वक देखें। अर्थात:
http:
http:
http:
यदि सब ठीक है, तो आप वांछित वर्चुअल संस्करण के साथ नए वर्चुअल होस्ट बनाने के लिए 3 वर्चुअल होस्ट में से एक का उपयोग कर सकते हैं।