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

2013-09-01

[Linux] Apache 網站架設

Apache 是 Linux 上用來架設網站的工具之一,就像 Windows 上面的 IIS 一樣,來說明一下如何架設它。

P.S:如果要自己架設並測試, 就要先設定好DNS,不然是無法用Domain Name連到的。

安裝的套件,其中 links 是用來測試連結架好的網站是否可用了:
yum install httpd httpd-tools links


/etc/httpd/conf/httpd.conf 要設定的地方:
ServerName www.tim.com
ServerAdmin tim.lin@tim.com
Listen 80

其中預設的路徑和首頁如下:
DocumentRoot : /var/www/html/
DirectoryIndex : index.html

服務重啟後,再開防火牆80 port,即可使用,可以用下面的指令測試:
links http://www.tim.com/index.html


其他問題:
(1) 提供peter可以存取/var/www/html
因為預設的路徑只有root可以存取,如果要開放其他人可以存取,就要加設定:
setfacl -m  u:peter:rwx  /var/www/html

(2) 更換 Apache 的站台預設路徑
假設要換到/www/website/blog/:
;建立新路徑並修改/etc/httpd/conf/httpd.conf 的 DocumentRoot 為 "/www/website/blog"
mkdir -p /www/website/blog

;修改安全本文,先參考預設路徑的安全本文是哪一個
ls -Zd /var/www/html  ;得知安全本文是 httpd_sys_content_t

;再設定新路徑的安全本文,因為連同子目錄也要,所以用了參數 -R
chcon -R -t httpd_sys_content_t  /www/

(3) 設定 blog.tim.com 可以通,並且路徑是 /www/website/blog
;先加 DNS 正解檔,讓 blog.tim.com 能連到
blog    IN    A    192.168.123.100

;在 /etc/httpd/conf/httpd.conf 的最後面加上如下設定
NameVirtualHost *:80

        ServerName www.tim.com
        ServerAdmin tim.lin@tim.com
        DocumentRoot /var/www/html
        ErrorLog /var/log/httpd/www-error_log
        CustomLog /var/log/httpd/www-access_log combined


        ServerName blog.tim.com
        ServerAdmin tim.lin@tim.com
        DocumentRoot /www/website/blog
        ErrorLog /var/log/httpd/blog-error_log
        CustomLog /var/log/httpd/blog-access_log combined


之後重啟服務,就可以執行了。
以上是基本的架設,但由於 Apache 是個嚴謹的工具,限制很多,所以大多遇到的問題都是要去修改 selinux 才能解決,而這又是另一個課題了。

2013-08-31

[Linux] DNS 服務架設

DNS(Domain Name System) 主要分為正解和反解兩種,最常用到的是正解,也就是將你打在網址列上的中英文字轉成 IP,才能找到你的目的地,反解則是相反。

這裡的教學是設定一個正解的 DNS。


需要安裝的套件:(可用yum list | grep bind 查到)
yum install bind bind-utils bind-chroot

逐一安裝好後,在 RHEL 5 之前的主要設定檔位置:
/var/named/chroot/etc/named.conf
/var/named/chroot/var/named/master/[正解檔名].zone

RHEL 6 位置改成:
/etc/named.conf
/var/named/master/[正解檔名].zone


/etc/named.conf 的設定如下:
(1) 開放指定網域能使用你的dns , 防火牆tcp/udp 53 port也要開。
acl “trust-network” { 192.168.0.0/16; };
options {
            ...
            listen-on port 53 { any; };
            listen-on-v6 port 53 { any; };
            allow-query { localhost; trust-network; };
            ... 
};

(2) 設定 forwarding dns server,當查不到時,就用這個dns去查
options {
            ...
            forwarders { 8.8.8.8;  };
            ...
};

(3) 指定正解檔的存放路徑。(domain name後面不能有 "." 符號)
zone "tim.com" IN {
           type master;
           file "master/tim.zone";
           allow-query { any; };
};

tim.zone 正解檔的內容:(domain name後面帶有 “.” 符號)
$TTL 1D
@       IN      SOA     dns.tim.com.     root.dns.tim.com. (
                       2013072101    ;serial
                       10H                 ;refresh
                       2H                   ;retry
                       4W                  ;expire
                       1D      )            ;TTL
           IN      NS      dns.tim.com.
dns     IN      A       192.168.123.51
;===以上為必要設定===

;===以下的設定是當別人查詢你的 domain name 時所要導向的 IP ===
www     IN      A       192.168.123.55  ;意指 nslookup www.tim.com 時,會顯示192.168.123.55
blog       IN      A       192.168.123.56
mail       IN     A        192.168.123.57

;@代表是domain name
@    IN    A    192.168.123.50

;多重IP
test1    IN    A    192.168.123.123
test1    IN    A    192.168.123.124
test1    IN    A    192.168.123.125

;*代表其他沒設定到的
*    IN    A    1.2.3.4


以上就是簡單的 DNS 設定方式,設定完後重啟服務即可,再來可以將自已的 DNS 指到自已架設的這台,效果馬上就能顯示。

2013-08-17

[Linux] Discuz 安裝步驟

提供參考參考~

1. download discuz from http://www.discuz.net/thread-3265731-1-1.html

2. cd /home/tim/public_html

3. mkdir forum

4. unzip Discuz_X2_TC_UTF8.zip

5. rm -rf readme utility

6. mv upload/* .

7. rmdir upload

8. yum install php php-mysql mysql-server

9. /etc/init.d/httpd restart

10. chkconfig mysqld on

11. mysqladmin -u root password '123456'

12. mysqladmin -u root -h www.TimTest.com password '123456’

13. http://
www.TimTest.com/forum/

14. setfacl -R -m u:apache:rwx config data uc_client uc_server

15. mysql -u root -p

    GRANT ALL PRIVILEGES ON ultrax.* TO ultrax@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    EXIT

2013-01-30

[Linux] 為什麼~符號代表回到家目錄(Home)呢?

在Linux系統中,~符號被用來代表回到家目錄(Home)。

例如:
cd
cd ~
cd /home/tim
cd $HOME
都能回到目前帳號的家目錄。

那為什麼~符號代表回到家目錄(Home)呢?

原來是因為在1970年時,鍵盤是長下圖這樣的,剛好~符號和Home在同一個按鍵上,這就是由來~

也能發現在vim裡的h、j、k、l代表方向鍵,也是同樣的原因~


參考來源:UNIX & Linux

2012-11-14

[Linux] 批次新增使用者帳號和密碼

如果Linux Server是新架的話,那在初期建立全公司帳號和密碼時,就可以用此方法來快速建立。

先收集好全公司的帳號和密碼,存成檔案(EX:/tmp/users.txt),格式如下:
Tim,abc123
Ken,1234
John,3210

之後執行下面的Shell Script就可以將users.txt裡的帳號密碼一口氣建立完成了:
#!/bin/bash

for line in $(cat /tmp/users.txt)
do
 user=$( echo "$line" | cut -d , -f 1 )
 pass=$( echo "$line" | cut -d , -f 2 )

 adduser $user
 echo "$pass" | passwd --stdin $user > /dev/null
done

範例可在下載。

2012-11-06

[Linux] 安裝Firefox瀏覽器

在安裝程式方面,Linux沒有像Windows一樣簡單,只要執行安裝檔一切就OK。

以安裝Firefox瀏覽器來說明,Linux先去官網下載套件包,解壓後要更改權限並放到對的位置,之後就能在桌面建立啟動圖示來執行了,步驟如下:
#1. 到官網下載firefox套件包。(http://moztw.org)

#2. 解壓縮firefox目錄放置到/opt目錄。
tar -jxvf /home/tim/firefox-16.0.2.tar.bz2 /opt/

#3. 修改firefox目錄權限。
chown -R root:root /opt/firefox

#4. 在Desktop建立啟動圖示,程式指到/opt/firefox/firefox裡。

2012-11-05

[Linux] 重建家目錄

Linux初學者偶而會"不小心"砍了自己的家目錄(/home/帳號),包含我自己也是^^",於是在此記錄一下如何重建家目錄,當然~ 重建的只是目錄,不可能連裡面的檔案都救回~

P.S:要用root來重建.

#建立家目錄資料夾
mkdir  /home/tim

#將預設的檔案複製一份到家目錄
cp -a  /etc/skel/.  /home/tim

#修改權限,只有自己能完全存取
chmod 700 /home/tim

#修改權限,將所有家目錄裡的檔案、目錄的user和group改成自己
chown -R tim:tim  /home/tim

2012-11-02

[Linux] Linux與IPv6技術

這是一篇由Linux達人Kenduest大大整理出來的文章,在介紹IPv6技術以及在Linux中的影響,很值得收藏~

Linux與IPv6技術

P.S:Kenduest大大特別強調,文章中如有任何錯誤,敬請回覆讓他知道喔~
來源:Kenduest大大的Google Plus.

2012-10-04

[Linux]KVM虛擬機器簡易架設說明

前提:此篇是以CentOS 5.5為例子說明。

目前Linux下面的虛擬機器(Virtual Machine ; VM)主要有VMWare、VirtualBox、XEN、KVM四種較為普遍。

其中KVM(Kernel-based Virtual Machine)是在Linux kernel 2.6版本納入的。
其硬體平台需要有支援虛擬化功能才能使用:
  • x86 64 架構平台,CPU 需要支援完整虛擬化功能
  • Intel CPU 需要支援 vmx 功能,AMD CPU 則需要 svm 功能


安裝步驟如下:

(1)檢測是否符合以上硬體的支援,就是檢視 /proc/cpinfo 內是否有 vmx or svm 項目.
egrep 'vmx|svm' --color  /proc/cpuinfo

(2)安裝GUI圖形管理工具.
yum install virt-manager

(3)到 XWindow 內啟動 virtual manager 程式,會列出其他必需安裝的套件,直接選擇全部安裝,安裝完先關閉virtual manager管理介面。

(4)啟動 libvirtd 服務。(libvirt是virtual manager和kernel溝通的中介API程式庫。)
/etc/init.d/libvirtd start
chkconfig libvirtd on


之後在XWindow上啟動 virtual manager 管理介面來使用,使用方式就像在Windows裡用VM一樣了~

2012-10-01

[Linux]Linux Distribution Chooser 幫你選擇適合你的Linux OS

Linux OS至今已經發展到很多種了,如果你無法決定要使用哪一個的話,相信透過Linux Distribution Chooser可以幫助到你~

它透過一些簡單的問答,推測出適合你需求的Linux OS,按左下角的Take the test開始:

進去的第一步,是先選好你要的語言,可惜沒有中文,只好選擇Englight:

開始出現問答,大約10題左右,上頭有進度條:

完成後,即會列出適合你的需求的Linux OS供參考~

[Linux]最基本的iptables firewall設定


最基本的firewall設定, 只開放ssh、pingftp,其他都擋,但自己可以連出去。

這邊的範例是用iptables這個防火牆套件來說明,如果沒有安裝的話請先安裝:
#安裝
yum install iptables

#將 iptables 模組載入 kernel
modprobe ip_tables

#啟動iptables
/etc/init.d/iptables start

#設定開機時自動啟動iptables
chkconfig iptables on

之後將下面的指令貼在/etc/rc.local裡,存檔後打sh -x /etc/rc.local 沒出現錯誤就設定完成。
#載入ftp模組
modprobe nf_conntrack_ftp

#清除系統預設的防火牆規則
iptables -F
iptables -X

#允許自己主動發出的請求,才可以連出去
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#開放ftp
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

#開放ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#開放ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#不是自己主動發出Request而Response的,全都阻檔掉
iptables -A INPUT -m state --state NEW -j DROP

如果Server是架於KVM,那在最後要將KVMreload一下,KVM才能正常連外:
/etc/init.d/libvirtd reload

更多相關設定可以參考酷!學園

[Linux]自己動手Build and Setup Linux kernel


這個範例是用CentOS 5.5來測試升級kernel到3.0~


1. 安裝build kernel所需的套件
yum groupinstall “Development Tools” && yum install ncurses-devel


2. 抓取要使用的kernel source
cd /usr/src
wget “http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
tar -jxvf linux-3.0.tar.bz2
ln -s linux-3.0 linux
cd linux


3. 利用舊的kernel config來build kernel
cp /boot/config-`uname -r` /usr/src/linux/.config
cd /usr/src/linux
make menuconfig
在 'General Setup' 選取
'enable deprecated sysfs features to support old userspace tools'
不選的話會在開機過程 switchroot 的時候 fail, 選取之後 save config


4. build kernel
make rpm
如果過程沒問題的話, 等一段時間後 rpm 會被做出來,
完成後,看最後.rpm會被存到哪裡,記下來,下一步驟要安裝它


5. install kernel
rpm -ihv /root/rpmbuild/RPMS/i386/kernel-3.0.0-1.i386.rpm


6. build initrd image and Configuring GRUB
new-kernel-pkg --mkinitrd --depmod --install 3.0.0
執行完new-kernel-pkg命令後, 在/boot下會產生img檔initrd-3.0.0.img.
同時/etc/grub.conf中增加了新核心的啟動項, 記得檢查新kernel中的root=LABEL=/ , 要改成 root=[自己的根路徑] (EX:/dev/hda7),否則重開後會有錯誤.


7.Final step
reboot your system and choose the new kernel in the grub menu.