SRI (Subresource Integrity) 是一個透過瀏覽器驗證引用的第三方資源,確保內容沒有被串改。
例如,我們常會引用第三方的 CDN 來源,以加快請求的時間。但由於 CDN 來源分散,難以進行定位,若其中一個來源節點受到劫持,可能會發生隨機的劫持,並且難以重複呈現,用戶刷新頁面後,就無法再重現。
Continue ReadingRedis pub/sub 連線一段時間出現訂閱失敗的處理方式
Redis subscribe 在訂閱一段時間可能失敗的情況有兩種, 1. 啟動沒多久就發生超時, 2. 長期才發生的連結斷開
在實際開發過程,兩種方式情境都可以同時設置,處理方式如下:
Continue Reading如果設定排程執行 php artisan
預設會使用 root 來執行,就會導致產生的 log 檔案會有權限問題。
解決方式,首先關閉 root 產生的排程,開啟排程檔案將執行的程式先註解
crontab -e
接著,用 www-data 身份來設定排程
crontab -u www-data -e
例如,以下設定每三十分鐘執行
30 * * * * php /var/www/html/artisan course:create >> /dev/null 2>&1
以上設定完畢後,先刪掉今天產生的 storage/log/ log 檔案,
將 crontab 排程時間先調整為 1 分鐘,看看是否能正常運作。
Continue Reading在 AWS 的 RDS Instance ,不同方案 CPU跟記憶體 都有差別,因此在預設時,都會針對主機規格幫你配置好可負載的人數,避免Instance崩壞,通常可以針對你的網站預估同時在線人數來推估適用的方案。
首先,先說明關於 RDS 針對使用者連線相關的配置參數。
Continue Reading這裡針對實際運行服務,記錄一些設定技巧
首先,從 Nginx 的設定檔 /etc/nginx/nginx.conf
nginx.conf 通常為了可將多站點的設定檔獨立分存,一般都會有以下設定,指定將某個資料夾的設定檔 include 到 nginx.conf 裡。
Continue Readingsudo lsblk
>>>輸出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
└─sda1 8:1 0 10G 0 part /
將剩下的空間都分配給 sda1
(注意,這裡 sda 與 1 之間有空格)
Continue Reading解決,Nas 透過靜態路由 Gateway 開通不同網段路由
目前公司有新添購主機,需要將該台主機可開通連結到多個網段,
這裡先說明一下,在內網 192.168.1.42 已經有設定可連結到多網段。
Nas 網路 192.168.1.49 與該台機器位於同網段,因此,只需要在新添購的 Nas 增加靜態路由,
再透過該路由指定 Gateway 的導向路徑到其他網段 (192.168.77.0) 即可
CentOS 安裝 Java 與 Maven 流程
Java環境檢查,若出現 ```-bash:
CVT2HUGO: java: command not found``` 表示未安裝 JAVA
java -version
下載 JAVA
64x
yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 -y
java -version
確認是否存在 maven
mvn -version
安裝 Maven3.6
下載安裝包
wget http://ftp.tc.edu.tw/pub/Apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解壓縮
tar -zxvf apache-maven-3.6.3-bin.tar.gz
移動Maven目錄
sudo mv apache-maven-3.6.3 /opt
修改Maven目录的User/Group为root
sudo chown -R root:root /opt/apache-maven-3.6.3
以 root 身份登入執行以下命令,設置環境變量
cat > /etc/profile.d/maven.sh <<EOF
export M2_HOME=/opt/apache-maven-3.6.3
export PATH=\$PATH:\$M2_HOME/bin
EOF
source /etc/profile.d/maven.sh
確認安裝
mvn -version
Continue Reading
近期開發產品,需要再非公司的場合應用到固定IP。
由於這次產品使用的場合無法立即取得固定IP網路環境,並且實體網路也沒有的情況下,進行了幾種方式,最終找到可行的方式。
在這裡將流程進行紀錄。
Continue Reading.git 檔案過大,會需要依照當時專案的環境做不同處理,這裡將各種可能的狀況,提供解決方案。
當 .git 檔案過大,伺服器記憶體不足時,會出現以下錯誤:
swap Out of memory, malloc failed (tried to allocate xxxxxxxxxx bytes)
通常會發生這問題,原因都在於這個 git repository 已經使用一定時間,提交次數非常多,導致 .git 檔案過大
例如,.git 檔案就佔據 2Gb
遇到這狀況時,可能遇到一些問題,例如:主機環境是否能變動,commit 資訊是否要保留等
以下針對各種問題,提供對應的解決方法:
Continue Reading這裡支援 Python 2.7, 3.4+
下載瀏覽器 driver ,請依照你瀏覽器目前的版本下載對應的 Driver
在這裡,我們目前 Chrome 版本是 79.x,因此下載的是 chromedriver 79.x版本,
下載完成後,將 driver 放置環境變數,並且給予執行的權限
sudo cp chromedriver /usr/local/bin
sudo chmod +x /usr/local/bin/chromedriver
安裝
pip install -U selenium
//or
pip3 install -U selenium
建立專案
vim test.py
建立爬蟲腳本,前往奇摩首頁,搜尋欄輸入 seleniumhq 後,送出搜尋
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get('http://www.yahoo.com')
assert 'Yahoo' in browser.title
elem = browser.find_element_by_name('p') # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)
browser.quit()
執行
Continue Reading在本地預計使用docker 建構 mysql ,卻發現 3306 port 被佔用的情況。
這時,透過 刪除指定進程方式,來移除佔用 3306 port 的 process
先將 3306 process 找出,並且移除
Continue Reading