Select Page
如何變動在 linux 中的預設 php 執行檔?

如何變動在 linux 中的預設 php 執行檔?

在 Linux 中更改命令行的預設 PHP 執行檔,通常涉及更新系統的 PATH 環境變數或使用 update-alternatives 工具(如果你的系統支援)。以下是幾種常見的方法來變更預設 PHP 執行檔:

方法 1:使用 update-alternatives(適用於 Debian、Ubuntu 及其衍生系統)

如果你的系統安裝了多個 PHP 版本,可以使用 update-alternatives 工具來設定預設的 PHP 版本。

列出所有可用的 PHP 替代版本

sudo update-alternatives --display php

設定預設 PHP 版本

使用下面的命令設定預設版本。將 phpX.Y 替換成你想設定為預設的 PHP 版本號,例如 php8.2

sudo update-alternatives --set php /usr/bin/php8.2

如果你想要在可用選項之間手動選擇,可以使用:

sudo update-alternatives --config php

方法 2:直接修改 PATH 環境變數

你可以通過修改 PATH 環境變數來讓系統首先找到你想要的 PHP 版本。這可以通過在你的 ~/.bashrc~/.zshrc 或其他適用的 shell 配置檔案中添加一行來實現。

假設你想使用的 PHP 版本位於 /usr/local/phpX.Y/bin(將 X.Y 替換成具體版本號),可以添加以下行:

export PATH=/usr/local/phpX.Y/bin:$PATH

然後,執行 source ~/.bashrc(或對應的配置檔案)來使變更生效。

source ~/.bashrc

方法 3:使用符號連結

另一個變更預設 PHP 執行檔的方法是建立一個指向你想要的 PHP 版本的符號連結(symlink)。這通常涉及到刪除或重命名舊的 PHP 符號連結,然後創建一個新的指向你選擇的版本。

刪除或重命名當前的符號連結

sudo mv /usr/bin/php /usr/bin/php.old

建立新的符號連結

/usr/bin/php 指向你想要的 PHP 版本。將 /path/to/your/php 替換成你想要設定為預設 PHP 執行檔的完整路徑。

sudo ln -s /path/to/your/php /usr/bin/php

在進行這些變更後,你可以通過執行 php -v 來驗證新的預設 PHP 版本是否已正確設定。

php -v
如何定時打開和關閉 GCP VM Nginx WEB 達到省錢目的

如何定時打開和關閉 GCP VM Nginx WEB 達到省錢目的

建立一個會自動開機和關閉虛擬機器的排程

值得注意的事項:

  • 主機時間都是 UTC 時間,設定的時候,要記得處理這邊,例如台灣時區是+8,所以設定時間的時候要-8

1.首先設定一個 Compute Engine 的 「執行個體排程」如圖所示

2.建立一個新的執行個體排程

設定在每天18:00到23:00最忙碌的時候多開一台主機

3.將要執行的 VM 個體加入到此排程中

記得建立好排程後,要把適用這個規則的 VM 個體都加入,GCP 的排程才會去處理 VM 的開關

4.執行排程的權限設定

如果你之前沒做過權限設定,那肯定會遇到權限不足的錯誤訊息,這時候要來到 IAM 與管理 -> 身分與存取權管理,並且先勾選「包含 Google 提供的角色授權」,然後選擇「授予存取權」

然後主體要選擇你自己的 compute-system.iam 指派角色則是選擇 Compute 執行個體管理員(v1),如圖所示

建立 Ubuntu or Debian 的 Shell Script 定時執行開關機

1.建立自動開關設定的 Script

#!/bin/bash

SOURCE_CONF="/path/to/a.conf"
TARGET_CONF="/path/to/nginx/nginx.conf"

# 使用 sudo 執行需要 root 權限的命令
sudo cp "$SOURCE_CONF" "$TARGET_CONF"
sudo nginx -s reload

2.可以使用 crontab 命令來檢查和管理定時任務(cron jobs)

sudo crontab -e

加入執行時間、程式碼等設定

# 分 鐘 小時 日期 月份 星期 命令
0 23 * * * /path/to/update_nginx_conf.sh

這樣就可以利用 root 權限運行 Script

其中:

  • 分鐘:分鐘(0-59)
  • 小時:小時(0-23,採24小時制)
  • 日期:一個月中的某天(1-31)
  • 月份:月份(1-12)
  • 星期:星期幾(0-7,其中0和7都代表星期日)
  • 命令:要執行的命令或腳本的絕對路徑

例如,如果您希望每天凌晨 3 點執行一個名為 script.sh 的腳本,您應該這樣寫:

檢查

檢查 crontab 列表:輸入 crontab -l 來確認您的任務已被添加到 crontab 列表中。

其他方法

at 指令

例如要讓指令碼在明天的 10:00執行,可以執行下面的指令

at 10:00 AM tomorrow /path/to/script.sh

systemd (System and Service Manager)

  1. 創建一個 systemd 定時任務檔案。
  2. 在定時任務檔案中指定要執行的命令或腳本以及執行時間。
  3. 啟用定時任務。

例如:每一分鐘都要執行一次 script.sh

[Unit]
Description=My Script

[Timer]
OnCalendar=*-*-* *:* *

[Service]
ExecStart=/path/to/script.sh

錯誤處理

如果有遇到無法執行權限的話,可以參考下面的文章解決權限問題

結語

這樣設定完成後,GCP自己就會在晚上11點關機、晚上6點開機,而我的腳本則是在晚上11:00 關閉 Nginx 的 upstream,在18:15開啟 upstream server

不到萬元台幣打造自己的機器狗-Make your pupper

不到萬元台幣打造自己的機器狗-Make your pupper

最新名人新寵「波士頓動力機器狗」,一隻要價220萬台幣,可不是每個人都養得起的,但佛心的史丹佛機器狗,已經開源了,在大陸那邊已經百花齊放,每家公司都擁有自己的機器狗,不用羨慕他們,全世界最強的擬態機器人公司,當然還是波士頓動力,但你看完這篇,也可以在幾天內買好零件,打造自己的動力機器狗。

波士頓動力機器狗宣傳片

史丹佛大學 Pupper 簡介

史丹佛大學開源的機器狗專案,用的主機是 Raspberry Pi 4,OS 是 Linux base ,可以與 Ubuntu 相容,核心的影像辨識演算法用的是 OpenCV ,預設就可以選轉、跳躍、小跑步

日本做的可愛 Pupper

從 Pupper BOM 表開始

可以從下面的網址,取得製作動力機器狗的所有需要的元件,如果全部都用買的大約要900美元,但很多東西是可以自己印,或是自己改,但如果嫌麻煩,直接去 Amazon 上一次購足即可

https://docs.google.com/spreadsheets/d/e/2PACX-1vRAPT8knAtIKwr5NxvVsEOxPK8zk8y3jPc51TdTPQtBHN7I9rqgU3z4Ys-C3Z3ETR2kcSDSY-u5ZP6k/pubhtml?widget=true&headers=false

去 Amazon 買足 Pupper 元件

上面提到的所有元件,已經有人整理好了,你只需要用下面的連結,進去選擇你需要的就可以了,Amazon 的購物清單,真的是超方便敗家的

https://www.amazon.com/-/zh_TW/hz/wishlist/ls/2ZB9AWGJ92F9L?ref_=wl_fv_le

直接購買整理好的 Pupper 元件

https://www.mangdang.net/Product?_l=en

組裝 Pupper 的身體

這部分是最花時間的,分成元件、外殼本體、電子電路,熟捻的高手大約要花費2小時

https://pupper.readthedocs.io/en/latest/guide/assembly.html

https://github.com/stanfordroboticsclub/Pupper-Raspi-PDB/

安裝 Pupper 的大腦 (軟體)

這個部分,如果你是常用 Raspberry Pi 的人,應該可以在1小時左右處理好,如果不是的話,按步驟來,應該需要3-4小時

https://pupper.readthedocs.io/en/latest/guide/software_installation.html

安裝程式在https://github.com/Nate711/RPI-Setup

OpenCV如果想換版本可以參考我之前的文章

校準以及測試

連接你的PS4搖桿,來控制 Pupper

https://pupper.readthedocs.io/en/latest/guide/operation.html

Pupper 參考資訊

Fusion 360 CAD 模型:https ://a360.co/2TEh4gQ

你可以透過 Fusion 360 CAD 匯出模型,並且用 3D 列印把它列印出來

史丹佛大學動力機器狗專案首頁

https://pupper.readthedocs.io/en/latest/guide/purchasing.html

Pi-Hole – Raspberry Pi 上程式開發以及阻擋廣告用的 DNS SERVER

Pi-Hole – Raspberry Pi 上程式開發以及阻擋廣告用的 DNS SERVER

很多時候為了內部程式開發方便或是安裝 wordpress 時候會需要不同的 DNS 名稱,你也可以編修自己電腦中的 host 名單,讓你開發者可以利用 Domain 去安裝 wordpress,或是也可以自己架設一個 DNS SERVER 來處理這件事情,但現在有比較好的選擇,可以兼顧程式開發以及去除廣告的好處,設定又很容易,且還可以安裝在小巧的 Raspberry Pi 上,可以不用透過外面的 DNS 去做繁瑣的設定,非常的加分。

Pi-hole 安裝方法

Pi-hole的安裝很簡單,在 Raspberry Pi 中只要一行,其他的就看圖片精靈回答問題即可

curl -sL "https://install.pi-hole.net/" | sudo bash
初始安裝畫面
告訴你安裝了 Pi-hole 就可以幫你去除煩人的廣告
Pi-hole 別忘了,有能力的人要貢獻點小費,施比受有福
Pi-hole 選擇你上層的 DNS SERVER 台灣建議用 Google 即可
Pi-hole 選擇廣告阻擋清單的供應者,目前也只有一個可以選擇
Pi-hole 是否要安裝管理的介面,為了以後方便,預設把它裝起來吧
Pi-hole 這一段是問要不要安裝 lighttpd 和 PHP 模組,當然你也可以用自己的 web server ,但為了方便起見,用預設的 web server 即可,他不會佔用太多的硬碟空間。
Pi-hole 是否要有記錄檔,當然要囉
Pi-hole privacy mode , https://docs.pi-hole.net/ftldns/privacylevels/,用預設不隱藏任何東西,所有統計數據都可用即可
看到這個畫面就完成安裝,可以將電腦中的 DNS 指向畫面中的 IP ,需要進入管理介面的輸入 http://pi.hole/admin
國外網友超專業教學

Raspberry Pi 多種應用

PiHole官網 – https://pi-hole.net/

PiHole替代品 AdGuard,https://github.com/AdguardTeam/,AdGrard 安裝在 Raspberry Pi 上的說明,https://github.com/AdguardTeam/AdGuardHome/wiki/Raspberry-Pi

Linux 效能優化 – 釋放系統被佔滿的記憶體

最近常常發現 Ubuntu 的記憶體被佔滿,大多是執行 PHP 程式碼所造成的,當記憶體一滿,程式執行上就很沒有效率,利用重開機來釋放記憶體,恐怕也太極端了吧,我來破個題,先提供釋放 Linux 記憶體的方法後,再來說說用那些指令來檢查系統狀態比較實用。

釋放 Linux 記憶體指令

最常用的指令,一口氣要求系統清除 Page Cache、Dentries、Inodes

sudo -i sync; echo 3 > /proc/sys/vm/drop_caches
  • 0:不釋放(系統預設值)
  • 1:釋放頁快取
  • 2:釋放dentries和inodes
  • 3:釋放所有快取

查詢 Linux 記憶體使用狀況

看看 mem and swap 的使用狀態

free -m

專門查看 vm 的狀態

vmstat

可以查詢所有程式的資源使用狀況,以及找出 PID ,以方便刪除程式

top

針對記憶體使用,來個總覽

watch cat /proc/meminfo

利用好工具 htop 來觀察程式的使用狀況,以及可以在 htop 內直接清除程式

htop