顯示具有 centos 標籤的文章。 顯示所有文章
顯示具有 centos 標籤的文章。 顯示所有文章

2015年11月8日 星期日

centos apache httpd gzip

最近在寫js~然後就發現開始越寫越肥~
js 做成 min...省一點~
如果是有要用到字型檔的,就不知道該怎麼好orz...
(中文的字型檔爆肥T^T)

看了很久~好像也沒什麼比較好的方式~
就試用一下 gzip, 來結省傳輸的空間~
(頻寬=$$...T_T)

gzip 要看有支援的瀏覽器~
http://schroepl.net/projekte/mod_gzip/browser.htm
原理大概就是 web server 丟個有壓縮過的 給 browser client...
然後browser client 再解壓~

現在的 browser 都比較先進了,主要就是看server有沒有開啟囉~
找了幾篇文章~覺得這個寫得比較好~就用他的方法~
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-mod_deflate-on-centos-7

先check 有沒有裝模組~
apachectl -t -D DUMP_MODULES |grep deflate

現在的版本預設應該都是有的~
再把設定檔寫進去~
vim /etc/httpd/conf.d/mod_deflate.conf
<filesMatch "\.(js|html|css)$">
    SetOutputFilter DEFLATE
</filesMatch>
DeflateCompressionLevel 1

重起httpd
service httpd restart

接著就可以測試~~
wget --header="Accept-Encoding: gzip" http://<your_server_ip>/jquery-1.11.3.js

看他下下來的檔案大小就可以知道真的有變小QQ~

或者開firebug/chrome 開發者工具的 網路 應該也可以發現檔案變小囉~~

2014年3月5日 星期三

centos 常用指令

總算快把上次做的備註都寫完了/灑小花....

最後再把有用到的centos指令做一些整理
當然google鳥哥還是最多最完整的^_<...

-------------------------------------------------------
用指令進行SFTP(scp)
因為悲慘的沒有UI又只能跳版, 所以只能用cmd進行檔案對傳...
scp 本機檔案 帳號@其他主機:檔案
ex:
scp hadoop-1.2.1.tar.gz XXX@xxx.xxx.xxx.xxx:/home/XXX/hadoop-1.2.1.tar.gz

當然如果是windows 和centos要對傳~
windows端只要裝filezilla client就好了^_^/

-------------------------------------------------------
yum安裝時若是卡住...
這次發生是在於防火牆卡了一半的通訊的協定~ 前面的列表清單拿取有過~
但是在安裝過程中~ 有些下不下來~ 然後安裝程序就一直卡著~ 也不timeout...麻煩
(後來確認是部分網路限制被檔~ 拜託機房"全開http, https, ftp"就OK了)
解除程序的做法...
先砍pid暫存檔, 再砍程序

###yum lock
cat /var/run/yum.pid
rm -f /var/run/yum.pid 20360

ps aux | grep yum
kill -9 21361

-----------------------------------------------------
尋找process(ps)
ex: 找java程序
ps aux | grep java

這行好像是像windows的程序的應用程式管理員~
就centos UI介面裡的程序(印象中~有點忘了)
ps -ef

----------------------------------------------------
找檔案(find)
find 指定路徑下 -name 名稱 -type 類型
類似windows的檔案搜詢~ 可以限定尋找file或是資料夾
要注意的是~ 找檔案有權限限制(我想至少要read)~
所以要是像偶用非root查根目錄, 就會被"權限不足"的字洗版Orz...
然後一眨眼洗完後...完全看不到~ 被找到的在那~ 囧a...
ex:
find / -name mapred -type d

----------------------------------------------------
防火牆設定...
現在要注意的是~iptables 指得是ipv4
不過新的OS現在都支援ipv6...是iptables6的樣子...
在service裡可以看到兩個~ 要注意囉...
要注意是否有要分開管理~
我習慣是關ipv6, 只用舊的...內網而已~誰管你用6...XD...
另外hadoop對於ipv6的支援也不知道做好了沒Orz...

vim /etc/sysconfig/iptables
service iptables restart

----------------------------------------------------
因為scp還要打密碼有點麻煩...
在server架起來之後~ 另外有一招是~  用wget...
用http拿資料囉~~

當然資料夾內容要壓一下~ 都到http可以access到的地方~
另一台wget收完再解壓縮...

##壓縮和解壓縮 folder
tar -zcvf XXX.tar.gz ooo
wget http://xxx.xxx.xxx.xxx/ooo.tar.gz
tar -xzf ooo.tar.gz ooo

如果單檔太大~ 純壓縮
###only tar 1 file
tar -czvf ooo_all_.tar.gz ooo_all.sql

因為rar居然無法包tar(但是會解喔~是那招QQ)...
只好特別去下載7z來用~囧rz...
不用zip的原因是~ 因為一_一a...centos沒有內建zip...
在server上能少一事是一事阿QQ
###unzip 7zip tar
tar -xv -f frog.08.tar

--------------------------------------------------
刪除整個資料夾含檔案
記得加-R...使用前要看清楚~ 並在身心健全下使用~~
偶永遠都記得以前發生過rm  /...之後大家就開心的聊天了...
(等MIS把備份倒回去...還好那邊有好好的做備份!!!!!)
###delete file without confirm(-f), -R -> all include sub dirs/files
rm -Rf xxxx

------------------------------------------------
看看server有沒有聽port...
通常用在確認服務是死的活的~
或是看有沒有人佔port
netstat -nap | grep 9000

------------------------------------------------
掛crontab
相當於windows的排程~ 差別crontab要用root設定~
另外...該死的...偶後來發現~crontab跑的環境與user登入時不同...
(path, env都不一樣)
造成python的程式怎麼都不會跑...被搞死...
google應該也會得到不少的泣訴~ 不幸的是~ 我的環境可能掛太多外掛lib...改成絕對路徑, 加PATH...偽裝成sh...都無法運作T__T...
(喵的~ 我只是一個小小小的Java工程師...為什麼還在那邊研究怎麼寫shell script....)
所以那一隻後來就只好改成AP定期batch的方式運作~
總之就是...我覺得python想成為主流語言~ 還有很~~~~~大的進步空間...

vim /etc/crontab

另外crontab有時候程序跑一跑也是會自己死掉但沒關掉的XD...
有次查的時候~ 突然想到做一下ps...結果抓到幾隻~ 看一下啟動日期~ 運作多久...
反正kill掉就好了...還有發現cron產出的pid還蠻"連號"的...XD應該不難判別...




2013年10月29日 星期二

centos 6.3 + python module scikits.audiolab

原本是想用Java處理就好~ 不過卡在頻譜圖一直畫不出來...
(叫一個工數只有20~40分的程度人來做真是太勉強了Orz...)

最後只好妥協用python的套件...

先講快樂windows安裝包(比起centos真的快樂很多, 前提是找得到)...
選用2.6版本~ 是因為當初找得比較齊的~
還好centos內建也是2.6, 至少轉移上去程式可以不用改...
windows快樂包~ 沒記錯的話應該是(依序安裝)
python-2.6.6rc2.amd64.msi
numpy-MKL-1.7.1.win-amd64-py2.6.exe
matplotlib-1.2.1.win-amd64-py2.6.exe
scikits.audiolab-0.10.2.win32-py2.6.exe

接著就是讓我非常意外的...centos安裝...
明明已經是內建python的環境, 怎麼會裝得那麼淒慘...
真的不知道要怎麼說...以下是到處解決xxx package not found後的統整結果~
可能裡面有多裝了一些什麼碗糕的~ 反正重點就是...能一路裝完就好了T___T...

至於重點應該還是在於
裝好gcc
裝好numpy module(1.6.2)
裝好matplotlib(1.1.1)  <--原本想裝最新版的, 看到前置清單放棄...還好舊版的會動...無言
裝好audiolab(0.11.0)
只是為了裝好其中一個模組~ 大概就是要一直google, 試裝N次...Orz...
安裝像debug一樣~ 真是好樣的open source...喵的


   su
    yum install gcc
   
    su   
    cd /etc/xxx/install
    wget --no-check-certificate http://pypi.python.org/packages/source/d/distribute/distribute-0.6.27.tar.gz
    tar -xvf distribute-0.6.27.tar.gz
    cd distribute-0.6.27
    python setup.py build
    python setup.py install
   
    yum install gcc-gfortran
    yum install blas-devel
    yum install lapack-devel
    yum install python-dev python-devel
    yum install gcc-c++
    yum install libpng-devel
   
    ##install pip
    #yum -y install python-setuptools 
    easy_install pip
    pip install pil
   
    ##install numpy
    cd /etc/xxx/install
    #wget --no-check-certificate https://pypi.python.org/packages/source/n/numpy/numpy-1.7.1.tar.gz#md5=0ab72b3b83528a7ae79c6df9042d61c6
    wget http://downloads.sourceforge.net/project/numpy/NumPy/1.6.2/numpy-1.6.2.tar.gz
    tar -xvf numpy-1.6.2.tar.gz
    cd numpy-1.6.2
    python setup.py build
    python setup.py install
   
    ##
    wget http://downloads.sourceforge.net/project/scipy/scipy/0.11.0/scipy-0.11.0.tar.gz
    tar -xzf scipy-0.11.0.tar.gz
    cd scipy-0.11.0
    python setup.py build
    python setup.py install
   
   
    ##install freetype
    cd /etc/xxx/install
    wget http://sourceforge.net/projects/freetype/files/freetype2/2.5.0/freetype-2.5.0.1.tar.gz/download
    tar -xzf freetype-2.5.0.1.tar.gz
    cd freetype-2.5.0.1
    ./configure --without-png
    make
    make install
   
       
    ##install matplotlib(use 1.1.1 OK!! 1.3 fail...Orz)
    #yum install python-matplotlib   
    wget http://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.1.1/matplotlib-1.1.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmatplotlib%2Ffiles%2Fmatplotlib%2Fmatplotlib-1.1.1%2F&amp;ts=1351382082&amp;use_mirror=jaist
    tar -xvf matplotlib-1.1.1.tar.gz
    cd matplotlib-1.1.1
    python setup.py build
    python setup.py install
   
   
    ##install wave module
    wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz
    tar -xzf libsndfile-1.0.25.tar.gz
    cd libsndfile-1.0.25
    ./configure
    make -j8
    make -j8 install
   
    wget --no-check-certificate https://pypi.python.org/packages/source/s/scikits.audiolab/scikits.audiolab-0.11.0.tar.gz#md5=f93f17211c7763d8631e0d10f37471b0
    tar -xzf scikits.audiolab-0.11.0.tar.gz
    cd scikits.audiolab-0.11.0
    python setup.py build
    python setup.py install

centos 6.3 + apache + php + tomcat

起因1是...Java系統都是tomcat...然後centos吵不是root不能bind 80....
我又不想用root跑tomcat...所以就只好加apache...

因2是...postgresql管理工具, 還是phpPgAdmin比較方便...
反正php都是活在apache下

因3是...因為網管議題乾脆都走http ws比較單純...
所以有東西會從內網proxy->DMZproxy->外網proxy
(喵的~ 我也不想搞成這樣)

因4是...apache(httpd)裝起來好快阿阿阿~~~

因5是...我已經在很努力的精簡過多的功能維護設定...
(之後維護的人接不起來...雖小的還是我~_~)

總之~ 基本架構就是apache+php+tomcat....
依不同的主機跟功能~ 會有兩兩配的情況, 還有os(centos, win server)配...
連安裝建置也要客制化真是要死了
(所以今年決定放棄之前比較熟悉ubuntu陣營了...主因是看到centos的桌面比ubuntu好很多...)

總之底下是php(以phpPgAdmin)安裝法...centos和win安裝差蠻多的~

   su
   ##只要一行就裝完apache, 給個讚
   yum -y install httpd
   #change apache listen port
   vim /etc/httpd/conf/httpd.conf
   Listen 80  ( other port--> Listen *:9080)
   /etc/rc.d/init.d/httpd start
   ###(if perssion deney check this)
   getenforce
   -->Enforcing
   setenforce 0
   getenforce
   -->Permissive
   service httpd start
  
   #check log to see httpd is OK?
   ps -ef | grep http
   cat /var/log/httpd/error_log

 
   ##安裝PHP, 也是一行...好!
   yum -y install php
   ##php test page
   cd /var/www/html/
   vim index.php
<?php
phpinfo();
?>  
   ##restart httpd
   service httpd restart
  
   ##test php
   xxxx/index.php 

   ##安裝phpPgAdmin...真好~
   ##不過有發生過yum找不到package...不知道是剛好被關掉還那邊網路檔掉??
   yum install phpPgAdmin
   #check conf, 預設就只開localhost, 不錯有sense...一般應用就是看情況再多加Allow
   cat /etc/httpd/conf.d/phpPgAdmin.conf
  
<Location /phpPgAdmin>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    # Allow from .example.com
</Location>
  
   cat /etc/php.ini

   #如果不知道被東西被裝到那邊去~ search file一下
   #check where? (test ok it is /usr/share/phpPgAdmin)
   find / -name phpPgAdmin
   exit;
  
   ### 安裝湯姆貓, 個人習慣使用zip安裝, yum資料夾結構亂跑很難處理
   ### 使用一般user, 裝在預設8080就好  
   mkdir tomcat
   cd tomcat
   cp ~/apache-tomcat-7.0.26.tar.gz .
   tar -zxv -f apache-tomcat-7.0.26.tar.gz
   cd apache-tomcat-7.0.26
   bin/startup.sh

   ## open browser link xxxx:8080 to test

   ### more setting
   vim bin/catalina.sh
   add
   JAVA_OPTS="-Xms128m -Xmx1024m"
 
   ### use 80(apache2 proxy, ajp)
   su
   vim /etc/httpd/conf/httpd.conf
   ##(G)加在最底下,
   ##不要用/根目錄 轉導~ 會導致php或其他apache目錄被搶走~
   ##依需要使用對應之路徑就好
   <VirtualHost *:80>
       ServerName mybestappp.com
       ServerAlias www.mybestapp.com

       ProxyRequests Off
       ProxyPreserveHost On

       ErrorLog /etc/xxx/log/httpd.tomcat.error.log
       CustomLog /etc/xxx/log/httpd.tomcat.log combined

       <Proxy *>
              Order deny,allow
               Allow from all
       </Proxy>

       ProxyPass /tomcat ajp://localhost:8009/
       ProxyPassReverse /tomcat ajp://localhost:8009/

       ProxyPass /mywebapp ajp://localhost:8009/mywebapp
       ProxyPassReverse /mywebapp ajp://localhost:8009/mywebapp

   </VirtualHost>

   service httpd restart

2013年10月22日 星期二

centos 6.3 service auto start


對server來說~ 有很多service要開機啟動~ 以免發生搞笑的事情...
尤其是ssh !!...跑機房是很痛苦的T__T...

在安裝OS完, ssh 已經預設安裝成service~ 但是"並沒有被啟動", "也未開機啟動"

所以就是只要啟動加設定啟動就好了~~另外還有一個前題重點...
一定要開防火牆(習慣在centos安裝完後~ 反正都會登進GUI畫面~ 用GUI設定防火牆還蠻簡單易懂的~ 就順手先做一下)

另外開機啟動~ AP應該都被設定在level3 或 5啟動~ 各level的定義可以參考
http://ithelp.ithome.com.tw/question/10078093
RunLevel (SysV init) 啟動模式等級可以分為 7 種等級分別是 0 ~ 6,而這 7 個數字所分別代表的意義如下:
0 (halt):系統關機,若您將 RunLevel 設為此模式,則會發現當開機程式完成後系統就直接關機。
1 (Single user mode):單人模式,通常在系統發生問題需要維護時才會進入此一模式。
2 (Multiuser without NFS):多人模式但沒有 NFS 網路功能,通常用於多人多工但不需要網路功能時,才會進入此模式。
3 (Full multiuser mode):多人文字模式,此模式為不需要進入視窗模式,並且具備完整網路功能的管理者所使用的模式。
4 (unused):尚未使用,使用者可以自行定義。
5 (X11):多人圖形模式,此模式為習慣使用視窗模式,並且具備完整網路功能的管理者所使用的模式。
6 (reboot):重新啟動,若您將 RunLevel 設為此模式則會發現當開機程式完成後,系統就直接重新啟動。


  ##firewall setting
  ##open 5432(postgresql), 80(http), 22(ssh)

  ##start ssh
  service sshd restart

  ## assign service auto start
   su
   chkconfig --list
   chkconfig --level 5 sshd on
   chkconfig --level 5 postgresql-9.1 on
   chkconfig --level 5 httpd on
 

centos 6.3 + postgresql 9.1


centos 6.3 其實有內建 postgresql 8.4, 若不想升就不需要處理...
不過若要升就要先把舊的移除~

另外有一點要注意的是~ postgresql 會把 系統帳號(就是ssh用的帳號) 和 db內的帳號結合起來, 簡單的說~ 就是系統帳號和db帳號要用同一個~ 若db connect/owner不用super user(postgres), 就要注意!!(其實設定檔上也可以改設定的樣子~ localhost最上面那群~ 不過在建置時還要create 一大堆schema~ 還要橋那個設定是有點困擾Orz...)

習慣上我會使用centos上的基本user(就是安裝時會設定的那個普通user做 account, 比較沒問題)

另外試了很多次~ 雖然看網路上寫~ 安裝啟動似乎可以不用root, 但是~ 沒root九成都碰到權限問題(裝過五六次~就只有一次不知道未什麼不用XD)...後來就乾脆用root起~ 反正db都是做成service在跑~ root比較沒問題~ 至於權限就控管在db owner底下做處理就好...

user account我大概都是安裝用root, 改設定檔用postgres, psql看情況使用postgres或是自訂user, 設定檔的認證方式~若使用trust 會真的完全不認密碼..個人試過後還是md5比較好...

initdb失敗時~ 會產生一些log檔在data底下~ 基本上就是log看一看後就可以砍掉~ 因為initdb會要求要一個空空的資料夾(yum裝下去應該都是在 /var/lib/pgsql/9.1/data)


   su
   ## remove postgresql inside(default is 8)
   yum erase postgresql
  
   ## install postgresql 9.1
   wget http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-centos91-9.1-4.noarch.rpm
   rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
   yum install postgresql91-server  (yum install postgresql91-server.x86_64)
   adduser postgres
   passwd postgres  (xxxpwdxxx)
   adduser myowner
   passwd myowner  (xxxpwdxxx)
   ### use psql to change pwd
   ###\password postgres  
   ###\q





   ## init postgres db data
   su postgres
   cd /var/lib/pgsql/9.1/data  (check owner must be postgres and EMPTY folder)
   ###if group not permission use root!!!  
   service postgresql-9.1 initdb




   ## config properties
   su postgres
   cd /var/lib/pgsql/9.1/data
   vim pg_hba.conf  (ident -> md5, add access ip range, ident means use another ident server check user/pwd)
   #Add(local host ip must md5 for phpPgAdmin)  
   host    all         all         192.168.xx.1/24       md5
   vim postgresql.conf
   #Update
   listen_addresses='*'




   ## restart postgresql
   /etc/init.d/postgresql-9.1 restart
   ##or use service
   service postgresql-9.1 restart