使用 golang 生成 xml 文件
相當簡單,這邊做個紀錄
運行結果
使用 golang 生成 xml 文件
相當簡單,這邊做個紀錄
運行結果
這裡介紹如何設定 Vim 編輯器使用 UTF8 編碼,解決中文字出現亂碼的問題。
現在許多的文字資料都會以萬國碼(Unicode)的方式來編碼,尤其是在包含中文的文字檔時,UTF8 是最常見的編碼格式,而在使用 Vim 開啟這類的文字檔案時,如果預設的編碼不是 UTF8,中文的部分就會跑出亂碼,以下教大家如何設定 Vim 來解決這個問題。
就我個人而言,都是習慣使用 Vim 來寫程式,偶而會在程式碼中放一些中文註解,Vim 沒有設定好編碼的話,就會像這樣出現一堆亂碼。
UPS與Ubuntu服務器檢測斷電關機
原理:通過crontab定時檢測,路由器是否與目前ubuntu服務器ping通來看是否斷電。
crontab -e
需要先安裝的 lib
需注意的地方:
Makefile Ubuntu Linux 22.06 版本:
顯示目前系統預設運作層級
# systemctl get-default
設定開機啟動至文字模式(runlevel 3)
# systemctl set-default multi-user.target
設定開機啟動至 GUI 模式(runlevel 5)
# systemctl set-default graphical.target
顯示目前系統預設運作層級
# systemctl get-default
設定開機啟動至文字模式(runlevel 3)
# systemctl set-default multi-user.target
設定開機啟動至 GUI 模式(runlevel 5)
# systemctl set-default graphical.target
安裝 nux repo source 及 epel REPO
安裝 xrdp
設定ssh
不知道哪個版本就開始要放置sd檔案上面放ssh檔案(touch ssh)
開機才會自動開啟ssh server
當然有上次經驗,我猜想wifi設定應該也有設定的地方
google一下,果然不出我所料
在PHP中可以通過header函式來傳送頭資訊,還可以設定檔案的content-type,下面整理了一些常見檔案型別對於的content-type值。
semanage boolean -l | grep httpd_can_network
setsebool -P httpd_can_network_connect_db 1
setsebool -P httpd_can_network_memcache 1
=========前置作業==========
0 .製作一個 PEM file
你要有下列三個檔案
。The CSR
。The private key as a p12 file (PushChatKey.p12)
。The SSL certificate, aps_developer_identity.cer
1. 準備好你的CSR (Certificate Signing Request)
CertificateSigningRequest.certSigningRequest
檔案(存在\Dropbox\iPhone相關\Certificates_for_push\AdvClock)
yum install haproxy -y
setsebool -P haproxy_connect_any 1
sysctl net.ipv4.ip_nonlocal_bind=1
yum install epel-release
yum install nfs-utils
yum install bind-utils
請記得要修改 SELinux 的 ssh 設定值
sudo yum -y install policycoreutils-python
sudo semanage port -a -t ssh_port_t -p tcp 2390
參考資料 https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04
Oracle JDK 9
Managing Java
選項說明(版本 2.6.3)
-v, --verbose 詳細模式輸出訊息
-q, --quiet 安靜模式,幾乎沒有訊息產生。常用在以 cron 執行 rsync
-c, --checksum 打在傳送之前透過 128bit 的 MD4 檢查碼來檢查所有要傳送的檔案(會拖慢速度)
-a, --archive 備份模式,表示以遞迴方式傳輸文件,並保持所有文件屬性,等於 -rlptgoD(沒有 -H)
-r, --recursive 對子目錄以遞迴模式處理
-R, --relative 使用相對路徑名稱
--no-relative 不使用相對路徑
--no-implied-dirs
rsync foo/bar/foo.c remote:/tmp/
則在 /tmp 目錄下產生 foo.c 文件,而如果使用 -R 參數:
rsync -R foo/bar/foo.c remote:/tmp/
則會產生文件 /tmp/foo/bar/foo.c,也就是會保持完全路徑。
自行簽發 SSL
openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
[Unit]
Description=F1 Application
After=network.target
[Service]
Restart=always
User=root
Group=root
Environment=NODE_ENV=production
Environment=NODE_PATH=/usr/lib/node_modules/
ExecStart=/root/.nvm/versions/node/v5.11.0/bin/node /home/www/node.js/f1/server.js
[Install]
WantedBy=multi-user.target
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
FLUSH PRIVILEGES;
$ sudo dpkg-reconfigure tzdata
Current default time zone: 'Asia/Taipei'
Local time is now: Fri Feb 13 06:14:20 CST 2015.
Universal Time is now: Thu Feb 12 22:14:20 UTC 2015.
設定完成後,回到命令列時,就會如上面所列一樣,出現新設定的時區的訊息,可以多看一下來確認有沒有設定錯誤,然後,阿舍會建議要重新開機一次來讓所有軟體和服務的日期及時間可以全部重取得,不然,依阿舍的經驗來說,有些軟體或服務就會出現怪怪的問題,所以,變更時區後,還是重開機一下比較好哩 !
另外,如果你想直接用指令就好或是想用 Script 來自動化而不想進去 dpkg-reconfigure 操作畫面的的話,可以直接把時區的資料寫到 /etc/timezone 這個檔案裡,以 Taipei 來說,需要在檔案裡放入下面的字串。
Asia/Taipei
DDOS是一種通過大流量的請求對目標進行轟炸式訪問,導致提供服務的服務器資源耗盡進而無法繼續提供服務的攻擊手段。
一般情況下,攻擊者通過大量請求與連接使服務器處於飽和狀態,以至於無法接受新的請求或變得很慢。
應用層DDOS攻擊的特徵
PHP mb_strlen() 函式,可加入編碼判斷字串長度
如果你有用過 strlen() 函式,用來判斷字串長度算是相當好用,但是要判斷繁體中文字的字數就沒辦法做到了,所以這時候可以使用另一個相似的函式,那就是 mb_strlen(),因為 mb_strlen() 可以加入編碼判斷,像是萬國碼 UTF-8 等,語法如下。
PHP mb_strlen() 函式基本語法
mb_strlen( string, "string encoding" )
PHP mb_strlen() 函式的第一個參數 string 是要計算長度的字串,必要項目,而第二個參數 string encoding 則是要判斷的編碼,可以自定,例如萬國碼就用 utf-8,以下舉個簡單的範例。
PHP mb_strlen() 函式範例
這個範例會輸出的結果是 4,因為 mb_strlen 知道你要判斷的編碼是萬國碼 uft-8,所以 PHP 自動把「天氣真好」這四個繁體中文字型認出來了,如果採用的是 strlen() 函式,則輸出結果就會是 12 囉!
curl 是非常好用的工具
善用它可以做到抓取遠端的圖片儲存於本地端
有時候我們需要過濾搜尋引擎的流量
以下的代碼就相當的好用
資料來源http://stackoverflow.com/questions/677419/how-to-detect-search-engine-bots-with-php
如何停用 php5-fpm 服務於開機時
Ubuntu uses upstart for managing services. The service configuration is at /etc/init/php5-fpm.conf. Don't delete this file, it will just be recreated when the package is updated. Instead, create the file /etc/init/php5-fpm.override with the contents
manual
memcached 參數說明:
# memcached -h
memcached 的參數
常用參數
工商服務,自己公司開發的 汽車美容專用管理系統
後端使用 node.js 開發
前端則是用 C++ Builder 開發
1 什麼是REST
REST全稱是Representational State Transfer,中文意思是表述性狀態轉移。它首次出現在2000年Roy Fielding的博士論文中,Roy Fielding是HTTP規範的主要編寫者之一。他在論文中提到:“ 我這篇文章的寫作目的,就是想在符合架構原理的前提下,理解和評估以網絡為基礎的應用軟件的架構設計,得到一個功能強、性能好、適宜通信的架構。REST指的是一組架構約束條件和原則。”如果一個架構符合REST的約束條件和原則,我們就稱它為RESTful架構。
REST本身並沒有創造新的技術、組件或服務,而隱藏在RESTful背後的理念就是使用Web的現有特徵和能力, 更好地使用現有Web標準中的一些準則和約束。雖然REST本身受Web技術的影響很深, 但是理論上REST架構風格並不是綁定在HTTP上,只不過目前HTTP是唯一與REST相關的實例。所以我們這裡描述的REST也是通過HTTP實現的REST。
回傳 JSON 的時後, 特別是有中文, 記得送 header(常忘記)...XD
或
JSON 是用純文字的 Type 回傳, 如果回傳的是 XML 格式, 那就需要回傳 XML 的 header(一樣也是常忘記的東西), 不過最近是比較少用 XML 格式回傳... XD
判斷 PHP 是否是 Command Mode
可以讀取 PHP_SAPI 這個定數
Watching Memcached Traffic with TCPDump
Here's a fun little one-liner I just hacked together to keep tabs on the get/set commands coming in on a memcached server that I administer.
sudo tcpdump -i eth0 -s 65535 -A -ttt port 11211| cut -c 9- | grep -i '^get\|set'
#防止PING:
sysctl -w net.ipv4.icmp_echo_ignore_all=1
php5-fpm php5-common php-pear php5-cli php5-curl php5-dev php5-gd php5-imagick php5-imap php5-intl php5-json php5-mcrypt php5-memcache php5-memcached php5-ming php5-mysqlnd php5-pgsql php5-ps php5-pspell php5-readline php5-recode php5-redis php5-sqlite php5-tidy php5-xcache php5-xmlrpc php5-xsl pkg-php-tools
php7.0 php7.0-cgi php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-gd php7.0-json php7.0-opcache php-memcached php7.0-mysql php7.0-mbstring php7.0-bcmath
linux下把當前目錄下的所有文件夾屬性設置為755,文件設置為644
find . -type d -exec chmod 755 {} + 這個是把當前目錄下及子目錄的屬性改成755
find . -type f -exec chmod 644 {} + 這個是把當前目錄及子目錄中的文件屬性改成644
[PHP bug]
如果想算出下個月的此時, 一般會使用
$next_month = date('Y-m-d', strtotime('+1 month'));
問題:
但假設今天為5月31日, 結果則會變成7/1,
由於6月沒有31號, 所以自動進到下個月去.
解決方法:
先取得當月的第一天, 在進行計算即可
$first_day = date('Y-m-d', strtotime('first day of this month'));
$next_month = date('Y-m-d', strtotime($first_day . '+1 month'));
讓 PHP 的 Session 與 node.js 共用