Bạn có thể sử dụng điều này để nhanh chóng kiểm tra công việc của mình mà không cần chạy Apache, NGINX hoặc giải pháp chứa khi bạn cần nhanh chóng khởi động máy chủ web để kiểm tra ứng dụng PHP
Chúng tôi sẽ chỉ cho bạn cách sử dụng máy chủ tích hợp của PHP như một giải pháp thay thế cho các máy chủ vi mô khác như SimpleHTTPServer của Python hoặc gói npm của máy chủ http, cả hai đều không thể chạy tập lệnh PHP, nhưng nó nhận được tương đối ít sự chú ý mặc dù khá mạnh mẽ để phát triển
Sử dụng máy chủ tích hợp
Có thể kiểm tra các trang web PHP trong môi trường không có máy chủ HTTP đầy đủ tính năng bằng cách sử dụng máy chủ tích hợp, có sẵn trong PHP 5. Bạn có thể chạy nó trực tiếp từ thư mục làm việc của mình mà không cần thiết lập máy chủ ảo trước trong Python 4 và tất cả các phiên bản mới hơn
Tài liệu PHP đặc biệt khuyên không nên triển khai máy chủ này trong các ứng dụng sản xuất, vì vậy hãy cảnh báo trước khi sử dụng máy chủ rằng nó chỉ dành cho mục đích sử dụng phát triển. Hiển thị trên các mạng mở cho công chúng là không đủ an toàn
Khởi động máy chủ
Máy chủ được khởi chạy bằng cách đặt cờ $ php -S localhost:8080 -t /home/$USER/public_docs5 cho tệp thực thi $ php -S localhost:8080 -t /home/$USER/public_docs6
_10Đối số của lệnh, trong ví dụ trên sử dụng cổng $ php -S localhost:8080 -t /home/$USER/public_docs0 trên $ php -S localhost:8080 -t /home/$USER/public_docs1, chỉ định địa chỉ nghe của máy chủ. Giờ đây, mọi tập lệnh PHP sẽ được thực thi tự động khi bạn yêu cầu chúng, vì vậy bạn có thể truy cập nội dung trong thư mục làm việc của mình bằng cách truy cập $ php -S localhost:8080 -t /home/$USER/public_docs2 trong trình duyệt web của bạn
Khi bạn khởi động máy chủ, bạn có thể cung cấp một đường dẫn bên ngoài thư mục làm việc của mình bằng cách đặt cờ $ php -S localhost:8080 -t /home/$USER/public_docs3
________Đầu tiênThư mục nhà của bạn $ php -S localhost:8080 -t /home/$USER/public_docs4 bây giờ sẽ đóng vai trò là tài liệu gốc
Khi bạn kiểm tra xong trang web của mình, hãy nhấn Ctrl+C để kết thúc quá trình trong khi vẫn mở cửa sổ đầu cuối. Mỗi yêu cầu đến, bao gồm phương thức URI và HTTP, sẽ được PHP ghi vào cửa sổ đầu cuối của bạn, cùng với bất kỳ lỗi PHP nào chưa được phát hiện
Kích hoạt quyền truy cập từ xa
Bạn có thể cho phép truy cập từ xa bằng cách liên kết với $ php -S localhost:8080 -t /home/$USER/public_docs6 thay vì nghe trên $ php -S localhost:8080 -t /home/$USER/public_docs1, điều này sẽ ngăn các kết nối đến từ các thiết bị khác trên mạng của bạn
_19Chỉ cho phép truy cập từ xa khi thực sự cần thiết, chẳng hạn như khi thử nghiệm một tính năng cụ thể trên thiết bị di động, vì máy chủ không được tăng cường để sử dụng trong sản xuất và không được phép truy cập công khai. Đảm bảo rằng cổng bạn sử dụng không thể truy cập qua internet
Yêu cầu so khớp dự phòng
Khi một yêu cầu đến mà không có thành phần URI, PHP sẽ kiểm tra gốc tài liệu đang hoạt động cho các tệp $ php -S localhost:8080 -t /home/$USER/public_docs7 và $ php -S localhost:8080 -t /home/$USER/public_docs8. Khi đạt đến đỉnh của cây mà không tìm thấy tệp chỉ mục, trạng thái 404 Không tìm thấy sẽ được hiển thị. Điều này có nghĩa là bạn có thể vô tình phân phát nội dung nằm ngoài thư mục mà bạn đã chỉ định
Nếu một tệp tĩnh trong thư mục gốc của tài liệu không thể khớp với yêu cầu bao gồm URI (chẳng hạn như $ php -S localhost:8080 -t /home/$USER/public_docs9), lỗi 404 sẽ được trả về. Đối với phần lớn các phần mở rộng tệp phổ biến, PHP tự động đặt tiêu đề phản hồi $ php -S localhost:8080 -t /home/$USER/public_docs20 thành loại MIME của tệp được cung cấp
Sử dụng tập lệnh bộ định tuyến
Máy chủ web có thể được định cấu hình để chạy tập lệnh trên mỗi yêu cầu, cho phép bạn sử dụng bộ điều khiển phía trước của ứng dụng để thực hiện định tuyến động phức tạp
Khi bạn khởi động máy chủ, bạn có thể kích hoạt chức năng của bộ định tuyến bằng cách nhập tên tệp PHP trên dòng lệnh
$ php -S localhost:8080 -t /home/$USER/public_docs4Bây giờ, $ php -S localhost:8080 -t /home/$USER/public_docs21 đã được thiết lập để xử lý tất cả các yêu cầu đến, bạn có thể hướng người dùng đến đúng vị trí trong ứng dụng của mình bằng cách xem URI yêu cầu
Ngoại lệ duy nhất là nếu tập lệnh bộ định tuyến của bạn trả về $ php -S localhost:8080 -t /home/$USER/public_docs22, trong trường hợp đó, phản hồi sẽ được gửi lại cho máy khách. PHP sẽ mặc định trả về tệp tĩnh khớp với URI yêu cầu ban đầu trong trường hợp này
Mã PHP để phát hiện máy chủ tích hợp
Tên giao diện hoạt động được cung cấp bởi hàm $ php -S localhost:8080 -t /home/$USER/public_docs23 và có thể được mã PHP của bạn sử dụng để xác định xem nó có được gọi bởi máy chủ web tích hợp hay không. Khi tập lệnh được chạy bởi thành phần máy chủ tích hợp, nó sẽ được đặt thành $ php -S localhost:8080 -t /home/$USER/public_docs24
Xử lý đồng thời nhiều yêu cầu
Máy chủ chạy theo mặc định ở chế độ đồng bộ một quy trình, trong đó các yêu cầu được xử lý riêng biệt và ngăn không cho nhau thực thi cho đến khi chúng kết thúc. Đây là một trong những yếu tố khiến máy chủ không phù hợp để sử dụng trong môi trường sản xuất
Hỗ trợ quản lý đồng thời nhiều yêu cầu đã được thêm vào trong PHP 7. 4Khi chế độ này được bật, máy chủ sẽ rẽ nhánh một nhân viên mới để phục vụ từng yêu cầu đến, nhưng chế độ này phụ thuộc vào tính khả dụng của $ php -S localhost:8080 -t /home/$USER/public_docs25 và không tương thích với Windows. Bạn có thể bật tính năng này bằng cách đặt biến môi trường $ php -S localhost:8080 -t /home/$USER/public_docs26 thành số lượng công nhân mong muốn
$ php -S localhost:8080 -t /home/$USER/public_docs4Trong PHP 8, chức năng này vẫn được phân loại là thử nghiệm
Bản tóm tắt
Nó hỗ trợ thực thi tập lệnh PHP, định tuyến bắt tất cả và các tệp tĩnh với phần lớn các loại MIME phổ biến. PHP có một máy chủ web tích hợp, đây là một cách dễ dàng để kiểm tra các ứng dụng của bạn và nhanh chóng hiển thị nội dung hệ thống tệp cục bộ trên mạng cục bộ của bạn
Bạn không nên sử dụng chế độ chuyển nhánh tùy chọn của máy chủ trong sản xuất vì chế độ này chỉ được sử dụng làm công cụ phát triển và thiếu các tính năng bảo mật và tùy chỉnh mà bạn sẽ cần cho các triển khai công khai của mình, mặc dù hiện tại nó hỗ trợ chế độ này. Nó vượt trội trong việc thay thế các nền tảng phát triển đã được thiết lập như bộ chứa WAMP, XAMPP và Docker bằng một nền tảng được tích hợp và nhẹ
Cần nhanh chóng khởi động máy chủ web để kiểm tra ứng dụng PHP? . Bạn có thể sử dụng điều này để kiểm tra nhanh công việc của mình mà không cần chạy Apache, NGINX hoặc giải pháp container hóa
Máy chủ tích hợp của PHP tương đối ít được chú ý nhưng khá mạnh mẽ cho mục đích phát triển. Trong hướng dẫn này, chúng tôi sẽ chỉ ra cách bạn có thể sử dụng nó như một giải pháp thay thế cho các máy chủ vi mô khác như SimpleHTTPServer của Python hoặc gói npm của máy chủ http, cả hai gói này đều không thể thực thi tập lệnh PHP
Sử dụng máy chủ tích hợp
Máy chủ tích hợp là một cơ chế thuận tiện giúp bạn kiểm tra các trang web PHP trong môi trường thiếu máy chủ HTTP chính thức. Nó có sẵn trong PHP 5. 4 và tất cả các phiên bản sau này. Bạn có thể chạy nó trực tiếp từ thư mục làm việc của mình mà không cần phải thiết lập máy chủ ảo trước
Trước khi sử dụng máy chủ, hãy lưu ý rằng nó được thiết kế chỉ dành cho mục đích phát triển. Tài liệu PHP cảnh báo rõ ràng về việc triển khai máy chủ này trước các ứng dụng sản xuất. Nó không đủ an toàn để hiển thị trên các mạng có thể truy cập công khai
Khởi động máy chủ
Máy chủ được bắt đầu bằng cách chuyển cờ $ php -S localhost:8080 -t /home/$USER/public_docs9 cho tệp thực thi $ php -S localhost:8080 -t /home/$USER/public_docs0
$ php -S localhost:8080 -t /home/$USER/public_docs4Đối số được cung cấp cho lệnh chỉ định địa chỉ nghe của máy chủ. Chúng tôi đã sử dụng cổng $ php -S localhost:8080 -t /home/$USER/public_docs0 trên $ php -S localhost:8080 -t /home/$USER/public_docs1 trong ví dụ trên. Bây giờ bạn có thể truy cập $ php -S localhost:8080 -t /home/$USER/public_docs2 trong trình duyệt web của mình để truy cập nội dung trong thư mục làm việc của bạn. Mọi tập lệnh PHP sẽ được thực thi tự động khi bạn yêu cầu chúng
Bạn có thể cung cấp một đường dẫn bên ngoài thư mục làm việc của mình bằng cách đặt cờ $ php -S localhost:8080 -t /home/$USER/public_docs3 khi bạn khởi động máy chủ
$ php -S localhost:8080 -t /home/$USER/public_docsGốc tài liệu bây giờ sẽ là $ php -S localhost:8080 -t /home/$USER/public_docs4 trong thư mục nhà của bạn
Giữ cửa sổ đầu cuối của bạn mở trong khi bạn đang sử dụng máy chủ web. Nhấn Ctrl + C để hủy quy trình sau khi bạn kiểm tra xong trang web của mình. PHP sẽ ghi lại từng yêu cầu đến vào cửa sổ đầu cuối của bạn, bao gồm cả phương thức URI và HTTP. Mọi lỗi PHP chưa được phát hiện cũng sẽ hiển thị trong nhật ký
Kích hoạt quyền truy cập từ xa
Đang nghe trên $ php -S localhost:8080 -t /home/$USER/public_docs1 sẽ không cho phép các kết nối đến từ các thiết bị khác trên mạng của bạn. Thay vào đó, bạn có thể cho phép truy cập từ xa bằng cách liên kết với $ php -S localhost:8080 -t /home/$USER/public_docs6
$ php -S localhost:8080 -t /home/$USER/public_docs3Hãy nhớ rằng máy chủ không được tăng cường để sử dụng trong sản xuất và không được hiển thị công khai. Chỉ cho phép truy cập từ xa khi thực sự cần thiết, chẳng hạn như khi thử nghiệm một tính năng cụ thể trên thiết bị di động. Đảm bảo cổng bạn sử dụng không mở với internet
Yêu cầu so khớp dự phòng
PHP sẽ tìm các tệp $ php -S localhost:8080 -t /home/$USER/public_docs7 và $ php -S localhost:8080 -t /home/$USER/public_docs8 trong thư mục gốc của tài liệu đang hoạt động khi yêu cầu đến thiếu thành phần URI. Nếu không có tệp nào trong số này tồn tại, máy chủ sẽ tiếp tục di chuyển lên trên cây thư mục, tìm kiếm chỉ mục trong một trong các thư mục gốc của tài liệu của bạn. Điều này có nghĩa là bạn có thể vô tình phân phát nội dung nằm ngoài thư mục mà bạn đã chỉ định. Trạng thái 404 Không tìm thấy sẽ được đưa ra khi đạt đến đỉnh của cây mà không tìm thấy tệp chỉ mục
Các yêu cầu bao gồm URI (chẳng hạn như $ php -S localhost:8080 -t /home/$USER/public_docs9) phải được khớp chính xác bởi một tệp tĩnh trong thư mục gốc của tài liệu. Nếu không, 404 sẽ được trả lại. PHP tự động đặt tiêu đề phản hồi $ php -S localhost:8080 -t /home/$USER/public_docs30 thành loại MIME của tệp được cung cấp cho hầu hết các phần mở rộng tệp phổ biến
Sử dụng tập lệnh bộ định tuyến
Bạn có thể tùy ý định cấu hình máy chủ web để gọi tập lệnh theo mọi yêu cầu. Điều này cho phép bạn sử dụng bộ điều khiển phía trước của ứng dụng để thực hiện định tuyến động nâng cao
Chức năng bộ định tuyến được kích hoạt bằng cách cung cấp tên tệp PHP trên dòng lệnh khi bạn khởi động máy chủ
$ php -S localhost:8080 -t /home/$USER/public_docs8PHP bây giờ sẽ sử dụng $ php -S localhost:8080 -t /home/$USER/public_docs31 để xử lý mọi yêu cầu đến. Bạn có thể định tuyến người dùng đến điểm thích hợp trong ứng dụng của mình bằng cách kiểm tra URI yêu cầu
$ php -S localhost:8080 -t /home/$USER/public_docs0
Đầu ra do tập lệnh bộ định tuyến của bạn tạo ra sẽ trở thành phản hồi được gửi lại cho máy khách. Một ngoại lệ là nếu tập lệnh trả về $ php -S localhost:8080 -t /home/$USER/public_docs32. trong trường hợp này, PHP sẽ dự phòng trả về tệp tĩnh khớp với URI yêu cầu ban đầu
$ php -S localhost:8080 -t /home/$USER/public_docs2
Phát hiện máy chủ tích hợp từ mã PHP của bạn
Mã PHP của bạn có thể phát hiện xem nó có được gọi bởi máy chủ web tích hợp hay không bằng cách kiểm tra tên giao diện đang hoạt động. Hàm $ php -S localhost:8080 -t /home/$USER/public_docs33 cung cấp giá trị này. Nó sẽ được đặt thành $ php -S localhost:8080 -t /home/$USER/public_docs34 khi tập lệnh được gọi bởi thành phần máy chủ tích hợp
$ php -S localhost:8080 -t /home/$USER/public_docs5
Xử lý đồng thời nhiều yêu cầu
Máy chủ mặc định chạy ở chế độ đồng bộ một tiến trình theo mặc định. Các yêu cầu được xử lý riêng lẻ và chặn nhau thực thi cho đến khi chúng hoàn thành. Đây là một trong những lý do khiến máy chủ không phù hợp để sử dụng trong sản xuất
PHP7. 4 hỗ trợ thêm để xử lý đồng thời nhiều yêu cầu. Nó dựa vào tính khả dụng của $ php -S localhost:8080 -t /home/$USER/public_docs35 và không hoạt động trên Windows. Máy chủ sẽ rẽ nhánh một nhân viên mới để phục vụ từng yêu cầu đến khi chế độ này được bật. Bạn có thể kích hoạt nó bằng cách đặt biến môi trường $ php -S localhost:8080 -t /home/$USER/public_docs36 thành số lượng công nhân bạn muốn
$ php -S localhost:8080 -t /home/$USER/public_docs8Chức năng này vẫn được đánh dấu là thử nghiệm trong PHP 8. 1
Bản tóm tắt
PHP có một máy chủ web tích hợp, đây là một cách thuận tiện để kiểm tra các ứng dụng của bạn và nhanh chóng hiển thị nội dung hệ thống tệp cục bộ trên mạng cục bộ của bạn. Nó hỗ trợ thực thi tập lệnh PHP, định tuyến bắt tất cả và các tệp tĩnh với hầu hết các loại MIME phổ biến
Mặc dù máy chủ hiện hỗ trợ chế độ forking tùy chọn, nhưng không nên sử dụng nó trong sản xuất. Nó được dự định là một công cụ hỗ trợ phát triển và thiếu các tính năng bảo mật và tùy chỉnh mà bạn sẽ cần cho các triển khai công khai của mình. Điểm vượt trội của nó là một giải pháp thay thế nhẹ và tích hợp cho các nền tảng phát triển thông thường như bộ chứa WAMP, XAMPP và Docker