Cài đặt PHP multi version trên macOS với Homebrew
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 php@5.6
Cài đặt phiên bản php 7.2 chúng ta sử dụng lệnh sau
brew install php@7.2
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 php@5.6
brew services start php@7.2
Chạy lại php
brew services restart php@5.6
brew services restart php@7.2
Tắt php
brew services stop php@5.6
brew services stop php@7.2
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
Truy cập vào trình duyệt:
http://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.