[CentOS] 安裝圖形介面

測試環境 CentOS 5.6

1. 安裝X Window
yum groupinstall ‘X Window System’ -y

2. 安裝Gnome Desktop
yum gropuinstall ‘GNOME Desktop Environment’ -y

3. 編輯 /etc/inittab 將以下內容:

id:3:initdefault:

改為:

id:5:initdefualt:

4. 安裝並設置中文環境
yum groupinstall ‘chinese support’ -y
編輯/etc/sysconfig/i18n將以下內容:

LANG="en_US.UTF-8"

改為:

LANG="zh_TW.UTF-8"

5. 重新開機
reboot

安裝Apache、MariaDB與PHP於CentOS 5.6

日前將主機系統升級為CentOS 5.6,
想說也順便升級一下Apache、MariaDB與PHP,
由於一些做法與上次不同所以再紀錄一次,
這裡僅紀錄安裝的步驟。

一、先建立好環境,
以下的套件是接下來安裝時會用到,
如果沒有的話先安裝上去:

yum install gcc gcc-c++ make ncurses-devel libpng-devel libmcrypt-devel libxml2-devel

二、安裝MariaDB
先建立mysql使用者與群組(已建過就不用再做一次)

groupadd mysql
useradd -g mysql mysql

開始解壓縮tarball並開始安裝

tar zxf mariadb-5.2.6.tar.gz
cd mariadb-5.2.6
./configure --prefix=/usr/local/mysql --with-charset=utf8
make
make install

修改的權限/usr/local/mysql

[cc_bash theme=”blackboard” width=”600″]chown -R mysql:mysql mysql[/cc_bash]
建立初始的database
[cc_bash theme=”blackboard” width=”600″]/usr/local/mysql/bin/mysql_install_db –user=mysql[/cc_bash]
複製my.cnf範本至/etc
[cc_bash theme=”blackboard” width=”600″]cp mariadb-5.2.6/support-files/my-large.cnf /etc/my.cnf[/cc_bash]
將mysql.server複製到/etc/init.d並更名為mysqld
[cc_bash theme=”blackboard” width=”600″]cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld[/cc_bash]
最後再加入chkconfig
[cc_bash theme=”blackboard” width=”600″]chkconfig –add mysqld[/cc_bash]

三、安裝Apache
[cc_bash theme=”blackboard” width=”600″]tar zxf httpd-2.2.19.tar.gz
cd httpd-2.2.19
./configure –prefix=/usr/local/apache –enable-module=so
make
make install[/cc_bash]
同MariaDB的做法,將啟動Apache的script放到/etc/init.d
[cc_bash theme=”blackboard” width=”600″]cp /usr/local/apache/bin/apachectl /etc/init.d/httpd[/cc_bash]
但apachectl不像mysql.server,需要修改內容才能使用
[cc_bash theme=”blackboard” width=”600″]vim /etc/init.d/httpd[/cc_bash]
加入以下敘述(加在#!/bin/sh之後的行數):
[cc]#chkconfig: 345 61 61
#description:Apache Daemon[/cc]
最後再加入chkconfig
[cc_bash theme=”blackboard” width=”600″]chkconfig –add httpd[/cc_bash]

四、安裝PHP
[cc_bash theme=”blackboard” width=”600″]tar zxf php-5.3.6.tar.gz
cd php-5.3.6
./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql \
–enable-mbstring –with-gd –with-gettext –with-mcrypt –with-zlib –enable-zip
make
make test
make install[/cc_bash]
複製php.ini範本到/usr/local/php/lib
[cc_bash theme=”blackboard” width=”600″]cp php.ini-production /usr/local/php/lib/php.ini[/cc_bash]

之後的設定同CentOS 5.4上安裝Apache + PHP + MySQL便不再敘述。
唯啟動Apache和MariaDB的方式改為:
[cc_bash theme=”blackboard” width=”600″]service httpd start
service mysqld start[/cc_bash]
而若要能夠開機執行則只要下:
[cc_bash theme=”blackboard” width=”600″]chkconfig httpd on
chkconfig mysqld on[/cc_bash]
即可完成無需再去修改/etc/rc.local,
這裡也是與之前做法最大的不同。

修改phpBB 3.0.9左上角Site Logo圖片大小

今天把大光畫帝國的phpBB版本升級為3.0.9,
把phpBB預設的Logo換成社上的Logo卻出現比例不符被拉寬的現象。

看了一下首頁原始碼在Logo圖片相關的敘述:
<img src=”./styles/prosilver/imageset/site_logo.gif” width=”149″ height=”52″ alt=”” />

在styles/prosilver/template/overall_header.html裡這段是由{SITE_LOGO_IMG}所取代,
但以它為關鍵字論壇目錄下的檔案內容進行搜尋卻找不到線索,
不過從產生出來的HTML來看長寬似乎是被寫死的,
以149為關鍵字去尋找到以下結果:

$ find ./ | xargs grep '149'
./includes/session.php:                $img_data['width'] = '149';

於是到在includes/session.php找到以下的敘述:

  $img_data['width'] = '149';
  $img_data['height'] = '52';

將其中的數值改為新Logo圖的正確大小即可:

  $img_data['width'] = '122';
  $img_data['height'] = '80';

CentOS 6 以最小安裝後記得再安裝openssh-clients

前陣子CentOS 6終於釋出了,
也馬上在虛擬機上裝來玩看看,
但發現以最小安裝完畢後進入系統卻沒SSH指令可以用?
其實是少了openssh-clients再補安裝即可。
[cc_bash theme=”blackboard”]yum install openssh-clients[/cc_bash]

和5.6相比在同樣在VirtualBox上跑開機速度快了許多,
不過用最小安裝似乎比5.6會少裝一些東西。

利用shell script遠端關閉主機

其實也只是利用ssh指令再加上關閉指令就可以了,
但是會遇到輸入密碼的問題,
目前我想到的做法是利用ssh-keygen產生金鑰達成免輸入密碼即可登入的效果,

測試環境(利用VirtualBox來建立虛擬機)
HostA: Ubuntu 11.04
HostB: CentOS 5.6
HostC: FreeBSD 8.1
要測試是否能由HostA遠端去關閉HostB、HostC這兩台機器,
以下為方便測試皆使用root身份。

1.先在HostA上以ssh-keygen產生金鑰
[ccW_bash theme=”blackboard”]ssh-keygen -t rsa[/ccW_bash]
這會產生一組公、私鑰,
將id.rsa.pub這公鑰傳到HostB、HostC這兩台機器上,
以HostB為例:
[ccW_bash theme=”blackboard”]scp /root/.ssh/id.rsa.pub root@192.168.0.109:/root/ [/ccW_bash]
再登入到HostB上將id.rsa.pub移到/root/.ssh目錄並更名為authorized_keys,
若遠端機器已存在authorized_keys這個檔案就直將把id.rsa.pub的內容加入:
[cceW_bash theme=”blackboard”]cat id.rsa.pub >> /root/.ssh/authorized_keys[/cceW_bash]
若不存在就直接更名移過去即可:
[ccW_bash theme=”blackboard”]mv id.rsa.pub /root/.ssh/authorized_keys[/ccW_bash]

HostC也是相同的做法,
最後在HostA上寫一個script,內容如下:
[ccW_bash theme=”blackboard”]#!/bin/bash

# for CentOS
ssh root@192.168.0.109 ‘shutdown -h now’
# for FreeBSD
ssh root@192.168.0.120 ‘halt -p'[/ccW_bash]
注意根據OS的不同關機指令也會有所差異。

但這會有一個問題是若該遠端主機之前沒登入過會出現要你是否接受這連線的提示,
(也就是know_hosts這檔案中沒這台機器)
所以必須每一台都要登入過一次才能正常使用,
也許用expect這套件來解決輸入密碼的問題更好,
改天再來研究看看。

Samba on Ubuntu

測試環境:Ubuntu 11.04

1. 安裝Samba
[ccW_bash theme=”blackboard”]apt-get install samba[/ccW_bash]

2. 編輯 /etc/samba/smb.conf
[ccW_bash theme=”blackboard”]vim /etc/samba/smb.conf[/ccW_bash]
在第102行:
[cc]# security = user[/cc]
拿掉註解,使用帳密方式連線,若不想設帳密可以將user改為share
[cc] security = user[/cc]
然後在檔尾加入以下敘述:
[SHARE]
path = /home/smbuser/share
browseable = yes
read only = no
create mask = 0644
directory mask = 0755

其他部份就看需求修改囉,剩下的我是都直接用預設值。

3. 建立一個使用者smbuser,若在/etc/smb.conf將security設為share可以不需要做這個步驟
[ccW_bash theme=”blackboard”]adduser smbuser[/ccW_bash]
為smbuser設定一個Samba的密碼
[ccW_bash theme=”blackboard”]smbpasswd -a smbuser[/ccW_bash]

4. 建立剛才在/etc/smb.conf所設定的分享路經
[ccW_bash theme=”blackboard”]mkdir /home/smbuser/share
chown smbuser:smbuser /home/smbuser/share[/ccW_bash]

5. 重新啟動Smaba服務
[ccW_bash theme=”blackboard”]/etc/init.d/smbd restart[/ccW_bash]

6. 而如何在Windows存取呢,只在要檔案總管或是開始→執行輸入 \\您的ip 就可以囉,
如果有設定密碼會出現請您輪入帳密的視窗
smb01