phpfpm配置 php中的坑

      網(wǎng)友投稿 694 2025-04-04

      ###### 記一些坑


      ```

      //phpfpm配置

      pm.max_children = 最大并發(fā)數(shù)

      詳細的答案:

      pm.max_children 表示 php-fpm 能啟動的子進程的最大數(shù)量。

      因為 php-fpm 是多進程單線程同步模式,即一個子進程同時最多處理一個請求,所以子進程數(shù)等于最大并發(fā)數(shù)。

      但是實際使用中一般不用考慮,因為php默認配置為動態(tài)均衡的子進程管理,不用手動設置這些配置。

      ```

      ```

      //日志調(diào)試方法

      /**

      * 超級調(diào)試

      *

      * 調(diào)試非本地環(huán)境或分布式環(huán)境,通過Log查看變量傳遞

      * 寫入變量值到\var\log\php_super_debug.log

      * @param? mixed? $data???? 日志數(shù)據(jù)

      * @param? string $log_path 日志路徑

      * @param? string $log_name 日志名稱

      * @return void

      */

      function super_debug($data, $log_path='\var\log\', $log_name='debug')

      {

      error_log(json_encode($data, JSON_UNESCAPED_UNICODE)."\n", 3, $log_path.$log_name);

      }

      ```

      ```

      // php實現(xiàn)下載圖片

      header('Content-type: image/jpeg');

      header('Content-Disposition: attachment; filename=download_name.jpg');

      readfile($yourFilePath);

      ```

      ```

      // php5.6開始干掉了@語法,php上傳圖片兼容版本寫法

      if (class_exists('\CURLFile')) {

      curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);

      $data = array('file' => new \CURLFile(realpath($destination)));//5.5+

      } else {

      if (defined('CURLOPT_SAFE_UPLOAD')) {

      curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);

      }

      $data = array('file' => '@' . realpath($destination));//<=5.5

      }

      ```

      ```

      // 序列化與反序列化

      概念:

      序列化:把變量(所有類型)轉(zhuǎn)成能傳輸和儲存的變量(不丟失原變量的屬性和結(jié)構(gòu))

      反序列化:把字符串轉(zhuǎn)成原變量

      函數(shù):

      序列化:serialize, json_encode(不能序列化對象)

      反序列化:unserialize, json_decode

      ```

      ```

      // 組合和聚合的區(qū)別

      組合:A類在實例化對象的過程中產(chǎn)生了對B類的引用

      聚合:A類在實例化對象的過程中,不會立即實例化B類,而是等待外界非A類的對象傳遞

      ```

      ```

      // 記一個坑

      ip2long函數(shù)

      - 32位系統(tǒng)下會轉(zhuǎn)成帶符號的int,范圍-2^31~2^31-1

      - 64位系統(tǒng)下會轉(zhuǎn)成不帶符號的int,范圍0~2^32-1

      ```

      ```

      // static和self的區(qū)別

      第一種解釋:

      - static: 代表當前所引用的類

      - self: 代表當前代碼片斷所在的類

      第二種解釋:

      如果子類和父類都有一個“A”方法。那么

      - static: 會調(diào)用到子類的A方法

      - self: 會調(diào)用到當前類的A方法,如果在子類中self::A(),將會調(diào)用到子類的A方法,如果在父類中,將會調(diào)用父類的A方法。

      ```

      ```

      //json_encode 使用時的一個坑

      json_encode有中文時,需要加入JSON_UNESCAPED_UNICODE,json_encode($data, JSON_UNESCAPED_UNICODE); (PHP版本要求:必須PHP5.4+),否則中文會轉(zhuǎn)義為Unicode編碼。

      例如:

      $arr = array('a'=>'只有所有者有讀和寫的權(quán)' ,'b'=>'所有者有讀和寫的權(quán)限,組用戶只有讀的權(quán)限');

      echo json_encode($arr);

      phpfpm配置 php中的坑

      1. 不加JSON_UNESCAPED_UNICODE時,結(jié)果為:

      {"a":"\u53ea\u6709\u6240\u6709\u8005\u6709\u8bfb\u548c\u5199\u7684\u6743","b":"\u6240\u6709\u8005\u6709\u8bfb\u548c\u5199\u7684\u6743\u9650\uff0c\u7ec4\u7528\u6237\u53ea\u6709\u8bfb\u7684\u6743\u9650"}

      2. 加了JSON_UNESCAPED_UNICODE時,結(jié)果為:{"a":"只有所有者有讀和寫的權(quán)","b":"所有者有讀和寫的權(quán)限,組用戶只有讀的權(quán)限"}

      ```

      ###### 技巧

      - linux

      + df -h: 更易讀的查看磁盤空間

      + du -h --max-depth=1 file_path:查看文件夾占用的空間,--max-depth文件夾下顯示層級

      + sudo rm -rf \*.log:清理日志

      + socket

      * http socket = ip:port

      * unix domain socket: unix process communication 進程間通信

      + ubuntu16.04安裝php5源:sudo apt-add-repository ppa:ondrej/php

      + ubuntu中文支持:sudo apt-get install language-pack-zh-hant language-pack-zh-hans

      + debian使用lantern無法啟動: 安裝依賴apt-get install libappindicator3-1

      + 查看端口占用:lsof -i:[端口號] / netstat -a(顯示所有選項,默認不顯示LISTEN)p(顯示關聯(lián)的程序)n(不顯示別名顯示數(shù)字) | grep [端口號]

      - php:

      + json_encode($data, JSON_UNESCAPED_UNICODE)

      + php的自定義頭信息都可以使用$_SERVER['HTTP_*']來獲取

      + 如果你想知道腳本開始執(zhí)行(譯注:即服務器端收到客戶端請求)的時刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()

      + error_log(json_encode($data, JSON_UNESCAPED_UNICODE), 1/3, 'tigerbcoder@gmail.com/log_path')

      + sudo watch service php5.6-fpm status

      + foreach后的好習慣reset指針位置,unset掉$key,$value

      + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

      + laravel ['l?r?,v?l]

      + php中的語言結(jié)構(gòu):echo,exit(),print,empty(),unset(),isset(),list(),eval(),array()

      - git:

      + git commit --amend 重寫最近commit message

      + git cherry-pick 移花接木

      - composer:

      + 修改包來源: sudo composer config repositories.包名 vcs 包地址

      ###### PHP的不足

      - PHP還是有很多不足的地方,比如無法進行高效的運算

      PHP 任務調(diào)度

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:后面一頁空白頁刪不掉增么辦(多出一頁空白刪不掉)
      下一篇:PDF怎么編輯
      相關文章
      亚洲视频免费一区| 亚洲AV永久青草无码精品| 亚洲成年轻人电影网站www | 亚洲人成在线电影| 亚洲熟女少妇一区二区| 亚洲日韩中文无码久久| 亚洲AV无码不卡在线观看下载| 亚洲6080yy久久无码产自国产| 亚洲老熟女五十路老熟女bbw| 亚洲日本久久久午夜精品 | 亚洲无线一二三四区手机| 亚洲美女在线国产| 亚洲午夜无码片在线观看影院猛| 大胆亚洲人体视频| 亚洲精品国产V片在线观看 | 91天堂素人精品系列全集亚洲| 亚洲一区二区在线视频| 亚洲视频网站在线观看| 亚洲大香伊人蕉在人依线| 亚洲国产精品日韩在线观看| 亚洲人成在线中文字幕| 中文字幕精品三区无码亚洲| 亚洲AV色无码乱码在线观看 | 亚洲AV无码AV吞精久久| 亚洲AV无码乱码在线观看牲色| 亚洲精品456播放| 亚洲午夜久久久久妓女影院| 国产精品久久久亚洲| 少妇中文字幕乱码亚洲影视| 亚洲精品国产情侣av在线| 亚洲一区电影在线观看| 亚洲中文字幕无码久久| 国产成人精品日本亚洲语音| 亚洲无码精品浪潮| 情人伊人久久综合亚洲| 亚洲精品午夜在线观看| 午夜在线a亚洲v天堂网2019| 小说专区亚洲春色校园| 亚洲中文字幕在线观看| 99久久亚洲综合精品成人网| 亚洲va成无码人在线观看|