Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: PHP

啟用 OPcache 加速 PHP 執行

Posted on 2021 年 12 月 13 日2021 年 12 月 13 日 By 日落 在〈啟用 OPcache 加速 PHP 執行〉中有 1 則留言

PHP 是一種直譯式語言,也就是說程式碼開起來以後,讀一行、執行一行,軟體修改後不須重新編譯,直譯器重新再讀取一次即可看到修改後行為上的差異。

這在開發環境是一個非常棒的特性,可以加速開發的迭代速度。但也有缺點,當程式確定要上產品線以後,在正式主機上 PHP 也是讀一行執行一行,每次使用者造訪網頁時都要開啟程式碼讀取一次。

之前在 2010 年時,是讓 PHP 搭配 APC 來將讀取過的結果暫存起來,現在 PHP 官方已經內建 OPcache 工具來處理,不用另外安裝工具。OPcache 會將已翻譯過得檔案建立快取,只要程式碼沒有變更過且有快取可用,PHP 就會直接從快取來執行而不重新讀取程式碼,這對產品線上不常更動的程式非常有用。

開啟 php.ini 並找到 [opcache]:

[opcache]
opcache.enable = 1  ; 設定為啟動
opcache.memory_consumption = 512  ; 使用 512MB 的記憶體做快取

主要就上面這二個設定,其他的可以看說明再調整。

接下來要注意的就是觀察主機記憶體使用量,千萬不要讓記憶體吃光開始使用 SWAP,不然就會變成沒有開啟 OPcache 那樣慢了。

Tags:PHP

用 PHP 將常見影像格式轉成 WebP

Posted on 2021 年 12 月 7 日2021 年 12 月 7 日 By 日落 在〈用 PHP 將常見影像格式轉成 WebP〉中尚無留言

WebP 影像格式是專為了網路服務設計的格式,可以在一般人肉眼看不出差異的情況下,將影片檔案縮小,並加速網路傳輸速度。PHP 的 GD library 也早已提供格式轉換功能,以下就來介紹使用方法:

<?php

$in = "source.jpg";
$out = "NEW.webp";

// 先使用 GD 讀取原始影像
$img = imagecreatefromjpeg($in);

// 儲存成 webp
imagewebp($img, $out);


謹此而已,沒有想像中的麻煩。


懶得寫網頁小工具轉換,乾脆改成 script 在 console 自動處理,程式碼放在 Gist/johnroyer,有需要的自己拿抓,也歡迎留言許願 XD

Tags:PHP, 網路架站

PHP 8.1 released!

Posted on 2021 年 11 月 26 日2021 年 11 月 26 日 By 日落 在〈PHP 8.1 released!〉中尚無留言

RC 很長一段時間以後, PHP 8.1 終於發布了!

功能上的異動可以參考:https://www.php.net/releases/8.1/en.php

Tags:PHP

GCP Cloud Functions PHP supported Extensions

Posted on 2021 年 10 月 13 日2021 年 10 月 13 日 By 日落 在〈GCP Cloud Functions PHP supported Extensions〉中尚無留言

不曉得 GCP Cloud Functions 到底對 PHP 支援多少東西,畢竟很多功能需要安裝 extensions,因此寫個 script 列出環境中可用的 extensions:

<?php

var_dump(get_loaded_extensions());

不過很意外得發現幾乎所有 extensions 都可以用:

Array
(
    [0] => Core
    [1] => date
    [2] => libxml
    [3] => openssl
    [4] => pcre
    [5] => sqlite3
    [6] => zlib
    [7] => bcmath
    [8] => bz2
    [9] => calendar
    [10] => ctype
    [11] => curl
    [12] => dba
    [13] => dom
    [14] => enchant
    [15] => hash
    [16] => fileinfo
    [17] => filter
    [18] => ftp
    [19] => gd
    [20] => gettext
    [21] => gmp
    [22] => SPL
    [23] => iconv
    [24] => intl
    [25] => json
    [26] => ldap
    [27] => mbstring
    [28] => session
    [29] => pcntl
    [30] => PDO
    [31] => standard
    [32] => pdo_pgsql
    [33] => pdo_sqlite
    [34] => pgsql
    [35] => Phar
    [36] => posix
    [37] => Reflection
    [38] => mysqlnd
    [39] => shmop
    [40] => SimpleXML
    [41] => soap
    [42] => sockets
    [43] => pdo_mysql
    [44] => exif
    [45] => sysvshm
    [46] => tidy
    [47] => tokenizer
    [48] => xml
    [49] => xmlreader
    [50] => xmlrpc
    [51] => xmlwriter
    [52] => xsl
    [53] => zend-test
    [54] => zip
    [55] => mysqli
    [56] => cgi-fcgi
    [57] => Zend OPcache
)

看了 example code,也可以使用 composer,這樣彈性非常大。搞不好可以把一些服務直接搬過去了。

Tags:GCP, PHP

2021 年 PHP 各版本使用狀況

Posted on 2021 年 5 月 11 日2021 年 5 月 11 日 By 日落 在〈2021 年 PHP 各版本使用狀況〉中尚無留言

PHP Versions Status 2021 文章中看到,目前的 PHP 已經有過半都已經更新到 7.x,是個不錯的消息。

版本大至相同後,社群開發的共用函式庫、PHP 核心較能將花的時間收斂起來用在刀口上,遇到問題在網路上也比較容易找到解決方法。

接下來就看 8.x 的規範定下來後,大家慢慢把程式碼升上去了。

Tags:PHP

文章分頁

上一頁 1 ... 6 7 8 ... 26 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.