![](/img/trans.png)
[英]BackgroundUploader Sample does not work on Apache Server with PHP
[英]Does PHP only work with Apache, or can I make it work with my own c ++ server?
PHP 僅適用於 Apache,還是可以與我自己的 C++ 服務器一起使用?
例如,我可以從我的 c++ 程序向 php 發送請求,以便 php 運行“file.php”,然后將結果返回給我的 c++ 程序?
PHP 是一種解釋型語言。 除了通過Apache mod_php使用之外,它還支持 CGI 和 FastCGI 調用設置。 所以你可以:
我相信 C++ 中有多個庫可用於進行CGI和FastCGI調用。 例如, darrengarvey/cgi可以同時完成。
如果您選擇 CGI 路徑,您甚至可以在沒有庫的情況下進行。 正確安裝 php-cgi 后,您可以像這樣進行常規的 CGI 調用:
echo "test=1" | \
REQUEST_METHOD=POST \
CONTENT_TYPE=application/x-www-form-urlencoded \
CONTENT_LENGTH=6 \
GATEWAY_INTERFACE=CGI/1.1 \
SCRIPT_FILENAME=/full/path/to/file.php \
REDIRECT_STATUS=true \
REQUEST_URI=/hello/world \
php-cgi
如您所見,CGI 調用是具有一些預定義環境變量(又名Request Meta-Variables )的常規系統調用。 HTTP 請求正文提供給 STDIN。 完整的 HTTP 響應(包括標頭)將通過 STDOUT 發送。
由於每次 CGI 調用都是系統調用,因此每次調用時都需要時間將 PHP 庫/模塊加載到內存中。 FastCGI指定了一種通過線路協議發送/接收 STDIN、STDOUT、STDERR 的方式。 php-fpm 會加載內存和池連接以加快調用速度。 因此得名快速CGI。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.