網頁

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

2017年4月18日 星期二

查詢CentOS的版本

記錄查詢CentOS版本的指令
$cat /etc/redhat-release
CentOS release 5.11 (Final)

2016年4月14日 星期四

在CentOS 6安裝Requests及openpyxl 2.4 模組(Python 2.6.x)

最近突然想學swift及python,正好想做個小功能來玩玩,因為需要用到網路及Excel的功能,網路功能在python本身是有很多module可用,如下


不過想用方便點的,所以安裝requests模組,官網是Python Module - Requests

#安裝requests ref: http://docs.python-requests.org/en/v1.0.0/community/out-there/ 
$ yum install python-requests
oaded plugins: fastestmirror, replace
Setting up Install Process
Determining fastest mirrors
epel/metalink                                                                | 3.9 kB     00:00
 * base: centos.cs.nctu.edu.tw
 * epel: ftp.cuhk.edu.hk
 * extras: centos.cs.nctu.edu.tw
 * updates: centos.cs.nctu.edu.tw
 * webtatic: sp.repo.webtatic.com
base                                                                         | 3.7 kB     00:00
dag                                                                          | 1.9 kB     00:00
epel                                                                         | 4.3 kB     00:00
epel/primary_db                                                              | 5.9 MB     00:01
extras                                                                       | 3.4 kB     00:00
extras/primary_db                                                            |  37 kB     00:00
kbs-CentOS-Misc                                                              | 1.9 kB     00:00
updates                                                                      | 3.4 kB     00:00
updates/primary_db                                                           | 4.6 MB     00:00
webtatic                                                                     | 3.6 kB     00:00
webtatic/primary_db                                                          | 191 kB     00:00
Resolving Dependencies
--> Running transaction check
---> Package python-requests.noarch 0:2.6.0-3.el6 will be installed
--> Processing Dependency: python-urllib3 >= 1.10.2-1 for package: python-requests-2.6.0-3.el6.noarch
............
............
Dependencies Resolved

====================================================================================================
 Package                                  Arch        Version                     Repository   Size
====================================================================================================
Installing:
 python-requests                          noarch      2.6.0-3.el6                 base         95 k
Installing for dependencies:
 python-backports                         x86_64      1.0-5.el6                   base        5.5 k
 python-backports-ssl_match_hostname      noarch      3.4.0.2-4.el6.centos        extras       13 k
 python-chardet                           noarch      2.2.1-1.el6                 base        230 k
 python-six                               noarch      1.9.0-2.el6                 base         28 k
 python-urllib3                           noarch      1.10.2-1.el6                base        101 k

Transaction Summary
====================================================================================================
Install       6 Package(s)

Total download size: 472 k
Installed size: 1.9 M
Is this ok [y/N]: y
............
............
Complete!
這樣就完成了。

Excel的話則是選openpyxl,不過這個套件只支援Excel 2007以後的文件,也要注意版本,如openpyxl 1.x支援Excel 2007,但openpyxl 2.4.0是支援Excel 2010,以及Python至少要2.6以後的版本。

先使用下列指令確認Python版本
$ python -V
Python 2.6.6

下載setuptools(若沒安裝,在安裝openpyxl會出現找不到setuptools套件的訊息)
$ wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
$ tar -xvf setuptools-1.4.2.tar.gz
$ cd setuptools-1.4.2
$ python setup.py install #安裝動作必須是root權限

再來就可以安裝openpyxl 2.4.0
$ wget https://pypi.python.org/packages/source/o/openpyxl/openpyxl-2.4.0-a1.tar.gz
$ tar -xvf openpyxl-2.4.0-a1.tar.gz
$ cd openpyxl-2.4.0-a1
$ python setup.py install #安裝動作必須是root權限

這樣兩個都可以用了

參考網址:
Python Network Programming
Python Module - Requests
openpyxl 2.4.0-a1
How To Set Up Python 2.7.6 and 3.3.3 on CentOS 6.4

2016年3月14日 星期一

centos 6中設SSL加密Apache server

之前在Mac上設置了SSL加密Apache server:Mac學習筆記-開啟HTTPS,這陣子正好也要在自己運行中的Cent OS主機上設置,決定如法泡製,不過卻一直不成功,後來發現主要兩個問題
  1. SELinux設定問題
  2. 防火牆設定忘了開(畢竟是運行中的主機)

第一個問題是Cent OS 6預設就是開啟的

以上轉貼自在 CentOS 設置一個 SSL 加密的網頁伺服器

很多人是都關閉它可以省掉很多權限運行上的問題,很多設定上的看不出的錯誤都是因這個而發生,關閉是比較輕鬆,不過我沒關閉,所以需要注意這類的問題。

第二個問題就不特別說了,只要有防火牆設定都要注意。

底下就將整個過程都記錄下來(轉自在 CentOS 設置一個 SSL 加密的網頁伺服器

$>yum install mod_ssl openssl #安裝ssl套件

$>openssl genrsa -out ca.key 2048 #產生私鑰
$>openssl req -new -key ca.key -out ca.csr #產生 CSR
$>openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt #產生自我簽署的金鑰

#複製檔案至正確位置
$>cp ca.crt /etc/pki/tls/certs
$>cp ca.key /etc/pki/tls/private/ca.key
$>cp ca.csr /etc/pki/tls/private/ca.csr

#假如你遷移了這些檔案而不是複製它們,你可以用以下的指命來矯正這些檔案的 SELinux 脈絡
$>restorecon -RvF /etc/pki
$>vi /etc/httpd/conf.d/ssl.conf

#找到SSLCertificateFile 改成 /etc/pki/tls/certs/ca.crt
SSLCertificateFile /etc/pki/tls/certs/ca.crt

#找到SSLCertificateKeyFile 改成 /etc/pki/tls/private/ca.key
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

#重啟http server
$>service httpd restart


參考網址:
在 CentOS 設置一個 SSL 加密的網頁伺服器
CentOS Apache使用SSL

2015年6月26日 星期五

不同的系統(mac及linux)間的網站檔案移動,最好別用tar打包上傳

今天的移機學到一項很重要的事,若是不同的作業系統的網站檔案做移動,別使用tar做打包後。

因為現今大家大多都使用虛擬空間,替人做案子時,測試機及正式上線機是不同虛擬空間廠商也是有可能的事,可能出現類似底下的樣子

Linux(CentOS) -> Mac OS X(我的機器) -> Linux(Ubuntu)

常發生的問題就是無法讀取檔案,推測的原因是跟SELinux有關,簡單講就是檔案除了本身權限,有些支援SELinux的OS(如:CentOS)有另外的安全設定,以我的經驗來講Mac似乎是沒有或是關閉,所以若是下載完,用Mac做tar,然後再放上有開啟SELinux的主機中,然後untar,就會發生Apache無法讀取,但權限卻沒問題的狀況,最好的方法是一個個檔案上傳,系統會自行建立相關的資訊,就不會有這問題了,但另外的問題就是傳很久.....

2015年6月1日 星期一

強制刪除目錄下特定名稱的檔案或目錄

今天處理個舊專案,原本是用svn,現在要改用git,要先將每個目錄下原關於svn的目錄都刪除掉,以前都傻傻一個個刪除,想想沒有這麼笨吧,找了下相關資料,只要使用底下的shell script即可搞定

cd 你的目錄
find . -type d -name '.svn' <--先確認檔案
find . -type d -name '.svn' | while read f;do rm -rf "$f"; done <-- 全部強制刪除

這樣就ok了,若要刪除檔案,type後的d就改成f

參考網址:
Linux: remove file extensions for multiple files

2014年12月22日 星期一

CentOS筆記-CentOS 6.5 安裝MySQL 5.5

CentOS內定的yum server連結的是mysql 5.1,若要改用mysql 5.5則要先取得新的server。安裝步驟如下:

Cent OS 6.X使用底下指令
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

Cent OS 5.X使用底下指令
rpm -Uvh https://mirror.webtatic.com/yum/el5/latest.rpm

若是安裝過舊mysql server
yum remove mysql mysql-*
#rpm -q mysql mysql-server //這個也行

----------------------------------
執行底下指令,會先安裝舊版再用5.5取代掉
yum install mysql.`uname -i` yum-plugin-replace
yum replace mysql --replace-with mysql55w
----------------------------------

再來執行安裝及設定安全性
yum install mysql55w mysql55w-server
service mysqld start
/usr/bin/mysql_secure_installation

完成!

參考網址:
MySQL 5.5 on CentOS/RHEL 6.5 and 5.10 via Yum
新安裝 CentOS 6.5 筆記

2014年7月11日 星期五

CentOS筆記-grep指令

grep指令在查log時非常好用,以前不知道時都寫程式去parse,不過用grep後就不再寫了,它可以和cut或wc等一塊用,不過這邊就只紀錄一下grep簡單用法,免得我老是要查找

grep 'test' xxx.log //找單一檔案中的test那幾行
grep -v 'test' xxx.log //找單一檔案中的沒有test的那幾行
grep --color=auto 'test' xxx.log //找單一檔案,且字用顏色標起來
grep -n --color=auto 'test' xxx.log //找單一檔案,標出行號
grep -n -A3 -B2 --color=auto 'test' xxx.log //找單一檔案,有這個字的前2行後3行
grep -n -A3 -B2 --color=auto 'test' xxx.log.2014-07* //找多個檔案
grep -n -A3 -B2 --color=auto 't[a-z]st' xxx.log.2014-07* //找多個檔案中,t(任意小寫)st的字,使用正規表示式

暫時記到這裡!

參考網址:
鳥哥的 Linux 私房菜-第十一章、認識與學習 BASH -grep
鳥哥的 Linux 私房菜-第十二章、正規表示法與文件格式化處理-grep

2014年5月9日 星期五

CentOS筆記-Postfix fail: connect to aspmx2.googlemail.com[2607:f8b0:4001:c03::1b]:25: Network is unreachable

出現底下的問題:
connect to aspmx2.googlemail.com[2607:f8b0:4001:c03::1b]:25: Network is unreachable

Google了一下看到這篇[SOLVED] Postfix Connection failure (outbound)?,看起來是CentOS 6才有問題,修改了vim /etc/postfix/main.cf裡頭的資訊

vim /etc/postfix/main.cf
inet_interfaces = all //原設定為localhost
inet_protocols = ipv4 //原設定為all

重新啟動即可
/sbin/service postfix restart

參考網址:
[SOLVED] Postfix Connection failure (outbound)?

2013年7月25日 星期四

CentOS筆記-安裝LAMP

前陣子用阿里雲的系統:CentOS 6.3,建好是一整個空的系統,連Apache、MySQL都沒有,真的空空如也,只能自己加上去,這邊記一下步驟:

安裝Apache http server
yum install httpd
service httpd start


修改/etc/httpd/conf/httpd.conf中<Directory "/var/www/html">下的Options
Options Indexes FollowSymLinks
改成Options -Indexes FollowSymLinks

安裝Mysql Server
yum install mysql-server
service mysqld start
/usr/bin/mysql_secure_installation


若要安裝5.5版,可以看CentOS筆記-CentOS 6.5 安裝MySQL 5.5

最後一個指令可以設定root密碼,將一些用不到的table及權限去除(link: MySQL Server 安裝後的設定

安裝PHP
yum install php php-mysql php-mysqli php-mbstring

重啟
chkconfig httpd on
chkconfig mysqld on


service httpd restart
service mysqld restart

這樣一個基本的LAMP就架起來了

架phpMyAdmin
我習慣用phpMyAdmin,所以再到PhpMyAdmin Home下載最新的tar檔,上傳到/var/www底下解開後,我是都會改目錄名稱為myadmin,用http://{hostname或ip}/myadmin,就可以用了,不過這次卻發生CentOS筆記-PHP Fatal error: Call to undefined function mb_detect_encoding()中提到的問題,就再依文中所提處理即可。

若有要安裝wordpress,是要再注意/etc/httpd/conf/httpd.conf中
LoadModule rewrite_module modules/mod_rewrite.so <-- 這個要有

檔案最後再加上底下幾行(主要是Rewrite那幾行)
AddType application/x-httpd-php .php .phtml

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]


記得再重啟http server

參考網址:
How to Install Linux, Apache, MySQL, PHP (LAMP) stack on CentOS 6
新安裝 CentOS 6.5 筆記

2013年7月19日 星期五

CentOS筆記-安裝GIT

CentOS 5:
>yum install git

發現沒有GIT,只好自行下載,大概步驟如下:
>wget https://git-core.googlecode.com/files/git-1.7.11.1.tar.gz
>tar zxvf git-1.7.11.1.tar.gz
>cd git-1.7.11.1
>yum install zlib-devel openssl-devel cpio expat-devel gettext-devel
>./configure
>make
>make install


測試一下能不能用,打入
>git --verion

可以看到GIT的版本,不過我實際使用是從網路上取得,打上git clone https://xxx.com/xxx/new.git
卻出現:fatal: Unable to find remote helper for 'https'

查了下發現可能是curl的問題,所以GIT要再compile進curl,指令如下:
>yum install curl*
>cd git-1.7.11.1
>./configure
>make


再輸入git clone https://xxx.com/xxx/new.git,發現可以取得code了

CentOS 6:yum上面有git可用
>yum install git


參考網址:
Centos 5.8 install your own git server
repo下载android出现fatal: Unable to find remote helper for 'https'问题的方法
git clone: fatal: Unable to find remote helper for 'https'

2013年7月13日 星期六

CentOS筆記-PHP Fatal error: Call to undefined function mb_detect_encoding()

安裝phpmyadmin時,發現有底下的error

PHP Fatal error:  Call to undefined function mb_detect_encoding() in /var/www/html/mysqladmin/libraries/php-gettext/gettext.inc on line 177

猜測是少了某個套件,一查下果然,是少了mbstring

使用底下指令安裝php這套件後,就好了
> yum install php-mbstring

參考網址:
Simple HTML Dom - Fatal error when using load_file

2013年7月4日 星期四

CentOS筆記-設定https

Step1. 確定有Apache server

Step 2. 確定有openssl,沒有的話執行
yum install openssl
(記得用/sbin/service httpd configtest檢查)

Step 3. 確定有安裝mod_ssl,沒有的話執行
yum install mod_ssl

Step 4. 產生認證
1. cd /etc/pki/tls/private
2. 產生2048的key: openssl genrsa -out private.key 2048
3. 產生憑證檔請求檔: openssl req -new -key private.key -out https.csr
4. 自行產生x509憑證檔:open x509 -req -days 365 -in https.csr -signkey private key -out server.crt
(正常下是要請CA用憑證檔請求檔來產生x509憑證檔,要花錢)

這樣這兩個檔都放在/etc/pki/tls/private(可以自行放在想要的位置)

Step 5. 編輯ssl.conf,找到
SSLCertificateFile /etc/pki/tls/private/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/private.key

Step 6. 檢查設定及重啟
/sbin/service httpd configtest
/sbin/service httpd restart

這樣就行了

參考網址:
Apache 開啟 HTTPS
http://disp.cc/b/11-3UNW
DER vs. CRT vs. CER vs. PEM Certificates and How To Convert Them

2013年6月25日 星期二

CentOS筆記-fsockopen()被SELinux擋掉

裝好centOS 6後,預設SeLinux是開啟的,我懶的關掉他,不過他倒是造成了像我這篇CentOS筆記-postfix服務與php mail()所述的問題,今天又發現用fsocketopen會有問題,查到Enable remote fsockopen() in PHP on Fedora (SELinux)這篇,才發現又有個要設定,如下述指令,打開後就ok了
setsebool -P httpd_can_network_connect 1

可以用底下這個來看剛才的動作有沒有成功(查詢server上有哪些動作的message)
tail /var/log/messages

參考網址:
Enable remote fsockopen() in PHP on Fedora (SELinux)
SELinux, Apache/httpd, PHP establishing socket connections using fsockopen() et al

2012年12月24日 星期一

CentOS筆記-開機自動啟動httpd及mysqld

主機放在公司,停電就活生生的被關機了,開機後一堆服務都不在,還是設定一下,開機自動啟動httpd及mysqld

/sbin/chkconfig httpd on
/sbin/chkconfig mysqld on

chkconfig --list |more //可以查看每個服務在哪些level有開

參考網址:
第十八章、認識系統服務 (daemons)-chkconfig
Author 說: phpmailer使用經驗(解決無法寄信的問題)

2012年11月1日 星期四

CentOS筆記-修改防火牆

做個記錄

修改防火牆的規則
vim /etc/sysconfig/iptables

重啟防火牆
/sbin/service iptables restart

這樣就可以用載入剛才寫的了

下次再來寫防火牆的規則寫法好了....太多事情要做了 orz

2012年9月24日 星期一

CentOS筆記-postfix服務與php mail()

最近在解決送信的問題,CentOS 6上執行PHP 5.3的mail(),要利用postfix來送信,明明  postfix己經啟動,但仍然是無法送信。說實在我不熟悉mail server的設定,但所有的事情都一樣,有問題就先找log,所以先找找log在何處,搜尋網路上的資料,才知在/var/log/maillog。看到底下這個錯誤:

postfix/sendmail[10710]: fatal: chdir /var/spool/postfix: Permission denied

蠻怪的,怎會是權限問題,再找了找資料,看到這個Posftix Permission denied problem
嗯,我也是要fast solution。

先用getsebool -a | grep httpd_can_sendmail看看目前設定,果然結果是:httpd_can_sendmail --> off

就用setsebool httpd_can_sendmail 1,再/sbin/service postfix restart及/sbin/service httpd restart

就可以發送了。

不過,因為是fast solution,沒考慮到什麼資安問題,預設是off,也許要注意一下有什麼狀況

參考網址:
建置 POSTFIX 伺服器
[請益]postfix之log解析問題
請問postfix怎樣查錯呀?
Posftix Permission denied problem
setsebool指令
SELinux Booleans

2012年9月22日 星期六

CentOS筆記-php執行在正確的使用者下,仍回應permission deny的原因之一

今天真的學到一課了!!!!

明明網站的目錄權限是770,user及group都apache的情況下,無法在此目錄建立任何資料,可以看到不能建立、修改、刪除。

利用echo `whoami`來取得php的執行user,看是不是有錯,但仍是apache,是沒有問題的,雖然如此但設定成777也無法存取,只好猜測是否有多出來的權限設定,先試用了getfacl,也沒問題,最後找到File permissions with no sense (Linux, Apache)這篇,猜測是restorecon的問題,再找到鳥哥-restorecon文中所提到重設 SELinux 安全性本文,執行步驟如下:

Step 1: 將安全性文本都回到預設值
restorecon -Rv {目錄}

Step 2: 將類型改成httpd_sys_content_t
chcon -R -t httpd_sys_content_t {目錄} //-R是目錄下所有目錄都要更動

這樣就可以回復成正常的apache可讀取權限

耗了我3個小時的時間去處理~~~@@"

參考網址:
File permissions with no sense (Linux, Apache)
鳥哥-restorecon

2012年9月19日 星期三

CentOS筆記-查詢目錄所用空間

最近需要看下每個網站的使用空間,突然就傻了,啊在linux中怎用,詢問下才知道超簡單

du -sh {目標folder}
du -h --max-depth=N {目標folder} //N是目標folder下幾層要列出

有夠easy,但~還是做下筆記

2012年9月3日 星期一

CentOS筆記-載入flahs(隨身碟)

先用底的指令查看剛才放上的隨身碟的名稱
fdisk -l

可以看到類似

Disk /dev/sdc: 16.2 GB, 16225665024 bytes
256 heads, 51 sectors/track, 2427 cylinders
Units = cylinders of 13056 * 512 = 6684672 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *           1        2428    15842392    c  W95 FAT32 (LBA)


可以看出是/dev/sdc1,這時在你想mount的地方建個folder,我是在/mnt
mkdir /mnt/flash
mount -t vfat -o iocharset=cp950 /dev/sdc1 /mnt/flash

這樣就成功了,可以做你想要的事了

參考網址:
第八章、Linux 磁碟與檔案系統管理

2012年8月30日 星期四

Deploy前必備

最近一件事,讓我想起剛創業時在某大電信業的機房Deploy的日子,做到清晨4點所有人都還在辦公室,而幫忙的機房人員在家等待我們做好的好日子。若你跟我一樣是沒有好的系統工程師幫忙,要自己進機房或進入Server去Deploy的苦命工程師,那我分享幾件事吧....(有個預感,我可能又要進機房了....Orz)

進機房Deploy前,有幾件事要注意

  1. 新程式碼記得先壓縮備份好,確認目錄owner及權限是沒有問題的
  2. 程式碼備份在要帶去的usb、Server的ftp或某個目錄(可以http下載或scp可以找到的地方),最差的狀況可能要從測試站的目錄拿取更動的程式碼檔案,而不是預備好的程式碼
  3. 要熟悉Command line操作,別認為機房內的主機有GUI介紹操作
    這部分當然要看你的系統環境,若是Linux系統,就好好練習命令列操作吧
  4. 非系統工程師不用懂太多指令,但基本的tar、 ftp、scp、ssh、wget、chown、 chmod,若程式有version control使用,至少要會直接匯出的指令,例如svn的co或export,git的clone,之前寫了篇CentOS筆記-scp用法,之後再補充其他的好了,重點是想要檔案時,可以用command line的方式就很快取得
  5. 到達現場時,第一件事備份所有舊程式、檔案資料及DB資料,Deploy最重要的永遠是備份、備份、備份、備份、備份~~最好是能備份到另一台Server去或先上傳到測試站上測試過
  6. 除非必要,否則別刪掉原目錄,直接覆蓋通常是最安全的做法(這點純是個人經驗,有些人好像是反過來)

雖然都會確認owner及權限,但常常在測試站上是沒問題,進了Server就開始這邊權限不對,那邊owner怪怪的,不然就是都正確,但你還是不能用,尤其是目錄,所以常常就是還原這個目錄,裡頭的檔案手動一個個換掉,神奇的是,有時還不能用usb上的,得ftp去測試環境拿,有時我在用我的mac時,也多少有這類狀況,我相信windows也可能有

我只能說我不是系統工程師~~我不是系統工程師~~我不是系統工程師~~,我的專業不在此啊~~ 麻煩找專業的來

謎之音:專業的看了看,可能會說這是程式的問題,要問那個工程師,問他是怎麼搞出來的