wordpress 6.5.5 出現ERR_TOO_MANY_REDIRECTS error

場景

  1. 有對外IP充當反向代理程式VM(CentOS 7.9)
    httpd reverse proxy 2.4.6
  2. 無對外IP,內部vm (RockyLinux 9.4)
    Docker CE + Container WordPress 6.5.5

讓反向代理程式連到wordpress,網頁測試居然出現ERR_TOO_MANY_REDIRECTS 錯誤

爬文之後,要在wordpress的wp-config.php加上

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}

再不行,要加上

if (isset($_SERVER['HTTP_X_FORWARDED_HOST']) && isset($_SERVER['HTTP_X_FORWARDED_PORT'])) {
$_SERVER['HTTP_HOST'] = $_SERVER["HTTP_X_FORWARDED_HOST"];
$_SERVER['SERVER_PORT'] = $_SERVER["HTTP_X_FORWARDED_PORT"];
}

來源 https://lukashermann.dev/writing/wordpress-too-many-redirects/

docker上的nextcloud 為何要移轉到新的vm上?

為何要移轉到新的虛擬主機上? 因為原本虛擬主機已經是EOL了,若nextcloud升級,會面臨資料庫版本不符、docker版本過舊問題;需要另外安裝新虛擬主機、安裝新docker,升級資料庫版本,才能解決nextcloud無法升級問題。

作法如下:

  1. 使用mysqldump 將nextcloud資料匯出,並匯入到新的vm上的資料庫
  2. 將 volume 資料匯出,新docker建立相對應的volume後,再將匯出的資料丟進volume裡面
  3. docker 拉取nextcloud原本images後,重新啟動nextcloud容器
  4. 確認啟動成功後,才能進行nextcloud升級

Android取得目前wifi連線資料

API 31(含)以後,寫法變了,

https://developer.android.com/reference/kotlin/android/net/wifi/WifiManager#getConnectionInfo()
照著官方這樣寫,似乎還是無法取得連線資料,須加上 FLAG_INCLUDE_LOCATION_INFO 才行。

WifiManager wifiManager = (WifiManager) activity.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

final NetworkRequest request = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build();
ConnectivityManager connectivityManager = activity.getSystemService(ConnectivityManager.class);

ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback(FLAG_INCLUDE_LOCATION_INFO) {
@Override
public void onAvailable(Network network) {}

@Override
public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
WifiInfo wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo();
String aConnectedWifiSSD = wifiInfo.getSSID().toLowerCase();
Log.d(TAG,"wifiInfo="+wifiInfo);
connectivityManager.unregisterNetworkCallback( this);

}
};
if( wifiManager.isWifiEnabled() ) {
connectivityManager.requestNetwork(request, networkCallback); // For request
connectivityManager.registerNetworkCallback(request, networkCallback); // For listen
}
# 需要的權限
android.Manifest.permission#ACCESS_FINE_LOCATION
android.Manifest.permission#ACCESS_WIFI_STATE

Android開發關於AlertDialog兩三事

開發android都知道,要顯示視窗訊息,不是那直覺方便的,需要搭配Handler參與才能走得順。

# 原本以為myAlterDialog.show()後,就可以馬上執行其他程式商業邏輯,完成後停掉myAlterDialog即可
# (例如我們要實現APP「顯示"請稍後",然後背景執行其他程式商業邏輯,執行完取消"請稍後"」)
# 但我沒想到程式商業邏輯需要寫在Handler裡面才不會讓卡住。

public class MainActivity extends AppCompatActivity {
  AlertDialog.Builder waitBuilder = null;
  AlertDialog waitDialog;
  ...
  protected void onCreate(Bundle savedInstanceState) {
     ...
     waitBuilder = new AlertDialog.Builder(activity);
     waitBuilder.setCancelable(false);
     waitBuilder.setView(R.layout.loading_dialog);
     myAlterDialog = waitBuilder.create();
  }

  public void onStart() {

    adapter.setOnItemLongClickListener(.....){
      ...
      runOnUiThread(new Runnable() {
        @Override
	public void run() {
          myAlterDialog.show();
	  new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
	    @Override
 	    public void run() {
              runOnUiThread(new Runnable() {
                @Override
                public void run() {
                  ...
                  Toast.makeText(activity,"success"....
                  myAlterDialog.dismiss();
                }
              });
	    }
	  }, 300);	
        }
      }
      ...
     });		
   });
}

麻瓜勿擾,GIT文字筆記

2011年第一隻android app有數萬下載量,到2019年我又練習寫了一個「GIT文字筆記」,是個「麻瓜勿擾的APP」。
該APP有開源,久了我也幾乎忘了有這,最近收到app要改目標版本,否則要下架,於是我更新時,再加碼限制android 13或以上才能安裝使用;
果然幾乎沒人用,到目前只有50+下載 XD

我這APP也很奇葩,用git shallow減少clone下載版本量呢。

https://play.google.com/store/apps/details?id=inmethod.gitnotetaking

java jdbc 連到 M$ access “ucanaccess”

年紀一大把了,還在搞Acess,慘

你可以存取的(u can access),到此下載

解開後,除了本體ucanaccess-xxx.jar外,在lib目錄下的jar檔也需要。

其中存取access的關鍵jackcess-xxx.jar (目前最新版4.0.6),可另外下載取代ucanaccess內建的3.0.1版本

JDBC Connection String

jdbc:ucanaccess://c:/xxx.mdb;memory=false

GIT 版本控管,Client/Server 應該要不分彼(THRIES)此(OURS)才對

一般來說做事不要分彼此,若出現文件衝突,就只好看誰是老大,就聽誰的

Checkout

git checkout --theirs src/.
git checkout --ours src/.

Merge 也很精采,有所謂的合併策略strategy,先記錄下來有這回事,https://git-scm.com/docs/merge-strategies,以後再研究


			
		

AlmaLinux 9 修改sshd port號碼

以前修改sshd port 號碼很簡單,因為我把selinux關掉了,現在年紀大了,心臟不好,不敢關閉selinux,只好乖乖照規定執行。

#修改port
vi /etc/ssh/sshd_config

#讓selinux放行
semanage port -a -t ssh_port_t -p tcp <port 號碼>

#firewall-cmd放行port號碼
firewall-cmd --add-port=<號碼>/tcp --permanent
firewall-cmd --reload

#然後重開機囉
1 2 3 4 5 ... 77