PHP5 upgrade PHP7 and News, Config
LEMP 環境,升級 php
流程為:
狀況
簡易 PHP 設定、Pool (link)
流程為:
- 備份 php5
- 移除 php5
- 新增 PPA
- 安裝
備份 php5
- 壓縮 /etc/php5 與 /etc/php/5.x 資料
移除 php5
- apt-get purge php5-fpm && apt-get --purge autoremove
- 或 apt-get remove php5-common -y && apt-get purge php5-common -y
安裝
- apt-get install software-properties-common
- add-apt-repository ppa:ondrej/php
- apt-get update
- apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-opcache php7.0-xml php7.0-mbstring
- 可依照自己需求增減 extension
操作
- php.ini 路徑
- /etc/php/7.0/php.ini
- 查詢 extension
- ll /usr/share|grep php7.0-
- nginx 需要調整 fastcgi_pass 路徑
- 原本:fastcgi_pass unix:/var/run/php5-fpm.sock;
- 改成:fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
- phpmyadmin 出現 找不到 php5-fpm 路徑
- apt-get remove phpmyadmin
- wget 新版,解壓縮至 web
- nginx 設定導向 (link)
- 若開啟 php.ini 中的 extension,Unable to load dynamic library '/usr/lib/php/20151012/xxx.dll'
- 須注意你開啟的延伸元件是否有存在上述的路徑內
- Codeigniter 3.0.6 似乎不需另外開啟 mysqli.so,仍可運作
Opcache
Speeding up the web with PHP7 by Rasmus Lerdof |
- opcache 是先將 php script 先編成 bin 檔,下一次存取省去編譯的時間
- 提供幾種存放方式
- SHM (Share memory)
- file
- HugePage (file 存到 Swap Space) //類似 RAMDISK
- 速度上,若一般為 1x,檔案形式則為 4x,最快的是用記憶體 10x,檔案形式放在 swap 速度或許接近 SHM
- AWS、GCE 預設的 instance 都沒 swap space,要手動建立
- 經測試使用記憶體能有效縮短時間,但偶爾會爆慢
- 靜態檔案小,在 SSD or HDD 似乎沒辦法有效施展性能,不是很穩定
- 開啟 php.ini
- 使用記憶體
- opcache.enable=1
- opcache.enable_cli=1 #for cli
- 產生靜態檔
- opcache.file_cache=/tmp #請先使用 tmp 路徑
- opcache.file_cache_only=1 #一律使用靜態檔
- 可以到 /tmp 看是否正常產生檔案
- 使用 HugePage
- opcache.huge_code_pages=1
- 要測試看看,並觀察 phpinfo() 內,cache 命中率、記憶體用量等,評估是否適合開啟
總結
- 相較於 5.5,執行時間稍微省 30~50% 左右
PHP5 upgrade PHP7 and News, Config
Reviewed by Wild
on
6/29/2016 10:00:00 下午
Rating:
沒有留言:
沒有Google帳號也可發表意見唷!