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
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>
Đối với các lựa chọn thay thế PHP cho RVM và rbenv, bạn có phpbrew, phpenv và php-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.
Có bất kỳ tính năng nào trong số này hoạt động với php-fpm không? – CMCDragonkai
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'. –
Điều này rất hữu ích cho việc kiểm tra tự động. Cảm ơn! – sstur
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
Tìm phiên bản khác nhau libphp5.so, và sao chép vào vị trí khác nhau
Nếu sử dụng php5. 3,11 hoặc php5,4.11
ln -s php5.3.11 php || ln -s php5.4.11
Depoly apache httpd.conf của bạn
LoadModule php5_module YOUR_PHP_PATH/php/libphp5.so
restart apache
sudo apachectl restart
Có một chương trình tuyệt vời để làm điều này, phpbrew. Tôi chủ động sử dụng nó và tôi rất khuyên bạn nên sử dụng nó.
Đâ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;)
Nó dường như không ảnh hưởng đến dòng lệnh khác biệt với rvm – Mailo