安裝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

大光畫帝國使用Google Analytics

1. 至Google http://www.google.com/intl/zh-TW/analytics/ 申請使用Google Analytics
以Google的帳號登入

2. 登入後點「申請」開始進行申請動作
ga_01

3. 接下來輸入網站相關資訊,網址就是用大光畫帝國的網址 loki.ind.ntou.edu.tw/mac/forum/
ga_02

4. 輸入自己的大名
ga_03

5. 最後同意服務條款之後就可以開始使用了,很簡單吧
ga_04

6. 申請完畢之後Google Analytics會提供一組程式碼要你加入到網頁中,由於我想加進phpBB,可以將這組程式碼加到phpBB的樣版裡。
先到phpBB的ACP控制台,再到「風格」→「樣版」頁面右側畫面的「編輯」→ 選擇編輯overall_header.html,
將程式碼加入head標籤之中後,再回剛才的「樣版」頁面選擇重新整理即可。
ga_05
由於phpBB頁面都是透過樣版來產生,這樣每一個討論區頁面都有Google Analytics。

7. 24小時之後登入Google Analytics點選「查看報表」就可以看到訪客數、來源等訊息。
ga_06

Gallery 3.0.2 安裝實紀

今天利用Gallery取代先前使用的Coppmine Photo Gallery,順道將自己的相簿復 活起來。

1. 先至Gallery官網下載,當前最新版本為3.0.2,知道下載路徑的話可以也直接用wget指令:
[ccW_bash width=”100%” theme=”blackboard”]wget http://downloads.sourceforge.net/project/gallery/gallery3/3.0.2/gallery-3.0.2.zip?r=http%3A%2F%2Fcodex.gallery2.org%2FDownloads&ts=1308405292&use_mirror=ncu[/ccW_bash]

2. 解壓縮gallery-3.0.2.zip
[ccW_bash theme=”blackboard”]unzip gallery-3.0.2.zip[/ccW_bash]

3. 到解壓縮出來的gallery3目錄下新增var目錄並設定權限:
[ccW_bash theme=”blackboard”]
cd gallery3
mkdir var
chmod 777 var[/ccW_bash]

4. 從瀏覽器輸入 http://綱址或IP/gallery3/installer/ 進入安裝畫面,
輸人必要的資料庫相關資訊後即安裝完成,點選「Start Using Gallery」開始使用。

5. 從安裝畫面進入Gallery後會出現要更改密碼與E-Mail的訊息,點選「Change password and email now」更改密碼與E-Mail,使用者名稱也可以在此一併更改。

6. 成果 http://loki.ind.ntou.edu.tw/gallery/

IND Wiki 更新與權限修正

今天花了一點時間升級並整理IND Wiki
http://wiki.ind.ntou.edu.tw

升級方式在官方網頁就寫得很詳盡:
http://www.dokuwiki.org/install:upgrade

就很單純地將最新版的本的DokuWiki載下來解壓縮之後,
再把檔案覆蓋到現有的Wiki下即可。
不過在該篇文件下方有一份需要刪除檔案的列表,
由於IND Wiki已經許久沒更新了,
列表中# removed in rc2009-12-02 之後的都是要刪除的檔案,
因為真的是太多了乾脆的將列表的內容寫進檔案(temp)裡再運用之前學xargs指令:
# cat temp | xargs rm -rf
這樣子快多了不用一個個手動去刪。

再來是權限的問題,
由於conf和data兩個目錄是需要apache能夠讀寫,
所以要做以下的設定:
# chown -R apache:wiki conf
# chown -R apache:wiki data
底下的檔案都預設644、目錄755即可。

用 ping 回應 Bad option specified 錯誤訊息

前幾天幫使用者處理網路不通的問題,
用ping測試連線是否正常時發現回應了”Bad option specified”這樣的錯誤訊息,
連ping 127.0.0.1都會如此,
後來找到是Windows的TTL設值有問題,
打開Windows XP的登錄檔編輯器,
到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 修改 DefaultTTL,
改成小於 255 的數值即可 (預設似乎是128)。