Hướng dẫn install php macos brew

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 

Hướng dẫn install php macos brew

Cài đặt phiên bản php 7.2 chúng ta sử dụng lệnh sau

brew install 

Hướng dẫn install php macos brew

Sau khi cài xong chúng ta sẽ có thư mục như sau:

Hướng dẫn install php macos brew

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:

http://localhost:8056/info.php

Hướng dẫn install php macos brew

Truy cập vào trình duyệt:

http://localhost:8072/info.php

Hướng dẫn install php macos brew

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
2
3
4
5
6
7
8
9
10
11
$ php -v
PHP 8.1.1 (cli) (built: Dec 15 2021 09:38:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies

$ php74 -v
PHP 7.4.27 (cli) (built: Dec 17 2021 00:11:47) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

Hướng dẫn install php macos brew

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 https://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
2
$ brew --version
Homebrew 3.3.10

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 https://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: