一早吃完東橫INN的免費早餐,從東橫INN 山形站西口出發。步行約10至15分鐘,到山形站前買公車票,往藏王纜車山麓站,路程約1小時。
2023年7月15日 星期六
2018 - 日本東北賞雪行 - 藏王樹冰與山寺(立石寺) (山形->藏王纜車山麓站->藏王樹冰->JR山寺站->山寺)
2023年7月14日 星期五
2018 - 日本東北賞雪行 - 啟航 (高雄->東京->山形)
這一次要帶老媽去賞雪,坐的是香草航空:
我滿喜歡香草的,可惜後來就跟樂桃合併了。
去程機票的價格是:17,390 TWD (五個人,其中兩個人買了25kg的行李),在2023年的現在回頭去看,真的是便宜的出奇。
1/26就是從高雄出發,這一次我身體已經好的差不多了,就沒有比較特別的事情需要記錄。
2023年6月28日 星期三
tarball 安裝apache-2.4.57及php-8.2.7
工作所需,記一下參數(跟php7有很多的不同)
apache:
./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-includedapr=/usr/local/apr/include/apr-1 --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
php:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-zlib-dir --with-zlib --with-xsl --with-tidy --with-snmp --with-pdo-pgsql --with-pdo-mysql --with-openssl --with-mysqli --with-mhash --with-mcrypt --with-gmp --with-gettext --with-curl --with-bz2 --enable-sysvmsg --enable-sockets --enable-soap --enable-shmop --enable-pcntl --enable-mysqlnd --enable-mbstring --enable-ftp --enable-exif --enable-calendar --enable-bcmath --with-external-pcre --with-mysql-sock --with-external-libcrypt --with-jpeg --enable-gd --with-zip --enable-zts --with-freetype
2023年6月23日 星期五
讓PHP在HTTP下支援pcntl
最近工作上需要讓PHP在HTTP下支援pcntl。在cli的PHP是可以跑的,我也是先丟去cli處理。
但總覺得少了點什麼,於是試著讓它在http也可以跑。
弄了很久,因此記一下心得。
1、外掛so解法方式。
下載PHP tarball,在ext/pcntl下做phpize,就像這樣:
cd php-5.6.40/ext/pcntl
/usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config
./configure
make && make install
cd /usr/src/php-5.6.40/ext/pcntl
cp pcntl.so /usr/lib64/php-zts/modules/pcntl.so
cd php-zts.d/
vi 40-pcntl.ini
add this line:
extension=pcntl.so
apachectl
那個php-config試過不下沒有差,但加掛後不能執行。錯誤訊息是:
cat /var/log/php_errors.log
--enable-rewrite --with-zlib --with-pcre \
--with-includedapr=/usr/local/apr/include/apr-1 \
--enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
2023年2月16日 星期四
DL380p Gen8 安裝ubuntu 22.04及hpasmcli 及異常log處理方式
2023年2月2日 星期四
Install Percona Monitoring Plugins for Cacti
話說最近apache常常自己死掉,然後mysql常常不理我。所以打算在另一台server上用cacti監控它們。我選用的是percona,它在cacti上有開發相關的監控套件。
環境:rhel 8, apache 2.4.52, mysql 5.5.60-MariaDB
percona的部份,可以參考以下說明:
https://www.percona.com/doc/percona-monitoring-plugins/LATEST/cacti/index.htmlpercona的說明算是詳細,但照說明書做的話一定搞不定,我自己都搞了快兩天。所以我還是自己弄了一份教學,希望可以幫上其它人的忙。
由於我們要抓apache的資料,因此要幫他開新功能,請參考下列網頁。難度不高照作即可。
https://httpd.apache.org/docs/2.4/mod/mod_status.html裝完之後要試一下能不能跑:(網址記得代換為自己的IP或網址)
wget wget -U Cacti/1.0 -q -O - -T 5 "http://www.omg.com/server-status?auto"如果你apache裝對了,應該會有下面的回應:(我只節錄部份)
www.omg.com
ServerVersion: Apache/2.4.52 (codeit) OpenSSL/1.1.1m PHP/5.6.40 SVN/1.7.14 mod_wsgi/3.4 Python/2.7.5
ServerMPM: event
Server Built: Dec 20 2021 11:29:54
CurrentTime: Thursday, 02-Feb-2023 16:24:36 CST
我這一台server裝的是rhel8,所以我用yum來裝percona。
yum install percona-cacti-templates
這樣裝起來是1.1.8版,也是最後一版,以後也不會有新的版本了。
接著我們要先修改一下它的設定檔。
vi /usr/share/cacti/scripts/ss_get_by_ssh.php
vi /usr/share/cacti/scripts/ss_get_mysql_stats.phpMySQL的部份要修改帳號及密碼,ssh的部份你要設定一個可以免密碼登入要監控主機的帳號。 不過我只打算透過網頁抓Apache的資料,因此我就不設定ssh的部份。
php /usr/share/cacti/scripts/ss_get_by_ssh.php --type apache --host www.omg.com --items gg,gh/usr/bin/php -q /usr/share/cacti/scripts/ss_get_mysql_stats.php --host www.omg.com --items kx,ky --user omg --pass ohmygod --port 3306再來就是麻煩的部份:
cd /usr/share/cacti/resource/percona/binperl pmp-cacti-template --script ../../../scripts/ss_get_by_ssh.php ../definitions/apache.def > apache.xmlRedundant argument in sprintfrm pmp-cacti-templatewget https://raw.githubusercontent.com/percona/percona-monitoring-plugins/master/cacti/bin/pmp-cacti-templatevi pmp-cacti-template./pmp-cacti-make-hashes --refresh /usr/share/cacti/resource/percona/definitions/mysql.def > /usr/share/cacti/resource/percona/definitions/mysql_now.def./pmp-cacti-make-hashes --refresh /usr/share/cacti/resource/percona/definitions/apache.def > /usr/share/cacti/resource/percona/definitions/apache_now.defperl pmp-cacti-template --script ../../../scripts/ss_get_by_ssh.php ../definitions/apache_nowdef > apache.xmlBoth the meta file and the script file must have a version at pmp-cacti-template line 641.vi /usr/share/cacti/scripts/ss_get_by_ssh.php perl pmp-cacti-template --script ../../../scripts/ss_get_by_ssh.php ../definitions/apache_nowdef > apache.xmlperl pmp-cacti-template --script ../../../scripts/ss_get_mysql_stats.php ../definitions/mysql_now.def > mysql.xmlcd /usr/share/cactiphp cli/import_template.php --filename=resource/percona/bin/apache.xmlphp cli/import_template.php --filename=resource/percona/bin/mysql.xml2023年1月15日 星期日
CE (Cheat Engine)指標 (pointer) 遊戲修改應用教學
用Cheat Engine (以下簡稱CE) 改遊戲的人應該會遇到一個問題,在重開遊戲後需要重新找要修改
的東西所在的記憶體位址。其實CE有提供指標的功能,簡單說就是找出記憶體的相對位址,
這樣每次重開遊戲就不需要重新找一次了。
這邊做一個簡單的教學(其實是我常忘,寫個備忘錄)。
在此我們用snes9x64及ce7.4 64做驗證,如果用32位元的程式就用ce7.4 (32),我們在此使用
64 bit的版本做示範。
開啟snes9x,然後開啟三國志3,接著選擇第一時期(189年),我們選擇劉備,他目前住在平原。
目前黃金是2300,先用模擬器的功能做隨機存檔。接著我們用簡單的搜尋功能,找到其目前記
憶體位址 (長度是2 byte)。這邊的操作不再細述。
接著我們再讀存檔,取回黃金2300的狀態。
我們將這筆記錄按兩下左鍵,丟到下面的修改區。接著對這一筆記錄按右鍵,點選
『Find out what writes to this address』
會有確認視窗,按Yes即可。
然後會跳出一個監控視窗,它目前是空的。
跟著我們再花100元。再回頭看這個監控視窗,在Instruction的部份已經有東西了。
接著點選『More information』
再來就是關鍵了,CE建議的位址是:『04E0ECF0』在這頁是RDX的位址,我們儲存備用
(對它點右鍵就會提示自動複製)。但我們看一上面的組合語言:它是『rcx+rdx』,
RCX是它的偏移位址,它是『000028C0』同樣存下來備用。(另外開一個文字檔來存它)
回到CE的搜尋視窗,開始一個新搜尋,勾選Hex,長度改為4 Bytes,輸入04E0ECF0,
找出誰的值是它。我們找到一堆,通常是第一個,如果不是就一直往下試。我們這個例子
剛好是第一個。
對第一筆按兩下左鍵,讓它跑到下方的修改區。接著對它的位址『1408D8BE8』點兩下左鍵。
它的Address是『”snes9x-x64.exe”+8D8BE8』,把它複製起來。
快要完成了,我們點選右下角『Add Address Manually』,先點選『Pointer』,再來要輸入
offset,我們把之前備份的『000028C0』貼上去,接著來指標的位址,我們貼上剛剛複製的
:『”snes9x-x64.exe”+8D8BE8』,記得Type要改成『2 Bytes』因為我們的原始搜尋就是2 bytes。
最後我們看一下Address下方欄右邊的數字,已經變成2200塊了。看來我們大功告成了 ,
我們點選『OK』讓它跑到下方的編輯區。
最後我們對這一筆點選『Active』,滑鼠對『No description』點選兩下左鍵改成『189-平原金』
以茲識別。最後再點選Value將它改成5000做測試。
有趣的是,你改完指標資料之後,第一次找到記憶體位址也一併修改了。因為它本來就是結果,
是記憶體互相指來指去的結果,但我們找到的是最原始的指標,是用來找到這些記憶體存放位
址的方式(相對於snex9x的位址)。即使我們下次開遊戲前電腦已做過各項操作,但它永遠會是正
確的。
我們回到遊戲,也可以看到它變成5000塊了。記得要刷新一下畫面,開啟幾個指令再取消。
我們將作弊碼碼存檔,點選左上角File,點選Save as ,再隨意取個檔名存檔。在此我用san3j。
最後我們關掉模擬器跟CE,然後隨便做一些操作。看重新載入遊戲及修改器時,這個作弊碼
能不能正常運作。我們依序開啟模擬器載入遊戲,讀入剛剛的隨機記憶。這個時候還是2300元
。
接著開啟CE,然後讀取模擬器的程式,再讀取剛剛儲存的CT檔。
(你也可以直接對CT檔按兩下左鍵,它會自己呼叫CE,你再從CE讀取模擬器的主程式)
接著將189-平原金Actvie,再修改其數值為5000。這邊可以觀察一下,之前一開始找到的
04E115B0已經變成跟2300元無關的16068了。
接著我們回到遊戲,再切換一下視窗。變回5000元囉。真方便,不需要每次都搜尋一次。
在此說明一下,這個範例比較簡單,只有一次偏移(offset),實務上有可能會遇到偏移兩次、
三次、甚至四次的CASE。就再麻煩讀者自行評估哪種方便了。