Với CentOS, bạn có thể làm điều đó bằng cách sử dụng kết hợp fastcgi cho một phiên bản PHP và php-fpm cho phiên bản kia, như được mô tả ở đây:
https://web.archive.org/web/20130707085630/http://linuxplayer.org/2011/05/intall-multiple-version-of-php-on-one-server
Dựa trên CentOS 5.6, chỉ dành cho Apache
1. Bật kho lưu trữ rpmforge và epel yum
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. Cài đặt php-5.1
Dòng CentOS / RHEL 5.x có php-5.1 trong hộp, chỉ cần cài đặt nó với yum, ví dụ:
sudo yum install php php-mysql php-mbstring php-mcrypt
3. Biên dịch và cài đặt php 5.2 và 5.3 từ nguồn
Đối với php 5.2 và 5.3, chúng ta có thể tìm thấy nhiều gói rpm trên Internet. Tuy nhiên, tất cả chúng đều xung đột với php đi kèm với CentOS, vì vậy, tốt hơn chúng ta nên xây dựng và cài đặt chúng từ soure, điều này không khó, vấn đề là cài đặt php ở vị trí khác nhau.
Tuy nhiên, khi cài đặt php như một mô-đun apache, chúng ta chỉ có thể sử dụng một phiên bản php cùng một lúc. Nếu chúng ta cần chạy phiên bản php khác nhau trên cùng một máy chủ, chẳng hạn như máy chủ ảo khác nhau có thể cần phiên bản php khác nhau. May mắn thay, FastCGI và PHP-FPM tuyệt vời có thể giúp bạn.
Xây dựng và cài đặt php-5.2 có bật fastcgi
1) Cài đặt các gói nhà phát triển bắt buộc
yum install gcc libxml2-devel bzip2-devel zlib-devel \
curl-devel libmcrypt-devel libjpeg-devel \
libpng-devel gd-devel mysql-devel
2) Biên dịch và cài đặt
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) tạo tập lệnh trình bao bọc fastcgi
tạo tệp /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/
Định cấu hình php-fpm
Chỉnh sửa /etc/php53/php-fpm.conf, thay đổi một số cài đặt. Bước này chủ yếu là bỏ ghi chú một số cài đặt, bạn có thể điều chỉnh giá trị nếu muốn.
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
Sau đó, bắt đầu fpm
sudo /etc/init.d/php-fpm start
Cài đặt và thiết lập 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
Thiết lập và kiểm tra máy chủ ảo
1) Thêm dòng sau vào / etc / hosts
127.0.0.1 web1.example.com web2.example.com web3.example.com
2) Tạo root tài liệu web và thả một index.php dưới nó để hiển thị phpinfo chuyển sang user root, chạy
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
Lưu ý: Thư mục / var / www / fcgi-bin trống là bắt buộc, ĐỪNG BỎ LỠ NÓ SAU
3) Tạo tệp cấu hình Apache (thêm vào 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) khởi động lại apache. truy cập 3 trang web một cách tôn trọng để xem phpinfo và xác nhận kết quả. I E:
http:
http:
http:
Nếu tất cả OK, bạn có thể sử dụng một trong 3 máy chủ ảo làm mẫu để tạo máy chủ ảo mới, với phiên bản php mong muốn.