2019年6月25日 星期二

Docker 中如何重啟apache & OPcache reload

最近進行中的專案,有用到OPCache
很怪,OPCache 常常會無法照Cache檔顯示
狀況不明,在沒空查參數情況下,重啟就能正常更新 當然直接更新再說

在Docker中要重啟apache就能讓OPCache reload,所以我們可以執行以下指令來達到重啟 (以CentOS為例):


docker-compose exec your-image-name httpd -k graceful

graceful 也可以換成restart,我以前都是使用restart 但上網看了其它人的說明

我們如果要在不重新啟動 Apache 的情況下重新載入設定檔,就要用到 graceful 這個指令,它會傳送一個 SIGUSR1 的信號(signal)給 Apache 伺服器,讓 Apache 很優雅的(graceful)重新啟動。如果 Apache 本來就沒有在執行,那麼它會直接啟動(start)。

graceful 跟 restart 不太一樣,他不會像 restart 一樣直接中斷目前正在進行的連線,而是會等待所有的連線都結束之後,才會重新啟動、載入設定檔,並且重新開啟 log 紀錄檔。而 graceful 在重新啟動之前,也會使用 apache2ctl configtest 來測試設定檔是否正確。

看來graceful 是更加完善的重啟,所以之後多半就改用這個吧!!

2019年6月13日 星期四

Laravel 重新安裝套件


Laravel 重新安裝套件

最近在小試Laravel 一開始執行的還算順利
但不知為何,在下完清cache指令後就都無法正常執行了

php artisan cache:clear
php artisan config:clear
php artisan view:clear
只會出現Error 500

在為了不想花時間追這怪問題(其實也已經花了不少)
所以想說重新再來一次好了

但重新再來一次,發現無法正常運行 出現啟動不了問題
出現了 ...vendor/autoload.php  not Found
查了一下發現是Vendor並沒有在第一次啟用時下載載入

蠻怪的,該不會是先前的project 已載入,所以就不載入? 
看來之後要先去好好看一下Laravel的架構才行

排除方式,執行

composer update

讓他更新下載, 有點久因為算是第一次載入
完成後,第二次建立的專案,就可以正常運行了