Cài đặt PHP multi version trên macOS với Homebrew. Ở môi trường lập trình chúng ta có thể chạy trên các phiên bản php khác nhau để kiểm tra code php trước khi đưa lên chạy thực ở server.
PHP 7.3 là phiên bản mới tại thời điểm hiện tại, phiên bản trước đó là phiên bản PHP 5.6, PHP 7 được thiết kế lại cho tốc độ xử lý nhanh hơn so với các phiên bản cũ. Tuy nhiên ở bài viết này mình sẽ chỉ sử dụng phiên bản php 5.6 và 7.2 vì sự thông dụng của nó.
Cài đặt PHP
Cài đặt phiên bản php 5.6 chúng ta sử dụng lệnh sau
brew install
Cài đặt phiên bản php 7.2 chúng ta sử dụng lệnh sau
brew install
Sau khi cài xong chúng ta sẽ có thư mục như sau:
Bây giờ chúng ta sẽ tiếp tục cấu hình để có thể chạy php.
Cấu hình PHP trên macOS
Mở file /usr/local/etc/php/5.6/php-fpm.conf
Tìm:
user = _www
group = _www
Thay bằng
user = nginx
group = nginx
Tìm:
listen = 127.0.0.1:9000
Thay bằng
listen = 127.0.0.1:9056
Mở file /usr/local/etc/php/7.2/php-fpm.d/www.conf
Tìm:
user = _www
group = _www
Thay bằng
user = nginx
group = nginx
Tìm:
listen = 127.0.0.1:9000
Thay bằng
listen = 127.0.0.1:9072
Các lệnh điều khiển php
- Khởi chạy php
brew services start brew services start
Chạy lại php
brew services restart
brew services restart
Tắt php
brew services stop
brew services stop
Cấu hình host nginx với php
Các ban có thể tham khảo thêm Cấu hình cho host trên LEMP để biết thêm chi tiết về các cấu hình host. Ở đây mình hướng dẫn các bạn cấu hình để chạy multi version php.
Các bạn mở file /usr/local/etc/nginx/nginx.conf là file cấu hình mặc định của nginx:
Thay toàn bộ block:
server {
listen 8080;
server_name localhost;
...
}
Bằng đoạn block dưới
server {
listen 8072;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9072;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Đoạn trên khai báo server localhost chạy trên cổng 8072, php được chạy qua cổng 9072 được config ở trên là phiên bản php 7.2 tương ứng. Tương tự ta bổ sung block khai báo để chạy php 5.6 qua cổng 8056
server {
listen 8056;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9056;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Sau khi khai báo xong chúng ta khởi chạy lại nginx và chạy 2 phiên bản php. Tạo một file info.php ở thư mục gốc của nginx [/usr/local/var/www] chỉ có hàm phpinfo[] để test.
Truy cập vào trình duyệt:
//localhost:8056/info.php
Truy cập vào trình duyệt:
//localhost:8072/info.php
Nếu hiện kết quả như hình trên coi như chúng ta đã cài đặt thành công multi version php.
Kết luận
Với cách cài đặt multi version php chúng ta có thể dễ dàng kiểm tra cũng như chạy các đoạn code php trên các phiên bản khác nhau mà không cần cài đặt những web server riêng. Ở bài tiếp theo mình sẽ hướng dẫn cài đặt hệ quản trị cơ sở dữ liệu MariaDB trên macOS với Homebrew để hoàn thành một môi trường cho lập trình viên web php.
Dạo gần đây mình cần phải chuyển đổi liên tục giữa các phiên bản PHP trên máy của mình để làm việc.
Nếu các bạn đã từng gặp vấn đề như mình thì ít nhiều các bạn cũng quen với câu lệnh này:
Yeah, mình cũng làm như vậy. Nhưng mỗi lần chuyển đi chuyển lại, mình thấy lười quá.
Trong cái khó ló cái khôn. Mình dạo hết các diễn đàn tây ta các kiểu, cuối cùng mình tìm được một các khá hay.
Có thể cùng lúc chạy nhiều phiên bản PHP như thế này:
1 | $ php -v |
Các bạn có thể thấy, cùng lúc mình có thể dùng lệnh php
để chạy cho bản PHP 8.1.1 và php74
để chạy cho bản PHP 7.4.27
Ngoài ra mình hoàn toàn có thể cài thêm PHP 7.1 và dùng lệnh php71
Bây giờ mình sẽ hướng dẫn các bạn cách thực hiện.
Cài đặt các công cụ hỗ trợ
Cài đặt công cụ XCode Command Line
1 | xcode-select --install |
Cài đặt Homebrew
Homebrew là một trình quản lý gói cho macOS. Nó giống như trình quản lý gói apt
trên Ubuntu.
1 | /bin/bash -c "$[curl -fsSL //raw.githubusercontent.com/Homebrew/install/HEAD/install.sh]" |
Kiểm tra lại xem đã cài đặt thành công Homebrew hay chưa bằng lệnh sau:
1 | $ brew --version |
Ngoài ra bạn có thể chạy lệnh brew doctor
để xem mọi thứ đã ổn hay chưa.
Cài đặt đa phiên bản PHP
Thời điểm hiện tại, Homebrew chỉ duy trì và hỗ trợ các phiên bản PHP 7.2, 7.3 và 7.4
Do đó, để cài đặt được các phiên bản PHP cũ hơn PHP 5.6, 7.0 & 7.1 thì chúng ta cần phải chạy lệnh sau:
1 | brew tap exolnet/homebrew-deprecated |
Bây giờ bạn có thể cài đặt tất cả các phiên bản PHP có sẵn bằng các lệnh
Điều này sẽ mất một ít thời gian, cho nên bạn có thể đi pha một cốc cafe ☕️ rồi quay lại!
Chuyển đổi giữa các phiên bản PHP
Sau khi cài đặt, bạn có thể chuyển đổi giữa các phiên bản PHP bằng cách ‘link’ và ‘unlink’ trong brew:
Year, bây giờ bạn có thể chuyển đổi qua lại giữa các phiên bản PHP rồi đúng không. Tiếp theo mình sẽ chỉ tiếp cho các bạn một thủ thuật nhỏ để không cần phải chuyển đổi qua lại giữa các phiên bản nữa, mà có thể dùng trực tiếp như mình đã nêu ở phần đầu luôn.
Để thực hiện các bạn làm theo các bước sau:
Cấu hình đa phiên bản PHP
Điều chỉnh tên file php
Cài đặt và cấu hình ZSH
Nếu chưa cài đặt zsh
thì trước tiên bạn cần cài đặt bằng lệnh sau:
1 | brew install zsh |
Tiếp theo, bạn cần cài đặt thêm oh-my-zsh như sau:
1 | sh -c "$[curl -fsSL //raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh]" |
Cuối cùng bạn hãy mở file ~/.zshrc
và thêm vào nội dung sau: