本文目錄一覽:
- 1、如何在虛擬機上搭建php
- 2、php curl中CURLOPT_HTTPHEADER 這個參數的含義
- 3、php 怎麼安裝擴展
- 4、PHP CURLOPT_RETURNTRANSFER選項,該如何理解 ?
如何在虛擬機上搭建php
虛擬機是window系統還是 linux系統。
window系統就很簡單了,直接下載一個集成環境,就可以運行了
linux 系統就要稍微麻煩點
1. php下載以及安裝
下載: wget
解壓: tar -zxvf php-7.3.2.tar.gz
進入目錄開始編譯安裝:
./configure –prefix=/opt/soft/php –enable-fpm
下面是直接把常用的擴展安裝好,免得後面在一個一個安裝(推薦)
./configure –prefix=/opt/soft/php –with-curl –with-mysqli –with-openssl –with-pdo-mysql –enable-fpm
make
sudo make install
設置快捷訪問方式: sudo cp /opt/soft/php/bin/php /usr/local/bin/
把php配置文件放在正確的位置
確認正確位置:php -i | grep php.ini
在下載的安裝包中將php配置文件移動過來: sudo cp /opt/packages/php-7.3.2/php.ini-production /opt/soft/php/lib/php.ini
ps:以後可以通過 php –ini 查看文件所在位置
2. nginx下載以及安裝
和上面php一樣的步驟,下載–解壓–編譯–安裝
wget
./configure –prefix=/opt/soft/nginx –sbin-path=/opt/soft/nginx/sbin/nginx –conf-path=/opt/soft/nginx/config/nginx.conf –error-log-path=/opt/soft/nginx/logs/error.log –pid-path=/opt/soft/nginx/logs/nginx.pid –http-log-path=/opt/soft/nginx/logs/access.log –with-http_stub_status_module –with-http_ssl_module
sudo make make install
設置快捷訪問方式: sudo cp /opt/soft/nginx/sbin/nginx /usr/local/bin/
簡單配置nginx(詳細配置後面再重新開文章寫),然後瀏覽器直接訪問ip就能訪問了(這個時候只能訪問html,訪問php是直接下載文件)
開啟nginx: sudo nginx(sudo nginx -s reload 重啟nginx), 查看是否開起nginx: sudo netstat -anp | grep 80(端口號)
3. 配置nginx支持php
nginx不能直接和php通信,需要藉助FastCGI(高速地在HTTP服務器和動態腳本語言間通信的接口),需要用到php-fpm(FastCGI Process Manager:FastCGI進程管理器, 他的具體概念可以參照這裡搞清楚php-FPM到底是什麼),這也是為什麼在編譯安裝php的時候需要帶–enable-fpm這個擴展的原因.
I. 啟動php-fpm
進入到 /opt/soft/php/etc 這個目錄將php-fpm.conf.default改名為php-fpm.conf,編輯他查看最後一行
然後進入最後一行指向php-pm.d目錄,將改名成,並編輯成對應賬號,我這裡是xunan
然後將/opt/soft/php/sbin/php-fpm設置快捷訪問方式,並啟動php-fpm,也就是執行下面兩個命令
sudo cp /opt/soft/php/sbin/php-fpm /usr/local/bin/ sudo php-fpm
ps: 重啟php-fpm: 先ps aux | grep php-fpm,然後kill掉對應的進程
II. 配置nginx支持php
具體配置:
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
按照上面配置完成後,在配置文件的root目錄下建立一個index.php,編輯
然後重啟nginx(sudo nginx -s reload),在瀏覽器ip訪問
php curl中CURLOPT_HTTPHEADER 這個參數的含義
php curl中CURLOPT_HTTPHEADER 這個參數的含義是:CURLOPT_HTTPHEADER 一個用來設置HTTP頭字段的數組。Content-Type 表示後面的文檔屬於什麼MIME類型。charset表示瀏覽器可接受的字符集。
HTTP頭Servlet默認為text/plain,但通常需要顯式地指定為text/html。由於經常要設置Content-Type,因此HttpServletResponse提供了一個專用的方法setContentType。
HTTP請求頭的部分類型:
1、Accept:瀏覽器可接受的MIME類型。
2、Accept-Charset:瀏覽器可接受的字符集。
3、Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。Servlet能夠向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。許多情形下這可以減少5到10倍的下載時間。
4、Connection:表示是否需要持久連接。如果Servlet看到這裡的值為“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接),它就可以利用持久連接的優點,當頁面包含多個元素時(例如Applet,圖片),顯著地減少下載所需要的時間。
5、Content-Length:表示請求消息正文的長度。
6、Cookie:這是最重要的請求頭信息之一。
擴展資料:
PHP中的CURL函數庫(部分):
1、curl_setopt_array — 為cURL傳輸會話批量設置選項
2、curl_setopt — 設置一個cURL傳輸選項
3、curl_close — 關閉一個cURL會話
4、curl_copy_handle — 複製一個cURL句柄和它的所有選項
5、curl_errno — 返回最後一次的錯誤號
6、curl_error — 返回一個保護當前會話最近一次錯誤的字符串
7、curl_escape — 使用 URL 編碼給定的字符串
在實際的使用當中,使用得最多的函數是curl_setopt — 設置一個cURL傳輸選項說明:bool curl_setopt ( resource $ch , int $option , mixed $value )其中,ch 由 curl_init() 返回的 cURL 句柄。option 表示的是需要設置的CURLOPT_XXX選項。
option的可選參數:
1、CURLOPT_BUFFERSIZE 每次獲取的數據中讀入緩存的大小,但是不保證這個值每次都會被填滿。在cURL 7.10中被加入。
2、CURLOPT_CLOSEPOLICY 不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,還存在另外三個CURLCLOSEPOLICY_,但是cURL暫時還不支持。
3、CURLOPT_CONNECTTIMEOUT 在發起連接前等待的時間,如果設置為0,則無限等待。
參考資料來源:百度百科-http請求頭
參考資料來源:百度百科-curl
php 怎麼安裝擴展
在windows平台上,主要是三個步驟:
1、下載php擴展庫文件;
一般在 上就有下載信息。
2、解壓縮文件,將*.dll文件複製到PHP程序主目錄下的“ext”或者“extension”目錄。
3、打開php.ini文件,在“Dynamic Extensions”配置段中加上“extension=*.dll”,關閉文件,重新啟動一下服務器就可以加載成功了。
PHP CURLOPT_RETURNTRANSFER選項,該如何理解 ?
TRUE to return the transfer as a string of the return value ofcurl_exec() instead of outputting it out directly.
根據php官網解釋 如果你設置這個的參數為TRUE
即 curl_exec() 的結果是一個return賦值 也就是你要把它賦值給一個函數
比如 $response = curl_exec();
$response就是一個你curl執行後的string結果
反之如果是false 你的 curl_exec(); 就相當於你設置true的時候 echo $response;
原創文章,作者:CEAL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/149685.html