2018-04-29

CenOS上升級JRE及TOMCAT

切換為root
sudo -i

安裝tomcat9
cd /www
wget http://ftp.mirror.tw/pub/apache/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz
tar zxvf apache-tomcat-9.0.7.tar.gz

新增tomcat使用者及群組
groupadd tomcat useradd -s /bin/false -g tomcat -d /www/apache-tomcat-9.0.7 tomcat

修改tomcat目錄owner及group
chwon -hR tomcat.tomcat /www/apache-tomcat-9.0.7

安裝jre
cd /usr/java
wget https://www.oracle.com/paht/to/jre/for/jdk-XXX-linux-x64.tar.gz
tar zxvf jre-XXX-linux-x64.tar.gz
alternatives --install /usr/bin/java java /usr/java/jdkXXX/jre/bin/java 300
rm latest
ln -s /usr/java/jdkXXX latest

修改jre路徑
update-alternatives --config java

移除原來jre
sudo update-alternatives --remove java /usr/java/jdk_oldXXX/jre/bin/java

重建並移除無用soft link
cd /etc/alternatives
ln -sf /usr/java/jdkXXX/jre/bin/* .
ln -sf /usr/java/jdkXXX/bin/* .
ln -sf /usr/java/jdkXXX/man/man1/* .
find -xtype l -delete

修改 /etc/profile
-----------------
...
export JAVA_HOME=/usr/java/jdkXXX
export CATALINA_HOME=/apps/tomcat-x.x.x
-----------------
source /etc/profile
java -version
echo $JAVA_HOME

修改 /etc/systemd/system/multi-user.target.wants/tomcat.service
將 jre跟tomcat路徑改掉
=====================
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

#restart after failure
Restart=on-failure
RestartSec=5
TimeoutStartSec=60
TimeoutStopSec=60


export JAVA_HOME=/usr/java/jdk1.8.0_172
export CATALINA_HOME=/apps/tomcat-9.0.7

Environment=JAVA_HOME=/usr/java/jdk1.8.0_172
Environment=CATALINA_PID=/apps/tomcat-9.0.7/temp/tomcat.pid
Environment=CATALINA_HOME=/apps/tomcat-9.0.7
Environment=CATALINA_BASE=/apps/tomcat-9.0.7
Environment='CATALINA_OPTS=-Xms512M -Xmx4096M -server -XX:+UseParallelGC'
#Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/apps/tomcat-9.0.7/bin/startup.sh
ExecStop=/apps/tomcat-9.0.7/bin/shutdown.sh
#ExecStop=/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target
=====================
systemctl daemon-reload

=========
找出檔案的mod number
stat --format '%a' filename

找出有+s的檔案
find . -perm -4000
find . -perm -2000

ref:

2018-03-23

修改TOMCAT的預設ROOT位置

方法一(建議):
新增一個要做為網站根目錄的資料夾(注意不可放在webapps裡,以免重複deploy)
新增 ROOT.xml 到 conf\Catalina\localhost
(ROOT名稱不可改變,且為大寫,因為路徑是以xml的檔名判斷的)
ROOT.xml 新增一行(其中path屬性可不需要,因如前述原因,是以xml的檔名為路徑)
<Context path="" docBase="資料夾所在的絕對路徑,或相對於webapps的相對路徑" />


方法二:
新增一個要做為網站根目錄的資料夾(可放在webapps裡,也可放其它地方)
修改 conf/server.xml
修改<Host>屬性 autoDeploy = fasle, deployOnStartup = false 以免自動deploy
在 <Host> 標籤中新增(需要 path = "" 即路徑為 \ )
<Context path="" docBase="資料夾所在的絕對路徑,或相對於webapps的相對路徑" />

ref:
https://stackoverflow.com/questions/715506/how-to-change-the-root-application
http://staraphd.blogspot.tw/2009/10/change-default-root-folder-in-tomcat.html

2018-03-06

在WINDOWS 10上安裝Kali Linux



Windows 上面可以不用再藉助VM而直接跑Linux了!
藉助Windows Subsystem for Linux(WSL),可以在Windows 10 上跑原生的Linux二進制執行檔(ELF格式),如果Linux上的Wine是用來跑windows程式,那Windows上的WSL也許可以叫做Line(咦?)

  1. 「程式與功能 / 開啟或關閉Windows功能」,啟用「適用於Linux的Windows子系統」,重開機。
    (或直接在有管理員權限的PowerShell裡執行
     Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux )
  2. 到Mircosoft Store,安裝Kali Linux
  3. 啟動Kali後,先設定使用者為root並設定密碼
  4. sudo apt-get install wget
  5. wget https://kali.sh/xfce4.sh | sudo sh //會安裝非常久...
  6. sudo /etc/init.d/xrdp start //啟動xrdp
  7. sudo /etc/init.d/xrdp stop //停止xrdp
  8. netstat -antup | grep xrdp //檢視是否有啟動xrdp
  9. sudo apt-get install aircrack-ng //安裝蹭網工具 (咦?
再用遠端桌面(RDP)連線localhost:3390

ref:

2018-01-22

mac安裝composer & php-cs-fixer

安裝 php 7.2
brew update
brew tap homebrew/dupes
brew tap homebrew/php
brew install php72 (需php >= 7)
mv /usr/bin/php /usr/bin/php55
sudo ln -s /usr/local/bin/php /usr/bin/php

which php
# mac原本php
/usr/bin/php
# Homebrew的php
/usr/local/bin/php

# 重新安裝 PHP 7.2
brew reinstall php@7.2
# 測試重建鏈
brew link --overwrite --force --dry-run php@7.2
# 重建鏈結
brew link --overwrite --force php@7.2

安裝composer (php >= 7)
brew install composer

安裝xdebug
pecl install xdebug

安裝 php-cs-fixer
composer global require friendsofphp/php-cs-fixer
修改~/.profile
加入
export PATH="$PATH:$HOME/.composer/vendor/bin"
source ~/.profile
(或用brew: brew install homebrew/php/php-cs-fixer)

Bitnami Nginx Stack 取消 php opache

Bitnami Nginx Stack 預設是有PHP Opcache的,
因此修改php時無法即時看到修改結果,
當開發機使用時,讓人覺得很鬧。

修改
/Applications/nginxstack-1.10.1-2/php/etc/php.ini

opcache.enable=0

若安裝的是LAMP,需再修改
/Applications/nginxstack-1.10.1-2/apache2/conf/httpd.conf

#Include conf/pagespeed.conf
#Include conf/pagespeed_libraries.conf
給註解起來


ref:
https://docs.bitnami.com/general/infrastructure/lamp/#how-to-disable-the-cache-in-the-server

2018-01-17

WAMP使用PHP7

依WAMP的需求安裝Visual C++ Redistributable 2015
https://www.microsoft.com/en-us/download/details.aspx?id=48145

下載PHP 7
http://windows.php.net/download/
選擇x86或x64(依WAMP版本決定)Thread Safe版本

建立 wamp\bin\php\php7.2 資料夾
從 wamp\bin\php\php5.x 複製 php.ini 及 wampserver.conf 到 wamp\bin\php\php7.2

修改 php.ini
將 extension_dir 修改成 php7.2路徑
將 track_errors = On 註解掉
將 extension=php_mysql.dll 註解掉
複製 php_xdebug-2.6.0beta1-7.2-vc15-x86_64.dll(TS)到 wamp\bin\php\php7.2\zend_ext
在[xdebug]新增 xdebug.remote_enable = on
在[xdebug]新增 xdebug.remote_autostart = on
複製一份 php.ini,改名為 phpForApache.ini (wamp\bin\apache\apache2.4.9\bin\php.ini會link到此檔,而且apache會載入apapche/bin/php.ini!)

※注意:執行wamp時,看一下phpinfo()中的php.ini路徑是否正確,以及xdebug模組是否順利載入。
若是跑php CLI要載入xdebug,跑一下php --ini,看一下載入的php.ini路徑是否正確,
或執行php -S localhost:80,看一下phpinfo()看載入的php.ini路徑是否正確

修改 wampserver.conf
phpConf['apache']['2.4']['LoadModuleName'] = 'php7_module';
$phpConf['apache']['2.4']['LoadModuleFile'] = 'php7apache2_4.dll';

啟動WAMP並選擇PHP版本
Start Wamp > PHP > Version > 7
(Apache 需 >=2.4 )

2017-12-21

MAC上安裝node.js + jshint

在MAC上的sublime text 3需要裝sublimeLinter + jshint,因此需要裝nvm + node.js + jshint

1.安裝nvm (Node Version Manager)

先修改~/.bash_profile,加入下面二行(load nvm.sh才能找到nvm):
export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

建立.nvm目錄 (nvm會將node.js安裝在此)
mkdir ~/.nvm

brew install nvm

重載shell環境變數
source ~/.bash_profile

2.安裝node.js
nvm ls-remote #列出node所有版本,找LTS stable版
nvm install v8.9.3
nvm ls #列出預設使用版本
nvm use v8.9.3 #若nvm末正確設定預設版本,使用nvm use {version}

3.安裝jshint
修改~/.bash_profile,加入下面一行:
export PATH="$PATH:~/.nvm/versions/node/v8.9.3/bin"

重載shell環境變數
source ~/.bash_profile

npm install -g jshint