# php相關設定

### PHP升級版本方式

##### 檢視現在php程式的詳細資料跟版本

```
sudo dpkg -l | grep php | tee packages.txt
```

[![image.png](https://book.4inlibra.com/uploads/images/gallery/2025-01/scaled-1680-/zTlimage.png)](https://book.4inlibra.com/uploads/images/gallery/2025-01/zTlimage.png)

**備註：請注意自己安裝跟需要的套件去做更新**

##### **建立資料來源資料庫**

<span style="color: rgb(224, 62, 45);">**debian**</span>

```
sudo apt install apt-transport-https
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
```

**<span style="color: rgb(224, 62, 45);">Ubuntu</span>**

```
sudo add-apt-repository ppa:ondrej/php
sudo apt update
```

##### 安裝新的php

```
sudo apt install php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl}
```

**備註：視需要做所需要安裝的php套件增減。**

##### 安裝跟nginx或apache運作的php模組

<span style="color: rgb(224, 62, 45);">**nginx**</span>

```
sudo apt install php8.3-fpm
```

**備註：完成後需要在nginx設定好才會正常運作**

**<span style="color: rgb(224, 62, 45);">apache</span>**

```bash
sudo apt install libapache2-mod-php8.3
```

**備註：安裝後需要啟用新版，關閉舊版**

##### 檢視新的版本是否正常運作

**<span style="color: rgb(224, 62, 45);">nginx</span>**

```
sudo systemctl status php8.3-fpm.service
```

##### 移除舊版

```bash
sudo apt purge php8.2*
```

### 效能相關設定

##### JIT設定（設定php.ini）

```
opcache.jit = 0    # 關閉
opcache.jit = 1235 # 適合一般 web（官方預設）
opcache.jit = 1256 # 更積極的編譯
```

```
[opcache]
opcache.enable=1
opcache.enable_cli=1     ; 若你希望 CLI 也加速
opcache.jit=1235         ; 官方推薦的 JIT 等級
opcache.jit_buffer_size=128M
```

確認是否啟用

```
php -i | grep JIT
```

也可以看

```
<?php phpinfo(); ?>
```

主要差異

- 科學計算
- 圖像處理
- 迴圈密集計算
- 伺服器長時間執行的 daemon
- 自動化、ETL 等非 Web 工作

原因：JIT 只加速 CPU-bound，而 Web 程式大多是 I/O bound（資料庫 / 檔案 / 網路）。

一般差異

##### APCu設定

```
[apcu]
apc.enabled=1
apc.shm_size=128M
apc.enable_cli=0
```

參數說明：

- **apc.enabled=1** → 啟用 APCu
- **apc.shm\_size=128M** → 設定分享記憶體大小（快取容量）
    
    
    - 小網站：32M
    - 中型：64M
    - 大型：128M~256M
- **apc.enable\_cli** → 是否讓 CLI 也使用 APCu
    
    
    - 通常建議 0（避免干擾 CLI）

##### 參考資料

https://php.watch/articles/php-8.3-install-upgrade-on-debian-ubuntu#php83-ubuntu-quick