Trong macOS phiên bản mới (như 10.11, 10.12, 10.13 ...) có cài sẵn mặc định Webserver Apache HTTP và PHP, tuy nhiên để dễ tuỳ biến trong phần này sẽ huỷ sử dụng cài đặt mặc định đó để sử dụng phiên bản # brew install httpd 7, # brew install httpd 8, # brew install httpd 9 tuỳ chọn.
Do sử dụng # sudo brew services start httpd 0 để cài đặt, nên đảm bảo cài đặt công cụ này trước: Sử dụng Homebrew (brew)
Các file cấu hình cho Apache, PHP, MySQL sử dụng # sudo brew services start httpd 1 để soạn thảo, nên cũng cần cài VS Code trước: Cài đặt Visual Studio Code
Đầu tiên cần đảm báo có Command Line Tools
xcode-select --installCó một số thư viện có thể cần bổ sung, chạy lệnh sau để cài đặt:
# brew install openldap libiconvTrước tiên cần huỷ đi việc sử dụng Apache cài đặt mặc định nếu đang kích hoạt:
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/nullTiến hành cài đặt Apache bằng lệnh:
# brew install httpdCấu hình để Apache tự động chạy khi khởi động hệ thống:
# sudo brew services start httpdMặc định Webserver Apache HTTP cài theo cách trên nó làm việc trên cổng # sudo brew services start httpd 2, nên có thể truy cập địa chỉ # sudo brew services start httpd 3, kết quả như sau chứng tỏ Apache đã cài thành công
Khi làm việc với Apache một số lệnh có thể dùng tới như:
#Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stopThông tin cấu hình chỉnh của Apache lưu trong file # sudo brew services start httpd 4, để soạn thảo - thay đổi cấu hình gõ lệnh
#Khởi động Apache # code /usr/local/etc/httpd/httpd.confThay đổi một số cấu hình Apache
Đổi cổng HTTPD Thay đổi cổng # sudo brew services start httpd 2 thành cổng # sudo brew services start httpd 6, tìm đến: Thay đổi cổng # sudo brew services start httpd 2 thành cổng # sudo brew services start httpd 6, tìm đến:
Listen 8080Thay bằng:
Listen 80Đổi ServerName tìm đến: tìm đến:
#ServerName www.example.com:8080Thay bằng:
# brew install openldap libiconv 0Đổi ServerName tìm đến:, ví dụ muốn đổi vai trò chạy là của user # sudo brew services start httpd 7 tìm đến:
# brew install openldap libiconv 1Thay bằng:
# brew install openldap libiconv 2Đổi ServerName tìm đến:, để hỗ trợ viết lại URL và # sudo brew services start httpd 8:
# brew install openldap libiconv 3Thay bằng:
# brew install openldap libiconv 4Đổi ServerName tìm đến: ví dụ webiste lưu tại # sudo brew services start httpd 9, và cấu hình để chạy trên domain ảo #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 0
# brew install openldap libiconv 5Thay đổi user chạy , ví dụ muốn đổi vai trò chạy là của user # sudo brew services start httpd 7 tìm đến:
# brew install openldap libiconv 6Bật mod_rewrite, để hỗ trợ viết lại URL và # sudo brew services start httpd 8:
# brew install openldap libiconv 7Tạo thử một VirtualHost: ví dụ webiste lưu tại # sudo brew services start httpd 9, và cấu hình để chạy trên domain ảo #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 0sudo apachectl restart, tạo ra một file #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 2 có nội dung #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 3 trong thư mục web, chạy kiểm tra #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 4
Tiếp theo thay đổi #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 1 bằng cách gõ:
Thêm vào:
# brew install openldap libiconv 8Khởi động lại Apache sudo apachectl restart, tạo ra một file #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 2 có nội dung #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 3 trong thư mục web, chạy kiểm tra #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 4
# brew install openldap libiconv 9Cài đặt PHP
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 0Ta cài PHP thông qua # sudo brew services start httpd 0 với các phiên bản hỗ trợ như #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 6 #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 7 #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 8 ..., các phiên bản như #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 9, #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 0 bị đánh dấu là lỗi thời - nếu vẫn muốn cài phiên bản lỗi thời này thì gõ lệnh sau trước khi cài đặt. để làm việc với PHP, ví dụ cấu hình để Apache gọi đến phiên bản PHP7.2 đã cài đặt.
Để cài đặt phiên bản PHP nào thì gõ lệnh cài đặt #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 1 với tham số bản PHP như #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 2, #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 2, #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 4 ..., ví dụ:
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 1File cấu hình cho từng phiên bản PHP nằm trong các thư mục con trong #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 5 như:
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 2Cấu hình Apache để làm việc với PHP, ví dụ cấu hình để Apache gọi đến phiên bản PHP7.2 đã cài đặt.
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 3Mở file # sudo brew services start httpd 4 và thêm vào
Cũng cần đảm bảo trong #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 7 có định nghĩa Handler, để Apache biết gọi đến PHP với các file có phần mở rộng #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 8
Khởi động lại Apache, sau đó tạo một file #Khởi động Apache # code /usr/local/etc/httpd/httpd.conf 9 trong thư mục website, với nội dung:
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 4Kiểm tra thử #Khởi động Apache # sudo apachectl start #Khởi động lại Apache # sudo apachectl restart #Dừng Apache # sudo apachectl stop 4
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 5Chuyển đổi nhanh phiên bản PHP với SPHP, cơ bản sử dụng pecl để cài đặt (kể cả các extension khác nếu cần)
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 6Cài đặt Listen 80801
Nếu có cài nhiều phiên bản PHP và muốn chuyển nhanh sang một phiên bản thì gõ lệnh
Cài đặt extension memcached, xdebug cho PHP, cơ bản sử dụng pecl để cài đặt (kể cả các extension khác nếu cần)
Sử dụng PHP-FPM
Mỗi phiên bản cài đặt trên, đồng thời nó cũng có PHP-FPM được cài đặt. File cấu hình trong thư mục tương ứng với bản PHP, ví dụ PHP 8.0 thì file cầu hình tại Listen 80802
Với PHP-FPM thì máy chủ Web (như Apache, Nginx) sẽ chạy code PHP thông qua proxy, được phục vụ bởi dịch vụ PHP-FPM đang lắng nghe trên cổng nào đó (mặc định là 9000).
Thành
listen = 0.0.0.0:9000
Để rõ hơn cho trường hợp sử dụng này hãy tham khảo Apache Handler và Nginx - VHost
Nếu bạn muốn dùng PHP-FPM để chạy code PHP, để tiện hãy mở file cấu hình Listen 80803 sửa dòng
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 7listen = 127.0.0.1:9000Thànhlisten = 0.0.0.0:9000
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 8Sau đó dùng lệnh Listen 80804 quản lý dịch vụ PHP cho phù hợp (về lệnh này xem thêm Sử dụng lệnh brew)
# sudo apachectl stop # sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null 9Khi bạn cập nhật cấu hình, để khởi động lại dịch vụ bạn dùng lệnh (ví dụ cho bản php 7.2)
Nếu dịch vụ đang bị dừng dùng lệnh sau để chạy
# brew install httpd 0Để dừng dịch vụ
Khi bạn chuyển phiên bản PHP, bạn cần dừng dịch vụ, sau khi chuyển phiên bản bạn dùng brew services start chạy bản mới.
# brew install httpd 1Nếu dịch vụ đang chạy, dùng lệnh sau kiểm tra xem đã có dịch vụ PHP đang chạy và cổng lắng nghe
Cài đặt MySQLCài đặt bằng brew
# brew install httpd 4Thiết lập MySQL chạy cùng hệ thống tìm bằng lệnh Listen 80808 nó nằm ở: Listen 80809
# brew install httpd 2 # brew install httpd 3
Mặc định user có quyền cao nhất là Listen 80805 với password là rỗng Listen 80806, nếu muốn thiết lập password mới cho Listen 80805 chạy lệnh:
Cài đặt WorkbenchWorkbench
# brew install httpd 5Cài đặt WorkbenchWorkbench
# brew install httpd 6