2010-09-01 38 views
46

Tôi dường như không thể tìm cách chuyển đổi phiên bản PHP nhanh chóng. Có cái gì tương đương với quản lý phiên bản ruby ​​cho php? Tôi cần phải chuyển đổi giữa 5.3 và 5.2 trên OS X.Tương đương RVM cho PHP?

Trả lời

0

nếu bạn đang chạy apache tôi có thể đề xuất cách tôi giải quyết vấn đề này. Cài đặt phiên bản khác nhau của PHP đến các địa điểm khác nhau và chuẩn bị vài apache file php-xyzconf như

ScriptAlias /php/ "path/to/php-5.2.10/" 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php .phtml 
Action application/x-httpd-php "/php/php-cgi" 
<Directory "/php/"> 
    Order allow,deny 
    Allow from all 
</Directory> 

,

ScriptAlias /php/ "path/to/php-5.3.0/" 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php .phtml 
Action application/x-httpd-php "/php/php-cgi" 
<Directory "/php/"> 
    Order allow,deny 
    Allow from all 
</Directory> 

và như vậy, vì vậy bạn có thể nhanh chóng thay đổi tên của tập tin bao gồm conf và khởi động lại máy chủ. Hoặc, như tôi đã làm, làm cho một số máy chủ ảo có gốc tài liệu tương tự, nhưng với các phiên bản khác nhau của PHP bao gồm:

<VirtualHost *:80> 
    DocumentRoot "C:/www/localhost" 
    ServerName local.php-5.2.10 

    Include conf/php-5.2.10.conf 

    <Directory "C:/www/localhost"> 
     Allow from All 
    </Directory> 
</VirtualHost> 
+0

Nó dường như không ảnh hưởng đến dòng lệnh khác biệt với rvm – Mailo

9

Tôi nghĩ phpfarm gần nhất php thay thế rvm, nó cũng cài đặt pyrus mà là giống như ruby đá quý cho thế giới php.

+2

phpfarm không biên dịch trong máy Mac của tôi, RVM một điều nghiêm trọng phpfarm là không. – rtacconi

1

Hãy xem phpenv (với php-build). Thậm chí còn có một công thức homebrew nếu bạn brew tap josegonzalez/php. Nó thực sự là một phiên bản PHP của rbenv không phải rvm nhưng tôi nghĩ nó sẽ đơn giản hơn để thiết lập hơn phpfarm.

30

Đối với các lựa chọn thay thế PHP cho RVM và rbenv, bạn có phpbrew, phpenvphp-version. Xin lưu ý rằng tôi là tác giả của phiên bản php vì vậy tất nhiên tôi thích nó như tôi đã viết nó để đầu ngứa của riêng tôi (tôi muốn một cái gì đó tối thiểu với hoàn thành lệnh); Tuy nhiên, phpenv cũng khá tốt. Bạn sẽ làm tốt để sử dụng một trong hai.

Trên OS X, bạn có thể cài đặt trình quản lý phiên bản PHP bằng Homebrew.

Đầu tiên, thêm các công thức PHP cho homebrew:

% brew tap homebrew/homebrew-php

Sau đó, sử dụng các công thức cài đặt từ homebrew-php bạn có thể cài đặt một trong hai với:

% brew install php-version 

hoặc

% brew install phpenv 

php-versionREADME.md liệt kê thêm một số alternatives để bạn có thể muốn xem.

BTW, tôi sẽ xem xét php-version để phù hợp hơn với chruby ở chỗ nó cố gắng làm một việc tốt.

+0

Có bất kỳ tính năng nào trong số này hoạt động với php-fpm không? – CMCDragonkai

+0

Về php-fpm; có, bạn nên kết thúc với một php-fpm nhị phân cho mỗi phiên bản PHP bạn biên dịch. Khi bạn sử dụng 'php-version' hoặc' phpenv' để chuyển đổi các phiên bản, bạn sẽ nhận được đúng 'php-fpm'. Tất cả những gì họ làm là chuyển đổi các biến môi trường, bao gồm '$ PATH' và' $ MANPATH'. –

+1

Điều này rất hữu ích cho việc kiểm tra tự động. Cảm ơn! – sstur

2

Nếu bạn đang không sử dụng php-cgi và cài đặt phiên bản khác nhau của PHP đến các địa điểm khác nhau

  1. Tìm phiên bản khác nhau libphp5.so, và sao chép vào vị trí khác nhau

  2. Nếu sử dụng php5. 3,11 hoặc php5,4.11

    ln -s php5.3.11 php || ln -s php5.4.11 
    
  3. Depoly apache httpd.conf của bạn

    LoadModule php5_module  YOUR_PHP_PATH/php/libphp5.so 
    
  4. restart apache

    sudo apachectl restart 
    
0

Đây là giải pháp của tôi (pvers). Tập lệnh một tập được viết hoàn toàn bằng bash. Nếu bạn đang tìm kiếm một trình quản lý phiên bản php nhỏ gọn và dễ cài đặt với các phụ thuộc tối thiểu - hãy thử xem;)

Các vấn đề liên quan