Skip to content

Zeroplex 生活隨筆

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

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

年份: 2019 年

Laravel UrlGenerator 判斷 HTTP or HTTPS 的因素

Posted on 2019 年 10 月 7 日2021 年 3 月 12 日 By 日落 在〈Laravel UrlGenerator 判斷 HTTP or HTTPS 的因素〉中尚無留言

第一個要求 Laravel 要使用 HTTP or HTTPS (以下簡稱 protocol … 因為字太多了 .._Drz) 的方法,其實就是在「.env」做設定,例如:

APP_URL=http://zeroplex.tw

再來網路上應該會找到,要開發者在 AppServiceProvider 中加入設定:

URL::forceScheme('https');

這邊的 URL facade,可以從 config/app.php 中追蹤到,是 IlluminateRoutingUrlGenerator::class 的 alias,設定了 forceSheme() 以後,未來透過 UrlGenerator 建立的 link 都會是設定好的 protocol。

BUT …. 就是這個 BUT,若是遇到另一個其他的 method 來產生 URL (例如 IlluminateRoutingRedirector::route() …),這樣就可能吃到開發者設定的 protocol ,則由 Laravel 會自動抓進來的 request 來判斷該用什麼 protocol,若 application 剛好是靠 Nginx 在 handle HTTP SSL 的話,request 到 Laravel 這端時 HTTPS 就已經轉成 HTTP,導致 Laravel 以為 application 沒有上 HTTPS。

若要讓 reverse proxy 後面的 Laravel application 都固定用 HTTPS 的話,可以再到 app/Http/Middleware/TrustedProxy.php 去修改設定,讓 Laravel 識別 proxy 做出對應的動作 (給正確的 protocol)。

Ref: Laravel 5 force HTTPS issue with login routing to HTTP

Tags:AWS, Laravel, Nginx, PHP

讓 less 可以顯示 ANSI 色彩

Posted on 2019 年 8 月 23 日2021 年 3 月 12 日 By 日落 在〈讓 less 可以顯示 ANSI 色彩〉中尚無留言

應該不少人有經驗,在使用 grep 時,要搜尋的關鍵字會用顏色 highlight 方便閱讀,例如:

$ ls -lh | grep php
-rw-rw-r--  1 zero zero  178 Aug 22 19:15 autoload.php
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 cakephp
drwxrwxr-x  5 zero zero 4.0K Aug 22 19:01 phpdocumentor
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpoffice
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpoption
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpseclib
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpspec
drwxrwxr-x  8 zero zero 4.0K Aug 22 19:01 phpunit

不過如果因為列表很長,在把搜尋結果 pipe 給 less 以後,顏色就消失了。

這其實是 grep 這邊會判斷 output 到哪一種型態的 I/O,像是後面接的是 bash pipe,grep 就會自動移除 ANSI color 的 syntax,畢竟不知道 pipe 資料給誰,如果後者不支援 ANSI color 就會變成亂碼。

如果很確定 pipe 後面的指令、工具支援 ANSI color 的指令,就可以下參數要求 grep 輸出顏色。例如:

$ ls -lh | grep php --color=always | less
-rw-rw-r--  1 zero zero  178 Aug 22 19:15 autoload.php
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 cakephp
drwxrwxr-x  5 zero zero 4.0K Aug 22 19:01 phpdocumentor
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpoffice
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpoption
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpseclib
drwxrwxr-x  3 zero zero 4.0K Aug 22 19:01 phpspec
drwxrwxr-x  8 zero zero 4.0K Aug 22 19:01 phpunit
Tags:Bash, Linux

快速判斷 Ubuntu (或該 distribution) 是否重新開機的方法

Posted on 2019 年 8 月 13 日2021 年 3 月 12 日 By 日落 在〈快速判斷 Ubuntu (或該 distribution) 是否重新開機的方法〉中尚無留言

登入 Ubuntu 時,常會看到最底下會有一行字,提醒你主機是否需要重新開機:

Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-142-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 packages can be updated.
0 updates are security updates.


*** System restart required ***

追了一陣子,才知道判斷的方法非常簡單,只要到 /var/run 目錄下檢查是否有「reboot-required」的檔案即可。

例如:

$ ls /var/run
acpid.pid      crond.reboot         initctl         log          motd.dynamic          resolvconf         snapd.socket  udev
acpid.socket   dbus                 initramfs       lvm          mount                 rsyslogd.pid       sshd          unattended-upgrades.lock
agetty.reload  dhclient.enp0s3.pid  init.upgraded   lvmetad.pid  mysqld                screen             sshd.pid      user
atd.pid        dmeventd-client      irqbalance.pid  lxcfs        network               sendsigs.omit.d    sudo          utmp
blkid          dmeventd-server      iscsid.pid      lxcfs.pid    reboot-required       shm                systemd       uuidd
crond.pid      grub                 lock            mdadm        reboot-required.pkgs  snapd-snap.socket  tmpfiles.d    xtables.lock

就這樣,沒了。

Tags:Ubuntu

MySQL 8.0 的新密碼加密 plugin 導致 PHP 連線失敗

Posted on 2019 年 7 月 30 日2021 年 3 月 12 日 By 日落 在〈MySQL 8.0 的新密碼加密 plugin 導致 PHP 連線失敗〉中尚無留言

今天很難得打開 phpMyAdmin 來看一下有什麼改變,但發現一直無法登入,顯示錯誤訊息「」。

查了一下才發現 MySQL 8 預設的密碼有多種格式,預設的格式 PHP 還不支援,所以會登入失敗 (但用 console 會成功)。

解決方法是暫時改為舊版本的密碼儲存方式:

alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';
flush privileges;

然後在設定檔裡面多新增一條規則,把預設的密碼儲存方式改回舊版的:

[mysqld]
default-authentication-plugin = mysql_native_password

Tags:MySQL, PHP

LibreOffice 加油啊

Posted on 2019 年 7 月 21 日2021 年 3 月 12 日 By 日落 在〈LibreOffice 加油啊〉中尚無留言

昨天鄰居想嘗試使用 Linux,大致上都沒什麼問題,但卡到二個點:

  • 輸入法:沒有順手的輸入法 (倉頡)
  • Office 文件工具組:LibreOffice 的操作實在很不直覺,從 M$ 跳到 LibreOffice 目前還沒聽過有人說好用的。
今天還是幫他改回 Windows 系統,實在可惜。
Tags:Linux, Microsoft

文章分頁

上一頁 1 2 3 4 ... 8 下一頁

其他

關於我  (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 國際 授權條款授權.