【Linux主機+架站+維護教學+遠端協助】專案 網路開展事業或在網路賺錢第一步: 【架設24小時賺錢網站主機】比網頁設計更優先! 你還在租用虛擬主機嗎? (租用不如自有主機!自己當家作主才是:王道!) 因租用會:限制空間大小、流量、PHP.ini修改、特定語法使用... 綁手綁腳,你還能有多出眾的作為? 替你架設Linux主機伺服器+影片教你維護 (還有遠端技術協助)讓你自己當家作主! 為協助學員快速架站(隨心所欲展開網路事業)總教頭特別規劃: 替你架設Linux主機專案 並教如何成為網管高手! 聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多! 參加了本專案,您無須再自我摸索曠日廢時→快速打通任都二脈 還有配套『加盟專案』,你可以現學現做,自然的實現:『事少、錢多、離家近!』的成功境界。

X Linux是一個中量級的GNU/Linux發行版。
其基於Debian穩定版本開發,使用了antiX的核心組件,並可安裝MX社群開發或打包的軟體。
MX Linux是antiX和早前的MEPIS社群合作開發的產物,旨在使用各自系統中最優秀的工具和軟體。
MX社群的既定目標是「將優雅而高效的桌面與簡單的組態、高度的穩定性、可靠的效能和中等的大小相結合」。
MX Linux使用Xfce作為預設桌面環境。

MX Linux 19首個維護版19.1已發布,更新內容除了常規的修復錯誤和升級軟體包外,還爲部分硬體提供了專門設計的構建映像。
官方表示,由於使用新硬體(尤其是較新的AMD或Intel硬體)的用戶越來越多
除了提供使用 4.19 LTS內核的標準32位和64位ISO映像外,他們還另外製作了第三個ISO映像,並稱之爲「Advanced Hardware Support」(簡稱 AHS,發音爲 Oz)。

MX Linux 自由的作業系統 官網:
https://mxlinux.org/

AHS也是64位映像,並包含debian 5.4內核、Mesa 19.2以及較新的xserver驅動程序以及利用較新圖形堆棧的各種重新編譯的應用程式。

MX Linux是一箇中型Linux發行版,具有優雅高效的桌面。和Ubuntu一樣也是基於Debian穩定版,使用核心的antiX元件​。它簡單可靠,並且可以在傳統硬體到現代桌上型電腦上很好地執行。
在最近幾年中,MX Linux使用者數逐漸增加,是目前Distrowatch人氣最高的發行版。

MX Linux具有其特有的非常有用的MX工具,包括引導修復,系統快照和Nvidia驅動程式安裝程式。MX軟體包安裝程式(apt包管理器)井井有條,易於使用。

MX Linux 的特點:
MX Linux通過內建一套名為MX Tools的使用者工具集而從Linux發行版中脫穎而出。
MX Tools中,許多工具都是專為MX Linux開發的,而有些則是從antiX應用程式中分離出來的,有些是antiX上現有的應用程式,少數工具經許可而被引入。
例如,工具集中一個基於圖形化使用者介面的工具MX-snapshot可用於將當前系統快照儲存為ISO映像,這種系統映像可以從磁碟或USB隨身碟啟動,同時保留設定及有用的檔案,可作為方便而快速的備份。

MX Linux 歷史:
MX Linux的誕生始於2013年12月MEPIS社群成員之間的一次關於未來選擇的討論。
antiX的開發者隨後加入該系統的開發工作,並且帶來ISO映像架構方案以及Live-USB/Live-DVD技術。為了被列入DistroWatch,MX Linux起初以antiX的衍生版本的形式提供。


MX Linux於2016年11月2日發布了MX-16的第一個公共測試版,其後MX Linux作為獨立的發行版而獲得了自己的DistroWatch頁面。

MX-14系列基於Debian 7,並首先採用Xfce 4.10,其後MX-14.4採用Xfce 4.12。
MX-14系列要求使系統ISO映像的大小適應CD容量,這限制了系統中包含的應用程式的數量。
在該系列中,MX Tools逐步發展。MX Tools是一系列便捷的實用程式的集合,旨在幫助使用者完成各種常見但複雜的任務。

MX-15系列基於Debian 8,系統ISO映像的大小限制被解除,使得開發者可以給使用者提供完整並可立即使用的作業系統。
MX Tools中的實用程式數量大幅增加。


MX-16系列仍然基於Debian 8,但向後移植了許多應用程式,亦從其他來源添加了應用程式,並對MX Tools進行了補充和改進,匯入了進階antiX開發工具、擴充支援以及全新的圖示/主題包/桌面背景組合。

MX-16.1包含了自MX-16以來的所有錯誤修復和改進,並添加了「翠鳥」主題包,升級且簡化了MX Tools,修訂了使用手冊,並新增對使用者介面的翻譯。

MX-17系列基於Debian 9,帶來了改進的圖形化使用者介面、全新的MX Tools和改進的Live CD操作。

MX-18系列中,MX Tools得到進一步發展,引入了全新核心,支援將整個磁碟加密。
MX-18可通過MX Boot選項添加了grub主題包,亦改進了圖形化使用者介面和在地化。

MX-19系列基於Debian 10,其預設桌面環境更新至Xfce 4.14。此版本改進了使用者工具、圖示、使用手冊和在地化等。

虛擬機安裝linux的vmware tools

虛擬機VmwareLinuxIDEPHP
windows安裝了Linux redhat5,為了不需要按Ctrl+Alt來回切換滑鼠,安裝vmware tools
參考http://www.linuxsir.org/bbs/archive/index.php/t-136104.html
結合自己的實際情況做個記錄
A.重新啟動虛擬機,點擊Setting(設定)–VMware Tools Install(安裝VMware工具)

在跳出的選單中點擊Install,安裝VMware工具。

B.點擊Devices(裝置)選單,你會發現光碟機的選單項由IDE :0變成了IDE :0>D:

program FilesVMwarelinux.iso,

這表示VMware將LINUX的ISO映像檔案 作為了虛擬機的光碟。

C.其實這時並沒有真正地安裝上VMware Tools軟體包,還須進一步設定。

進入文字登入介面中,輸入管理員使用者名(ROOT)和密碼進入ROOT@LOCALHOST ROOT目錄下。

D.在指令行後面輸入如下指令(注意大小寫和空格,同時每行指令後記住換行)

mount -t iso9660 /dev/cdrom /mnt(為了看清楚把空格用文字標出:mount空格-t空格iso9660空格/dev/cdrom空格/mnt) (加載CDROM裝置,並且CDROM為唯讀屬性。)

cp /mnt/vmware*tools.tar.gz /tmp(為了看清楚把空格用文字標出:cp空格/mnt/vmware*tools.tar.gz空格/tmp) (將該軟體包持覆制到LINUX的TMP目錄下)

umount /dev/cdrom(為了看清楚把空格用文字標出:umount空格/dev/cdrom) (捨載CDROM)

cd /tmp (進入TMP目錄)

tar zxf vmware*tools.tar.gz (解壓該軟體包)

cd vmware*tools (進入解壓後的目錄)

./vmware*install.pl (運行安裝指令,系統開始安裝vmware tools)

E` 在螢幕的提示下,連續換行兩次後,系統安裝完VMWARE TOOLS,在指令

行中輸入STARTX指令,進入圖形介面。(我直接進入的就是圖形介面用的是終端,安裝後重啟的系統)

在Linux主機上安裝Open WebMail與設定

設定 Open WebMail

在 cgi-bin/openwebmail/etc 可以發現有 openwebmail.conf.default, openwebmail.conf.help 和 openwebmail.conf 這三個檔, 其中
openwebmail.conf.default     內定的設定檔, 包含所有 Open WebMail 可以頂的選項
openwebmail.conf.help     openwebmail.conf.default 所有選項的說明檔
openwebmail.conf

主要的設定檔, 管理者要設定的選項, 應該都寫在這個檔案裡頭, 而不應該直接去改 openwebmail.conf.default

 

openwebmail.conf 的內容

# Open WebMail configuration file
#
# This file contains just the overrides from openwebmail.conf.default
# please make all changes to this file.
#
# This file sets options for all domains and all users.
# To set options on per domain basis, please put them in sites.conf/domainname
# To set options on per user basis, please put them in users.conf/username
#

domainnames auto
auth_module auth_unix.pl
mailspooldir /var/mail
dbm_ext .db
dbmopen_ext none
dbmopen_haslock no
ow_cgidir /usr/local/www/cgi-bin/openwebmail
ow_cgiurl /cgi-bin/openwebmail
ow_htmldir /usr/local/www/data/openwebmail
ow_htmlurl /openwebmail
logfile /var/log/openwebmail.log
spellcheck /usr/local/bin/ispell
default_language en

<default_signature>

Open WebMail Project (http://openwebmail.org)
</default_signature>

以上的內容可能隨著您系統而有所不同, 不過在您完成前述的安裝後, 您可以修改以下幾個選項

domainnames

一般情況下, openwebmail 應該能正確地判斷出您 server 的 domainname, 進而正確地設定使用者的預設 Email address, 但如果發生 openwebmail 判斷錯誤或是您希望設定成其他的 domainname, 你可以將這個選項由 auto 改成您所要的 domainname, 如 mail.myserver.com.tw

spellcheck

設定拼字檢查程式所在的路徑, 一般而言, 可能是以下其中之一, 您可以用 ls -l filename 方式檢查看看

/usr/bin/apsell
/usr/bin/ispell
/usr/local/bin/aspell
/usr/local/bin/ispell

default_language

內定的語言, 我們把它由 en(英文) 改成 zh_TW.Big5 (繁體中文)

註: 自 2.0 版 20030416 以後, 已經不需要在 openwebmail.conf 中設定 default_language 這個選項了, openwebmail 會根據使用者所用的瀏覽器設定, 自動選擇適合的內定的語言

default_signature

設定預設的簽名檔, 設在這裡的值會成為每個新使用者的預設簽名檔, 不過使用時每個使用者可以依自己的需求, 設定成其他的內容

初始化 Open WebMail

在前面的安裝步驟裡頭, 最後一個步驟是

cd the_direcotry_of_openwebmail_cgi_scripts
./openwebmail-tool.pl –init

這個動作會建立一些 Open WebMail 在執行時會用到的對應表, 如簡繁轉換, 陰陽曆轉換等. 如果這個動作沒有做的話, 使用者將無法透過 Web 介面使用 Open WebMail

而由於在各種不同作業系統上的 perl 版本的差異, 其所使用的 dbm 種類也不盡相同, 有的可能需要特殊的設定後才能使用, –init 在建立上述對應表之前, 會測試系統上 perl 的 dbm 種類, 並且提供一些必要的建議事項

1. 首先會檢查 openwebmail.conf 中的 dbm_ext, dbmopen_ext 和 dbmopen_haslock 三個選項的設定是否正確, 如果設定有誤的話, 您會看到如下的畫面

Please change the following 3 options in openwebmail.conf

from

dbm_ext .db
dbmopen_ext none
dbmopen_haslock no

to

dbm_ext .db
dbmopen_ext %dbm_ext%
dbmopen_haslock yes

2. 其次是檢查系統上的 dbm 是否內定使用 DB_File.pm 這個模組, 如果是而且有需要的話, 會建議您對 DB_File.pm 作一些必要的修改 (這個修改是由 DB_File.pm 作者所提供的), 您會看到如下畫面

Please modify /usr/libdata/perl/5.00503/mach/DB_File.pm by adding

$arg[3] = 0666 unless defined $arg[3];

before the following text (about line 247)

# make recno in Berkeley DB version 2 work like recno in version 1

請務必依照以上的建議作修改, 否則您的 Open WebMail 可能會無法完全正常動作, 也請記得在做完修改之後, 別忘了重新執行一次 ‘./openwebmail-tool.pl –init’

測試 Open WebMail

在完成上面的步驟後, 您可以連線到

http://your_server_hostname/cgi-bin/openwebmail/openwebmail.pl

並且登入看看是否一切正常

FTP檔案傳輸服務(Linux主機伺服器架設技術)

Linux sqz 上的檔案傳輸服務預設是使用 vsftp 套件,裝妥時的預設狀態如下:

1. 使用 stand alone 方式提供服務
2. 任何合法使用者皆可以登入,並存取自己家目錄底下的檔案
3. 關閉 anonymous
4. 基於安全因素使用登入後,其家目錄就是根目錄 (chroot_local_user=YES ),因此無法在「第三地」建立「公用資料夾」後,以 link 的方式給各使用者存取。

安裝

* 安裝
root@dns:~# apt-get update
root@dns:~# apt-get install vsftpd

設定檢查

* 請檢查 /etc/vsftpd.conf 內的設定值是否與下面所列一致

#在IPv4監聽,若要改成 IPv6 監聽,一定要修改/etc/rc.local內的 ip6tables 以及給予 fix ipv6 address
listen=YES
#listen_ipv6=YES
#不允許anonymous公共下載區
anonymous_enable=NO
#列出資料夾內檔案詳細列表
dirmessage_enable=YES
#使用本機時間
use_localtime=YES
#使用記錄檔
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#啟動主動式傳輸
connect_from_port_20=YES
#一些安全性設定
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
#啟用本機 User
local_enable=YES
chroot_local_user=YES
write_enable=YES
local_umask=022

建立公用資料夾

如果學校希望使用者在登入 FTP 服務後,只能存取「自己的家目錄」及「共用區」,而看不到別人的資料夾。筆者以 /home/ftp/pub 為公用區為例,其作法如下:

1. 公用資料夾建在在 /home/ftp/pub 底下
root@dns:~# mkdir /home/ftp/pub
2. 檔案權限開成 1777,使共用區內每個人皆可上傳修改自己的東西,但不得互改他人的
root@dns:~# chmod 1777 /home/ftp/pub 。
3. 接著,在每個 user 的家目錄下執行以下兩個動作(以 root 身份),便可以達成「共用區」的建立。
* 每個 User也須建立 pub 資料夾(若已建立,不必再做)
root@dns:~# mkdir /home/user/pub
* 把 /home/ftp/pub 掛載至 /home/user 底下(每次重開機,必須執行一次)
root@dns:~# mount –bind /home/ftp/pub /home/user/pub
* 下 mount 指令檢視
root@dns:~# mount

做完之後,大家所存進 pub 資料夾的檔案,實際上是放在 /home/ftp/pub,而且由於 1777 的作用,大家不可互相刪改對方的。只是,還有兩個問題尚待解決:

1. 每個帳號都要執行一次這樣的指令,著實麻煩。
2. 下次開機要再 key in 一次這樣的指令

一次把掛進所有使用者

筆者為解決上述的問題,已寫一支 shell script 在此: 檔案:Pubfolder.zip。本方案,會把所輸入的「共用資料夾」建在 /home/ftp 底下。以下是本程式之使用注意事項:

* 要共用時
root@dns:~# pubfolder.sh -m 共用資料夾名稱
若 /home/ftp 底下無此資料夾,會以 1777 權限自動建立
* 要解除共用時
root@dns:~# pubfolder.sh -u 共用資料夾名稱
* 下次開機也能自動掛載時,請在 rc.local 的底下, exit 0 之上,加上
root@dns:~# vi /etc/rc.local

……

pubfolder.sh -m 共用資料夾名稱

exit 0

* 使用「root@dns:~# mount」指令來檢視掛載狀態,若有以下字串,代表共用區已掛載


/home/ftp/public on /home/tnc01/public type none (rw,bind)
/home/ftp/public on /home/tnc02/public type none (rw,bind)
/home/ftp/public on /home/tnc03/public type none (rw,bind)

* 註1:若 「/home/ftp/共用資料夾」未事先建立,而產生此一錯誤訊息,可以不理會「special device /home/ftp/xxxx does not exist」
* 註2:預設所建立的共用資料夾權限為 1777 , 若想改為 777 請自行修改原始碼(把唯一有 1777 的地方改掉)
* 註3:mount 指令的運用,本來就是兩地都要有實體資料夾,意即本工具會在 /home/ftp 底下建一個真正的存放區,也會在各個 User 底下建一個同名「空的」的資料夾,供 mount –bind 用。
* 註4:延續註3 所提,在使用 pubfolder.sh -u 解除共用區之後,並不會把各家目錄底下的那個「空的」同名資料夾刪除,可能會造成您覺得共用區並沒刪除的假像。

此機制下rSync備份注意事項

由於我們把 /home/ftp/pub 掛載至 /home/user/pub ,因此,事實上所有資料檔案是在 /home/ftp/pub 底下,但 rsync 程式並不知道這件事,在備份執行時,會把每個人的 pub 皆複製一份,造成 pub 重覆備份的現象。解決方法如下:

* 修改 /root/bk-Linux.sh,在執行 rsync 指令的前面先缷載再掛載,舉例如下:

#! /bin/sh

/root/pubfolder.sh -u pub

/usr/bin/rsync -rvlHpogDtS –password-file=/root/rsyncd.secrets /var/lib/mysql my_backup@163.26.x.x::mybk
/usr/bin/rsync -rvlHpogDtS –password-file=/root/rsyncd.secrets /var/www yh_backup@163.26.x.x::mybk

/root/pubfolder.sh -m pub

Linux 下通過腳本實現遠端自動備份

考慮到在本機上備份資料,一旦該機器硬碟出現故障,資料無法取出。遠端手動備份資料費時費力且不及時。最好的方法就是通過腳本實現遠端自動互備。但遠端無論是通過SSH登陸,還是通過scp複製檔案都需要輸入密碼。為了克服這個問題,首先需要實現不需要密碼的SSH登陸,這樣就可以使用rsync,scp,rexec等指令來做的遠端備份了。

1. 設定無需密碼的ssh登陸,方法如下:
假設A,B兩伺服器,現在需要在A機上用root登陸B機,而不需要輸入密碼,那我們可按照下面的步驟來做:
1)在A機上生成鑰匙對,執行以下指令:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa
Enter passphrase (empty for no passphrase):直接換行
Enter same passphrase again:直接換行
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23 root@host1

這樣,在/root/.ssh/路徑下會生成id_rsa,和id_rsa.pub,其中id_rsa是密鑰,id_rsa.pub是公鑰。

2)把在A機生成的id_rsa.pub複製到B機上,假設複製到B機的臨時目錄下,如:
scp /root/.ssh/id_rsa.pub root@218.242.214.20:/tmp
3)用root帳號登陸B機,進入其主目錄,建立authorized_keys檔案,並設定好權限。
cd ~/.ssh
cat /tmp/id_rsa.pub >>authorized_keys
chmod  400 authorized_keys
rm -f /tmp/id_rsa.pub

4)測試
在A機上轉到root帳號,嘗試登入B機。看看是不是不要密碼.
說明:
authorized_keys檔案的權限很重要,如果設定為777,那麼登入的時候,還是需要提供密碼的。
記得將臨時目錄下的id_rsa.pub刪除,養成個好習慣。
本方法在Red Hat9.0上測試通過。

2. 編輯crontab檔案
vi /etc/crontab
如設定每天凌晨3:00執行cron.daily中的腳本:
00 3 * * * root run-parts /etc/cron.daily

3.編輯cron.daily中的腳本
cd /etc/cron.daily/
vi backupdb

pg_dump -U postgres voipack > /voipack.sql
pg_dump -U postgres regserver > /regserver.sql
tar -cvjf /aavm.tgz.bz2 /usr/local/aavm
tar -cvjf /oracle.tgz.bz2 /var/oracle
scp /voipack.sql root@218.242.214.20:/root/218.242.214.23_backup
scp /regserver.sql root@218.242.214.20:/root/218.242.214.23_backup
scp /aavm.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup
scp /oracle.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup

將23上產生的備份檔案copy到218.242.214.20:/root/218.242.214.23_backup路徑下

同樣的方法可以將假設B伺服器上的資料備份到A伺服器,實現雙機的互備。

Linux主機電子郵件 Openwebmail + spamassassin 擋垃圾信的設定方法

首先先到官方網站看安裝的方式:

http://openwebmail.com/openwebmail/download/redhat/howto/spam/howto.txt

(裡面的第 4. 可以略過)

再來才是重頭戲,也是我卡了好幾天才發現的地方:

在 openwebmail.conf 裡面的設定找到 enable_spamcheck 這段,照以下的參數做修改就可以了。(下面的例子也把學習廣告信的功能也打開)

spamcheck_pipe                  /usr/bin/spamc  -c -x -t60 -u @@@USERNAME@@@
learnham_pipe                   /usr/bin/sa-learn –local –ham
learnspam_pipe                  /usr/bin/sa-learn –local –spam
enable_spamcheck                yes
enable_learnspam                yes
spamcheck_source_allowed        all

之後再照官方的說明文件,以 sample-spam.txt 寄一封測試的廣告信,如果設錯的話,在 openwebmail.log 裡面就會出現:

Sun Oct 24 21:52:06 2004 – [31314] (192.168.1.1) neo – spamscheck – pipe error – spamd error, exit=2
55, ret=From root@xxx.com  Sun Oct 24 21:52:01 2004

成功的話就會出現:

Sun Oct 24 22:18:20 2004 – [31484] (192.168.1.1) neo – spamcheck – spam 1000.0/10 found in msg <2004
1024141811.CF83A19434C@xxx.com>

另外廣告信學習的功能如果設定成功的話,在使用者點選學習功能的時候,在 log 裡就會看到類似以下的訊息:

Sun Oct 24 22:25:13 2004 – [31634] (192.168.1.1) neo – learnspam – 1 learned, 1 examined

如果學習的功能起不來,就要確定 CmdLearn.pm 是不是非 root 權限的人可以讀到? 如果不行的話,就下 chmod 打開權限就可以了。如果不確定 CmdLearn.pm 路徑的話可以下 #locate CmdLearn.pm 找看看。

但是要注意的是目錄的權限也要開,以我的環境 CmdLearn.pm 在 RH9 的 RPM 預設是裝在:

/usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/

而我是乾脆把整個目錄都把 Group 跟 Public 讀取跟執行的權限打開:

chmod 555 /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/ -R

這樣每個使用者就可以開始使用 OpenWebMail 的擋廣告信及學習廣告信的功能了。

本文引用來至:http://www.neo.com.tw/archives/339


    1、用Shell腳本檢驗服務系統啟動項狀態
    2、檢視現用的服務系統啟動項的狀態
    3、加入一個新服務到啟動項
    4、從系統啟動項清單刪除一個服務
    5、為服務開啟或關閉選取的運行級
    6、rc.d子目錄下的腳本檔案
    7、加入操作使rcx.d目錄的變化


Chkconfig指令用來設定,檢視或變更配置開機自動啟動的服務。下面根據七個實用的案例來說明Chkconfig指令的使用方法。
1、用Shell腳本檢驗服務系統啟動項狀態

當你只用服務名執行chkconfig指令時,如果該服務已經配置到系統啟動項即返回真。下面的代碼段是用來檢查一個服務是否已經配置開機啟動。

    # vi check.sh
    chkconfig network && echo "Network service is configured"
    chkconfig junk && echo "Junk service is configured"
     
    # ./check.sh
    Network service is configured

你也可以指定檢查該服務是否配置到特殊的運行級。

    # vi check1.sh
    chkconfig network –level 3 && echo "Network service is configured for level 3"
    chkconfig network –level 1 && echo "Network service is configured for level 1"
     
    # ./check1.sh
    Network service is configured for level 3

2、檢視現用的服務系統啟動項的狀態

–list選項用來顯示現用的所有服務的系統啟動項狀態。

    # chkconfig –list
    abrtd   0:off   1:off   2:off   3:on    4:off   5:on    6:off
    acpid   0:off   1:off   2:off   3:off   4:off   5:off   6:off
    atd     0:off   1:off   2:off   3:on    4:on    5:on    6:off
    …

可以使用grep過濾顯示指定條件的服務。
下面的指令表示只顯示運行級為3的服務。

    chkconfig –list | grep 3:on

下面的指令表示只顯示network服務的啟動項狀態。

    chkconfig –list | grep network

3、加入一個新服務到啟動項

使用–add選項來加入一個指定服務到系統啟動服務清單。
下面的例子說明如何加入一個新服務(如iptables)到需要開機啟動的服務清單。「chkconfig –add」指令也會自動地開啟運行級2,3,4和5,如下:

    # chkconfig –list | grep iptables
    # chkconfig –add iptables
    # chkconfig –list | grep iptables
    iptables       0:off   1:off   2:on    3:on    4:on    5:on    6:off

4、從系統啟動項清單刪除一個服務

下面的例子顯示ip6tables已經配置到啟動項。

    # chkconfig –list | grep ip6tables
    ip6tables       0:off   1:off   2:off   3:on   4:off   5:off   6:off

使用–del選項從啟動清單刪除它。

    # chkconfig –del ip6tables
    # chkconfig –list | grep ip6tables

5、為服務開啟或關閉選取的運行級

有時候你可能不想從啟動清單中刪除整個服務,然而你可能僅僅想關閉特殊的運行級。
下面的例子是為nfserver服務關閉運行級5.

    # chkconfig –level 5 nfsserver off

你也可以同時關閉多個運行級,下面是關閉3和5運行級。

    # chkconfig –level 35 nfsserver off

6、rc.d子目錄下的腳本檔案

無論你什麼時候使用chkconfig指令加入或刪除一個服務,它都會在/etc/rc.d子目錄執行某些動作。

    當chkconfig –add指令被執行,它會在對應的rc目錄建立一個符合連結檔案來啟動和停止服務。
    當chkconfig –del指令被執行,它會在對應的rc目錄刪除相應的符號連結。

下面的例子顯示xinetd服務已經開啟運行級3和5,所以xinetd會有兩個檔案在rc3.d目錄和兩個檔案在rc5.d目錄。以K開頭的檔案關機的時候用(K表示kill)。以S開頭的檔案開機的時候用(S表示start)。

    # chkconfig –list | grep xinetd
    xinetd                    0:off  1:off  2:off  3:on   4:off  5:on   6:off
    xinetd based services:
     
    # cd /etc/rc.d/rc3.d
    # ls | grep xinetd
    K08xinetd
    S14xinetd
     
    # cd /etc/rc.d/rc5.d
     
    # ls | grep xinetd
    K08xinetd
    S14xinetd

7、加入操作使rcx.d目錄的變化

當你通過chkconfig指令加入一個新服務,預設的運行級會自動地為該服務開啟,並且會在對應的rcx目錄建立檔案。
例如,如果nfsserver服務沒有在啟動項清單中,那nfsserver服務就沒有檔案在/etc/rc.d/rc*.d目錄下。

    # chkconfig  –list | grep nfsserver
    nfsserver                 0:off  1:off  2:off  3:off  4:off  5:off  6:off
    # ls /etc/rc.d/rc3.d | grep nfsserver
    # ls /etc/rc.d/rc5.d | grep nfsserver

當你加入nfsserver服務之後,你將會在這些目錄下看到符號連結。

    # chkconfig –add nfsserver
    nfsserver                 0:off  1:off  2:off  3:on   4:off  5:on   6:off
     
    # cd  /etc/rc.d/rc3.d
    # ls -l | grep nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 K08nfsserver -> ../nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 S14nfsserver -> ../nfsserver
     
    # cd /etc/rc.d/rc5.d
    # ls -l | grep nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 K08nfsserver -> ../nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 S14nfsserver -> ../nfsserver

當你使用–del或–level選項來關閉服務,在rcx.d目錄下對應的符號連結檔案將會被刪除。

    # chkconfig –level 5 nfsserver off
    # ls /etc/rc.d/rc5.d  | grep nfsserver

在 2021 年 8 月 14 日,密切關注新聞的人都知道,這是Debian 11 Bullseye發布的日子,Debian 11 Bullseye 下載具有更好的 systemd 和 Wayland 實現,這是其中之一的新穩定版本Linux 場景中最傳統的發行版。在這一點上,毋庸置疑,我們首先是一個事件,尤其是看到 Debian 已經成為社區項目的重要基準,在這個環境中,公司越來越多地主導,至少在外觀上。

 

在 Buster 發布兩年之後,Debian 11 Bullseye 熱衷於繼續這個享有盛譽的發行版的發展,對許多人來說,它奠定了 Linux 操作系統應該如何工作的基礎(並且其技術在市場上建立了強大的主導地位。消費通過烏班圖)。隨著時間的流逝以及軟件堆棧在穩定版本的整個生命週期中保持不漏水,最引人注目的是許多組件的更新。

Debian 11 Bullseye 的新增功能

負責分發的人說,新版本的系統,或者至少是面向 64 位 x86 的映像,包括 11,294 個新包,這次總共增加了 59,551 個。更新了 42,821 個軟件包,佔 Buster 提供的所有軟件包的 72%,而 9,519 個因各種原因被刪除。

關於桌面環境,我們發現GNOME 3.38、KDE ​​Plasma 5.20、LXDE 11、LXQt 0.16、MATE 1.24 和 Xfce 4.16。在這裡我們可以突出 GNOME,因為提供的版本不僅默認維護會話Wayland,而且在這個意義上提供了比 Buster 更成熟的體驗。唯一可能缺少的是截屏功能,但 OBS Studio 和 Kooha 的 Flatpak 版本可以覆蓋這方面(幸運的是,PipeWire 預裝了 GNOME)。

可立即下載基本 OS 6 Odin

在讓用戶選擇他們最喜歡的桌面方面,Debian 是最成功的發行版之一,因為它幾乎適用於任何人。這使得它在使用 Linux 操作系統作為桌面時能夠適應用戶的不同口味。

與相關的桌面方面繼續從其倉庫Debian的11舷窗提供的LibreOffice 7,Calligra 3.2,GnuCash的4.4,GIMP 2.10.22,Inkscape的1.0.2,Emacs的27.1,和Krita 4.4.2,Kdenlive 20.12.3,Shotcut 21.01。29 和 VLC 3.0.16。一般來說,我們找到了一個相對較新的軟件堆棧,但如果您想要任何應用程序的更新版本,您可以求助於 Flatpak 或 Snap。

但是 Debian 不僅包含桌面,它還是一個嘗試適應任何目的的操作系統。正因為如此,它被廣泛應用於服務器領域,這可能是它最突出的地方。在服務器技術方面,Bullseye 提供Apache 2.4.46、lighttpd 1.4.59、MariaDB 10.5、OpenSSH 8.4p1、PHP 7.4、PostgreSQL 13 和 Samba 4.13,而開發軟件有OpenJDK 11、GCC 10.2 .1 和 LLVM / Clang 9.0.1 和 11.0.1。

Zorin OS 16 Pro 將界面從 Windows 11 帶到 Linux

為了結束 Debian 11 Bullseye 新聞,我們強調了“open”命令作為“xdg-open”或“run-mailcap”的別名,以及對 Linux 5.10的使用,其中包括對來自 Microsoft 的系統 exFAT 文件。我們記得內核版本是LTS,它可以幫助負責分發的人進行維護。然而,儘管它應該是一個經過嚴格測試的版本,但它可能無法勝任某些硬件工作,例如 DualSense,它從 Linux 5.12 開始得到官方支持。



無驅動打印和掃描支持

對打印機和掃描儀的支持往往最終成為 Linux 的噩夢,尤其是當它不在 HP 範圍內時。為了減少用戶可能遇到的潛在問題,Debian 11 Bullseye 已經為 CUPS 打印和 SANE 掃描提供了無驅動支持。

許多打印機能夠通過以太網或 Wi-Fi 進行連接,並且無需驅動程序即可工作,這已在 CUPS 和“cups-filters”中實現。本文中所討論的系統包含一個名為“ipp-usb”的新軟件包,它是 CUPS 守護進程推薦的,並使用 IPP-over-USB 協議來支持許多現代打印機。

基本上,IPP-over-USB 所做的就是將 USB 連接的設備視為網絡設備,從而將無驅動操作的支持擴展到連接到 USB 端口的打印機。當打印​​機連接到 USB 端口時,’ipp-usb’ 包提供的 systemd 服務文件會啟動同名守護程序,以便為打印做好準備。儘管 CUPS 應該自動啟動配置,但也有可能手動執行該過程。


掃描儀也會發生類似的情況,因為 SANE 有兩個後端用於支持無人駕駛:’sane-escl’,由’libsane1′ 提供,以及’sane-airscan’,它是獨立開發的。兩者都支持eSCL協議,但只有第二個具備使用WSD協議的能力,所以建議用戶同時使用。

由於 eSCL 和 WSD 是通過網絡工作的協議,因此 IPP-over-USB 可用於使 USB 連接的掃描儀像在網絡上一樣工作。這裡需要注意的是’libsane1′ 有’ipp-usb’ 作為推薦包。

Debian 11 Bullseye 系統:

Debian 11 Bullseye 繼續完善發行版的 systemd 實現。這次我們發現默認使用CgroupsV2來對資源進行統一的層級控制。但是,使用內核命令行參數可以重新啟用舊版 Cgroups 支持。

另一方面,我們默認啟用了持久日誌功能,它將其文件存儲在“/var/log/journal/”中。’adm’ 和 ‘systemd-journal’ 組的成員可以在 Debian 上閱讀該日誌。此更改不應干擾任何現有的傳統日誌記錄守護程序,例如 rsyslog。

 

Debian 默認使用沒有為 Linux 內核批准的專有固件的內核,因此安裝程序可能無法在各種硬件上啟動,尤其是在涉及 AMD Radeon 顯卡的情況下。對於這種情況,您可以使用non-free映像,它不是官方的,但也託管在 Debian 域中。

Bullseye 有望成為長期以來最好的 Debian 版本,以至於很多人說,在進入候選版本之前,它作為桌面使用時已經比 Buster 更穩定。

NAS(Network Attached Storage)是架設商業網站的神兵利器嗎?

最近網路上有很多關於:NAS 網路磁碟機完全活用–選購、安裝、應用、改機一次搞定的文章
NAS完整名稱為「Network Attached Storage」意指網路儲存設備。
NAS 又稱為網路磁碟機,雖然它長得像外接式硬碟,但可不只能用來存資料!
只要透過網路,下載、架站、影音分享,NAS 都能幫您做到!
雖然 NAS 這麼好用,但可不是像 USB 行動硬碟一樣,一接上電腦就馬上可以使用的。
要懂得如何設定,並啟用相關功能才行,否則連想將檔案複製到 NAS 中都做不到。
當然透過說明書官方的協助這方面應該可以解決!

接這問題又來了:NAS的機種也可以架設支援php和mysql,想請問透過此種方式來架商業網站是否妥當?
可同時容納多少人在線上?會不會有被駭客入侵的可能性?有防火牆的功能嗎?

它的答案是:NAS 的 CPU 跟 RAM 都比桌機差一大節,RAM 跟 CPU 也無升級可能,如果你的網站流量很大,同時上線人數很多的話,可能比較不適合,如果是在家用倒是很適合。
另外有網路專家跳出來警告:
把NAS放在分享器暴露公網上的危機:
1. 無防火牆,port全數暴露
2. 設定資料夾的檔案分享,所有檔案分享都是針對PPPOE 附近公網用戶的網路鄰居。
尤其有些人把資料夾設為Public 讀寫權限的,(一般人放家裡,原本有些就會為了方便設定為Public、有些是設密碼),你設為Public的,一不小心就被人全部讀取、且可刪除。
看到此文章害怕了嗎?
結論:『可以支援php架站』『可以用MySQL資料庫』不等於可以完全取代『專業的網站伺服器』!
不然公司機關還花高薪請『網管人員』做什麼?錢多?還是不知道有NAS此種產品?
例如:腳踏車、機車、汽車、飛機都是交通工具,都可以從台灣頭到台灣尾(但是效能差異太大了!)
網路創業要走正規的路才是『王道』,看到文章就擴大能耐(想法還是不要太天真)。

MySQL資料庫管理 phpMyAdmin 3.4.3.1 Final 多國語系(繁體中文版)

phpMyAdmin 是一個用PHP編寫的,可以通過際網路控制和操作MySQL。
通過phpMyAdmin可以完全對資料庫進行操作,例如建立、複製/刪除資料等等。
可以用來管理 MySQL-server 以及單一資料庫的 PHP 程式,對於不熟悉 MySQL 指令列指令的人來說,是很方便的管理工具。」

MySQL的管理工具:phpMyAdmin

所謂的phpMyAdmin簡單的說就是一種MySQL的管理工具。
透過此一程式,可以直接從web上去管理MySQL,不需要到系統上去執行。
安裝步驟:
 1.取得檔案
   其中唯一的差別是在於後者不需要再做中文最佳化的動作。
   所謂的中文最佳化乃是因為此程式的翻譯者可能是大陸的..所以翻譯不佳
   若你覺得沒有關的話,也可以忽略它。
 2.我們先採用前者然後再加上中文最佳化。
 3.將此檔解壓縮到web伺服器的文件根目錄
   說明白些也就是你放置網頁的地方啦
   ex:/usr/local/apache/htdocs/        (這是我網頁存放的位置)
   a. # mv phpMyAdmin_2.0.5.tar.gz /usr/local/apache/htdocs/ 移到文件的根目錄
   b. # tar zxvf phpMyAdmin_2.0.5.tar.gz     解壓縮phpMyAdmin_2.0.5.tar.gz
   c. 路徑 /usr/local/apache/htdocs/phpMyAdmin
   d. 修改設定檔
      # vi config.inc.php3
     找到下面的部分   
     $cfgServers[1]['host'] = 'localhost';  // MySQL 的hostname
     $cfgServers[1]['port'] = '';             // MySQL 的port 空白表示預設3306
     $cfgServers[1]['adv_auth'] = true;      // 是否採用進階功能
     $cfgServers[1]['stduser'] = 'root';   // MySQL的管理者
     $cfgServers[1]['stdpass'] = 'abc123';   // MySQL管理者的密碼
     //我採用root為管理者,密碼為abc123 你可以採用自己喜歡的
 4.測試
   開啟瀏覽器,輸入http://的網址/phpMyAdmin/
   done …
中文最佳化
   若你一剛使用的檔案是c_phpMyAdmin_2.0.5.tar.gz則沒有中文問題的困擾
   若你是照我的步驟來做的話請取得中文最佳化檔(ftp://ohaha.ks.edu.tw/pub/source/php/chinese_big5.inc.php3)
   將此檔放入的phpMyAdmin的目錄之中 他會取代chinese_big5.inc.php3此檔
   若你覺得不太保險的話 你可以先將原有的chinese_big5.inc.php3更名然後將新檔案放入
   a. mv chinese_big5.inc.php3 chinese_big5.inc.php3.old    
      // 更名為chinese_big5.inc.php3.old
   b. mv chinese_big5.inc.php3 /usr/local/apache/htdocs/phpMyAdmin/
小技巧
   聰明的你是否發覺上面有什麼不對了呢?如果每個人都照我這樣做
   那麼..是不是每個人的phpMyAdmin的位置都在http://網址/phpMyAdmin這裡?
   這種情況是可以改變的..只要將phpMyAmin資料夾更名即可。
   若我想要更名為pma(各取一個字,方便記憶)
   a. 路徑:/usr/local/apache/htdocs/
   b. # mv phpMyAdmin  pma

MySQL資料庫管理 phpMyAdmin 3.4.3.1 Final 多國語系(繁體中文版)下載網址:
 
  http://por.tw/Downloads/phpMyAdmin-3.4.3.1-all-languages.exe

在Linux主機上架設加密的網頁通道(HTTPS加密網頁)

在Linux主機上架設加密的網頁通道,適用較機密(要認證)的網頁。
一般而言,網路上所有的傳輸皆是公開的,若有人,肯花心思取得您的所有網路封包,那麼您在網路所輸入的帳號密碼將無所遁形。
因此,網頁資料庫或 webmail 等網頁應用程式,最好是在加密的通道上進行,就算是有心人取得您的網路封包,也只是一堆亂碼。

安裝步驟

 以下動作,皆是以 root 身份執行
建立 /etc/apache2/apache.pem 檔

    * openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
          o Country Name (2 letter code) [AU]: TW
          o State or Province Name (full name) [Some-State]:Taiwan
          o Locality Name (eg,city) []: Tainan (依您的地區而定)
          o Organization Name (eg,company) [Internet Widgits Pty Ltd]: Da Cheng Elementary School
          o Organizational Unit Name (eg,section) []: Infomation & Education
          o Common Name (eg,YOUR name) []: your host name
            注意:這裡最好填入主機名稱,例如「dns」,「mail」…etc
          o Email Address []: admin@dc1es.tnc.edu.tw
          o 經此動作,會產生 /etc/apache2/apache.pem

Apache2 上啟用 SSL 模組暨其虛擬站台
加入 SSL 模組

    * a2enmod ssl

設定 SSL 虛擬站台(VirtualHost)

    * cd /etc/apache2/sites-available/
    * cp default ssl
    * vi ssl (紅字為修改區)

NameVirtualHost *:443

<VirutalHost *:443>


DocumentRoot /var/www/
SSLEngine On
SSLCertificateFile /etc/apache2/apache.pem

    * a2ensite ssl

修改 /etc/apache2/ports.conf

    * vi /etc/apache2/ports.conf
    * OB2D t系列作法,新增 Listen 443

Listen 80

Listen 443

    * OB2D e 及 sqz 作法,新增 NameVirtualHost *:443

NameVirtualHost *:80

NameVirtualHost *:443

    * /etc/init.d/apache2 restart

最後測試:

    * 測試 https://你的網址名稱

本文引用來至:http://myip.tw/itsmw/index.php/Ob2d_https

為php提供ssh2的支援

用來在php程式裡方便的連到遠端主機

執行程式

並取回結果

首先,系統需要已經裝有openssl和openssl-devel包

rpm -qa | grep openssl

然後,安裝libssh2

當下來原始碼後

./configure && make all install

再然後,安裝PECL/ssh2

可以用指令pear install ssh2 (眼前可能只能用pear install ssh2-beta )

或是是去PECL/ssh2 當下來原始碼

然後

phpize && ./configure –with-ssh2 && make

再然後把生成的ssh2.so 檔案覆制到php.ini 中申明的extension_dir 目錄下(這裡是/usr/lib/php4)

cp modules/ssh2.so /usr/lib/php4/

再在/etc/php.d目錄下新增一個檔案ssh2.ini

echo "extension=ssh2.so" > /etc/php.d/ssh2.ini

再重起web server,讓其重讀php.ini

搞定

Let’s Encrypt 是一個證書頒發機構(CA),它提供了一種獲取和安裝免費TLS / SSL證書的簡便方法,從而可以在Web服務器上啟用加密的HTTPS。
它通過提供一個軟件客戶端Certbot來簡化該過程,該客戶端嘗試使大多數(如果不是全部)所需步驟自動化。
當前,在Apache和Nginx上,獲取和安裝證書的整個過程都是完全自動化。

在本教學中,您將使用Certbot在Debian 10上獲得Apache的免費SSL證書,並將證書設置為自動更新。

本教學將使用單獨的Apache虛擬主機文件而不是預設配置文件。
我們建議為每個域創建新的Apache虛擬主機文件,因為它有助於避免常見錯誤,並將預設文件作為後備配置進行維護。

先決條件
要遵循本教學,您將需要:
通過遵循Debian 10教學的初始服務器設置來設置一台Debian 10服務器,包括具有特權和防火牆的非root用戶sudo。
完全註冊的域名。本教學將始終使用your_domain作為示例。你可以購買一個域名Namecheap,免費獲得一個在Freenom,或使用你選擇的域名註冊商。
為伺服器設置了以下兩個DNS記錄。要進行設置,您可以按照以下說明添加網域,然後按照說明建立DNS記錄。

your_domain指向服務器公共IP地址的A記錄。
指向伺服器公共IP地址的A記錄。www.your_domain
通過遵循如何在Debian 10上安裝Apache來安裝Apache。確保為您的域設置了虛擬主機文件。
本教學將作為示例。/etc/apache2/sites-available/your_domain.conf

第1步-安裝Certbot
使用“Let’s Encrypt”取得SSL證書的第一步是在您的伺服器上安裝Certbot軟體。

在撰寫本文時,預設情況下,無法從Debian軟體存儲庫中獲得Certbot。
為了使用來下載軟體apt,您需要將backports存儲庫新增到sources.list檔案中,以apt尋找軟體包源。
反向移植是Debian測試和不穩定發行版中的軟體包,這些軟體包經由重新編譯,因此它們可以在穩定的Debian發行版上運行而無需新庫。

要加入backports存儲庫,請開啟(或建立)目錄中的sources.list檔案/etc/apt/:

sudo nano /etc/apt/sources.list

在文件底部,添加以下行:

 

deb http://mirrors.digitalocean.com/debian buster-backports main
deb-src http://mirrors.digitalocean.com/debian buster-backports main
deb http://ftp.debian.org/debian buster-backports main

這內含符合Debian自由軟體準則(DFSG)main軟體包,以及和元件,它們本身都不符合DFSG或包括此類依賴關係。non-freecontrib

儲存並按下關閉檔案CTRL+XY,然後ENTER,然後更新您的軟體包清單:

 

sudo apt update

然後使用以下指令安裝Certbot。請注意,該-t選項告訴apt您通過檢視剛加入的backports存儲庫來搜尋軟體包:

sudo apt install python-certbot-apache -t buster-backports

ertbot現在可以使用了,但是為了使其能夠為Apache配置SSL,我們需要驗證是否已正確配置Apache。

 

步驟2 —設定SSL證書

Certbot需要能夠在Apache配置中找到正確的虛擬主機,以使其自動配置SSL。
具體來說,它是通過尋找ServerName與您請求證書的域相符合的指令來實現的。

如果按照Apache安裝教學中的虛擬主機設定步驟進行操作,則VirtualHost您的域中應該有一塊已正確設定了偽指令的塊。
/etc/apache2/sites-available/your_domain.confServerName

要進行檢查,請使用nano或您喜歡的文字編輯器為您的域開啟虛擬主機檔案:

sudo nano /etc/apache2/sites-available/your_domain.conf

找到現有的ServerName行。它應該看起來像這樣,用您自己的域名代替your_domain

 

...
ServerName your_domain;
...

如果還沒有,請更新ServerName指令以指向您的域名。然後儲存檔案,離開編輯器,並驗證配置編輯的語法:

sudo apache2ctl configtest

如果沒有任何語法錯誤,您將在輸出中看到以下內容:

Syntax OK

如果出現錯誤,請重新開啟虛擬主機檔案並檢查是否有錯字或字元丟失。一旦配置檔的語法正確,請重新加載Apache以加載新配置:

sudo systemctl reload apache2

Certbot現在可以找到正確的VirtualHost塊並進行更新。

接下來,讓我們更新防火牆以允許HTTPS通信。

步驟3 —容許HTTPS通過防火牆
如果已按照ufw先決條件指南的建議啟用了防火牆,則需要調整設定以容許HTTPS通信。
幸運的是,當安裝在Debian上時,ufw隨附了一些配置檔,這些配置檔有助於簡化變更HTTP和HTTPS流量的防火牆規則的過程。

您可以通過鍵入以下內容檢視現用的設定:

sudo ufw status

如果您按照我們的指南中有關如何在Debian 10上安裝Apache的步驟2進行操作,則此指令的輸出將如下所示,顯示僅HTTP流量被容許進入Web伺服器:
會看到輸出容:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
WWW                        ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
WWW (v6)                   ALLOW       Anywhere (v6)

要另外容許HTTPS通信,請容許“ WWW Full”配置檔並刪除冗餘的“ WWW”配置檔配額:

 

sudo ufw allow 'WWW Full'
sudo ufw delete allow 'WWW'

您的狀態現在應如下所示:

sudo ufw status

會看到這樣:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
WWW Full                   ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
WWW Full (v6)              ALLOW       Anywhere (v6)      

接下來,讓我們運行Certbot並獲取我們的證書。

步驟4 —獲取SSL證書
Certbot提供了多種通過外掛程式取得SSL證書的方法。
Apache外掛程式將負責重新配置Apache並在必要時重新加載配置。
要使用此外掛程式,請輸入以下內容:

sudo certbot --apache -d your_domain -d www.your_domain

它certbot與–apache外掛程式一起運行,-d用於指定您希望證書有效的名稱。

如果這是您第一次運行certbot,將提示您輸入電子信件位址並同意服務條款。
此外,它還會詢問您是否願意與電子前沿基金會(Electronic Frontier Foundation)分享您的電子信件位址,該基金會是倡導數字版權的非營利組織,也是Certbot的製造商。隨時輸入Y分享您的電子信件位址或N拒絕。

完成此操作後,certbot將與Let’s Encrypt伺服器通信,然後進行質詢以驗證您是否控制了要為其申請證書的域。

如果成功,certbot將詢問您如何配置HTTPS設定:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

選取您的選取,然後點擊ENTER
配置將自動更新,並且Apache將重新加載以取得新設定。
certbot會顯示一條訊息,告訴您該過程已成功完成,並且證書的存儲位置:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your_domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your_domain/privkey.pem
   Your cert will expire on 2019-10-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

您的證書已下載,安裝和加載。
嘗試使用重新加載網站,https://並註意瀏覽器的安全指示器。
它應指示站台已正確保護,通常帶有綠色的鎖定圖示。
如果您使用SSL Labs伺服器測試來測試伺服器,它將獲得A級。

讓我們通過測試續訂過程來完成。

步驟5 —驗證Certbot自動續訂
讓我們加密證書僅可使用90天。
這是為了鼓勵使用者自動執行證書更新過程。
certbot我們安裝的軟體包通過向中加入續訂腳本來解決這一問題/etc/cron.d。
該腳本每天運行兩次,並將在到期後三十天內自動續訂任何證書。

要測試續訂過程,可以使用以下方法進行試運行certbot:

sudo certbot renew --dry-run

如果您沒有看到任何錯誤,則說明一切就緒。
必要時,Certbot將續訂您的證書並重新加載Apache以取得變更。
如果自動續訂過程失敗,Let’s Encrypt將向您特殊的電子信件傳送到訊息,並在證書即將過期時警示您。

結論:
在本教學中,您安裝了Let’s Encrypt用戶端certbot,為您的域下載了SSL證書,將Apache配置為使用這些證書,並設定了自動更新證書。
如果您對使用Certbot有其他疑問,那麼他們的文件是一個很好的起點。
 

 

 


 

 

vmware下使用ssh訪問linux配置實現

linuxcentosssh網路設定

在vmware8下安裝了centos6.3 用來學習linux,但是每次在虛擬機和外面的系統之間切換,十分麻煩,而且,預設centos安裝好後預設是在x-window圖形介面開啟的更加耗費資源,於是,想採用SecureCRT等ssh工具來訪問。

涉及到兩個問題:1、vmware中linux系統的ip設定 2、系統預設啟動level

 對虛擬機網路進行設定:Edit ->Virtual Network Editor

如下圖,選中一個NAT類型的連線(如果你沒有,我們可以新增一個連線  點擊「Add Network」  加入一個新的NAT連線,加入好之後Apply),這時候我們就進行下一步變更centos 連線了。



   

   VM->Settings 在Network connection中 選取custom和之前設定的NAT類型連線

openssh

openssh已經安裝(centos 6.3)

變更配置檔 /etc/ssh/sshd_config

確保
    Port 22
    ListenAddress 0.0.0.0
    Protocol 2
前面的#去掉了!

檢視兩個系統ip並測試 ping

檢視vmware虛擬機中ip我們可以使用指令

ifconfig

檢視虛擬機中ip

可以看到這一行:

 inet addr:192.168.174.128  Bcast:192.168.174.255  Mask:255.255.255.0

int addr:192.168.174.128  是虛擬機中ip位址,

然後將在win7 cmd 中使用指令 ipconfig  指令檢視本地連線ipv4位址 例如:169.254.68.68

然後將兩個ip互相ping 看看能否ping通

 開啟sshd服務

在centos中已經安裝了sshd 所以只需要開啟服務即可,

service sshd  start

設定開機自啟動
chkconfig sshd on

重啟服務

service sshd  restart

檢視服務是否開啟

ps -le|grep sshd

可以顯示sshd訊息 說明服務以及開啟了!

為了節省資源:

1.開啟/etc/inittab 檔案:sudo vim inittab
2.在預設的 run level 設定中,可以看到第一行書寫如:id:5:initdefault:(預設的 run level 等級為 5,即圖形
介面)
3.將第一行的 5 修改為 3 即可。

4.儲存檔案後重啟系統你就可以看見是啟動的文字介面了。

使用linux下的TC進行伺服器流量控制(Linux主機伺服器架設技術)

TC很是強大很多所謂的硬體路由器,都是基於這個做的!

    TC介紹

    在Linux中,TC有二種控制方法CBQ和HTB.HTB是設計用來置換CBQ的。它是一個層次式的過濾框架。

    TC內含三個基本的構成塊: 佇列規定qdisc(queueing discipline )、類(class)和分類器(Classifiers)

    佇列(queueing discipline):用來實現控制網路的收發速度。通過佇列,linux可以將網路封包快取起來,然後根據使用者的設定,在盡量不中斷連線(如 TCP)的前提下來平滑網路流量。需要注意的是,linux對接收佇列的控制不夠好,所以我們一般只用傳送到佇列,即「控發不控收」。它封裝了其他兩個主要 TC元件(類和分類器)。內核如果需要通過某個網路介面傳送到封包,它都需要按照為這個介面配置的qdisc(排隊規則)把封包加入佇列。然後,內核會盡可能多地從qdisc裡面取出封包,把它們交給網路配接器驅動模組。

    最簡單的QDisc是pfifo它不對進入的封包做任何的處理,封包採用先入先出的模式通過佇列。不過,它會儲存網路介面一時無法處理的封包。

    佇列規則內含FIFO(先進先出),RED(隨機早期探測),SFQ(隨機公平佇列)和令牌桶(Token Bucket),類基佇列(CBQ),CBQ 是一種超級佇列,即它能夠包括其它佇列(甚至其它CBQ)。

    class用來表示控制策略。很顯然,很多時候,我們很可能要對不同的IP實行不同的流量控制策略,這時候我們就得用不同的class來表示不同的控制策略了。

    filter用來將使用者劃入到具體的控制策略中(即不同的class中)。比如,現在,我們想對xxa,xxb兩個IP實行不同的控制策略(A,B),這時,我們可用filter將xxa劃入到控制策略A,將xxb劃入到控制策略B,filter劃分的標誌位可用u32打標功能或IPtables的 set-mark(大多使用iptables來做標示)功能來實現。

    目前,TC可以使用的過濾器有:fwmark分類器,u32分類器,基於路由的分類器和RSVP分類器(分別用於IPV6、IPV4)等;其中,fwmark分類器容許我們使用 Linux netfilter 代碼選取流量,而u32分類器容許我們選取基於 ANY 頭的流量 .需要注意的是,filter(過濾器)是在QDisc內定,它們不能作為主體。

    封包->iptables(在通過iptables時,iptables根據不同的ip來設定不同的mark)->TC(class)->TC(queue)

    應用

    假設eth0位是伺服器的外網網路介面。

    1)首先在eth0的qdiscA,qdiscA控制通過本機到外網的速度,因此是用來控制伺服器流出速度的

    #tc qdisc add       dev eth1     root      handle               1:htb   default 1

    加入      設定介面     最上層     控制碼(做標示用)     標示    預設使用1的class

    解釋如下:無論是佇列,還是class和filter都有ID之類的標誌符,一般都有parent(父,上層的),注意ID具有介面本地性,不同的網路介面可以有相同的ID.對於這裡因為qdisc在頂部,所以parent無,用『root』字樣來標識,ID用1:來標誌

    『default 91′表示當某個ip流不滿足任何已設定的filter規則時,將自動歸入class 1中。更詳細的指令規則說明請參考手冊。

    2)然後在qdisc下建立兩個class,來指定eth0控制通過本機到外網的速度

    #tc class add dev eth0 parent 1:0 classid1:30 htb rate 2mbit ceil 4mbit prio 2

    註:以上就是我們控制輸出伺服器的速度,為2M,最大可以到4M

    rate: 是一個類保證得到的頻寬值。如果有不只一個類,請保證所有子類總和是小於或等於父類。

    prio:用來指示借用頻寬時的競爭力,prio越小,優先級越高,競爭力越強。

    ceil: ceil是一個類最大能得到的頻寬值。

    3)接著針對不同的應用在各root class下設定不同的類,。示例如下。(如果只有一個類,這個就沒有必要了)

    #tc class add dev eth0 parent 1:30 classid 1:31 htbrate 0.5mbit ceil 2mbit prio 3

    同時為了不使一個會話永占頻寬,在節點(即本文的各應用結點)加入隨即公平佇列sfq.(多IP)

    #tc qdisc add dev eth0 parent 1:31 handle 31:sfq perturb   10

    4)接著加入過濾器。

    #tc filter add dev eth0 parent 1: protocol ipprio 31 handle 31 fw flowid 1:31

    4)用iptable打標,也可以使用u32之類

    #iptables -t mangle -I FORWARD -i !eth1 -p tcp –sport 80 -s xxx.xxx.xxx.xxx  –j MARK –set-mark 31

TC對最對高速度的控制

    Rate ceiling 速率限度

    參數ceil指定了一個類可以用的最大頻寬, 用來限制類可以借用多少頻寬。預設的ceil是和速率一樣

    這個特性對於ISP是很有用的, 因為他們一般限制被服務的使用者的總量即使其他使用者沒有請求服務。(ISPS 很想使用者付更多的錢得到更好的服務) ,注根類是不容許被借用的, 所以沒有指定ceil

    註: ceil的數值應該至少和它所在的類的速率一樣高, 也就是說ceil應該至少和它的任何一個子類一樣高

    Burst 突發

    網路硬體只能在一個時間傳送到一個包這僅僅取決於一個硬體的速率。 鏈路共享軟體可以利用這個能力動態產生多個連線運行在不同的速度。所以速率和ceil不是一個即時度量只是一個在一個時間裡傳送到包的平均值。實際的情況是怎樣使一個流量很小的類在某個時間類以最大的速率提供給其他類。 burst 和cburst 參數控制多少資料可以以硬體最大的速度不費力的傳送到給需要的其他類。

    如果cburst 小於一個理論上的封包他形成的突發不會超過ceil 速率, 同樣的方法TBF的最高速率也是這樣。

    你可能會問, 為什麼需要bursts . 因為它可以很容易的提高向應速度在一個很擁擠的鏈路上。 比如WWW 流量是突發的。 你訪問首頁。 突發的獲得並閱讀。 在閒置的時間burst將再"charge"一次。

    註: burst 和cburst至少要和其子類的值一樣大。

    TC指令格式:

    加入

    tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]

    tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]

    tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id

    顯示

    tc [-s | -d ] qdisc show [ dev DEV ]

    tc [-s | -d ] class show dev DEV tc filter show dev DEV

    檢視TC的狀態

    tc -s -d qdisc show dev eth0

    tc -s -d class show dev eth0

    刪除tc規則

    tc qdisc del dev eth0 root

    案例

    一、下載

    下載限制單個IP

    tc qdisc add dev eth0 root handle 1: htb r2q 1

    tc class add dev eth0 parent 1: classid 1:1 htb rate 30mbit ceil 60mbit

    tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.2  flowid 1:1

    就可以限制192.168.1.2的下載速度為30Mbit最高可以60Mbit

    r2q,是指沒有default的root,使整個網路的頻寬沒有限制

    下載整段IP

    tc qdisc add dev eth0 root handle 1: htb r2q 1

    tc class add dev eth0 parent 1: classid 1:1 htb rate 50mbit ceil 1000mbit

    tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.111.0/24 flowid 1:1

    就可以限制192.168.111.0 到255 的頻寬為3000k了,實際下載速度為200k左右。

    這種情況下,這個網段所有機器共享這200k的頻寬。

    還可以加入一個sfq(隨機公平佇列)

    tc qdisc add dev eth0 root handle 1: htb r2q 1

    tc class add dev eth0 parent 1: classid 1:1 htb rate 3000kbit burst 10k

    tc qdisc add dev eth0 parent 1:1 handle 10: sfq perturb 10

    tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.111.168 flowid 1:1

    sfq,他可以防止一個段內的一個ip佔用整個頻寬。

Linux Mint是一種基於Ubuntu的Linux發行版,由Linux Mint Team團隊於2006年開始發行。
Linux Mint的宗旨是提供一個免費開源、現代、優雅、功能強大卻也易於使用的作業系統。

Linux Mint是對使用者友善而功能強大的作業系統,Linux Mint的理想之一,以簡單的方式呈現先進技術給使用者,以此來成為最優秀的作業系統。

這種簡單方式的實現,不是通過簡化結構與機能而削減功能,也不是通過抄襲其它開發者的實現方法。

Linux Mint繼承了Ubuntu和Debian的眾多優點,同時也分別在兩者的基礎上加入很多自己優秀的特性。
也因為如此,Linux Mint可以幾乎與Ubuntu軟體倉庫完全相容,採用apt管理和.deb軟體套件。

Linux Mint致力於提供一種更為開箱即用(works out of the box)的使用者體驗,免去使用者在安裝系統後還要自己安裝一系列滿足基本使用需求的軟體。
它包括提供瀏覽器、多媒體編解碼器、對DVD播放的支援、Java和其他組件。
它也增加了一套客製化桌面及各種選單,一些獨特的組態工具,以及一份基於web的軟體套件安裝介面。

Linux Mint 歷史:
Linux Mint的開發始於2006年。儘管如此,Mint所基於的軟體層成熟而又久經考驗,這包括了Linux核心、GNU工具以及Gnome桌面環境。
它也依賴於Ubuntu專案和Debian專案,因為Mint是以它們的系統為基礎而開發的。

Linux Mint所採用的使用者介面Cinnamon,其設計風格注重為桌面電腦和筆記型電腦的使用者提供簡易使用的操作環境,並與過往被Linux普遍使用的GNOME或Microsoft Windows XP的使用者介面相似,即使入門用家也易於掌握。
2010年代以後,採用觸控螢幕的平板電腦大幅興起,不少作業系統的使用者介面,包括運行Linux的Ubuntu和Microsoft的Windows 8等,都改為便於觸控操作的設計風格。
然而有不少桌面電腦使用者認為這些觸控導向的新使用者介面,卻不便於傳統滑鼠的使用,其使用體驗不及以往的使用者介面,而Linux Mint繼續為滑鼠使用者提供便利的操作環境,吸引不少使用者投入使用。

2011年起,Linux Mint便成為廣受桌面使用者歡迎的Linux發行版
根據distrowatch.com (頁面存檔備份,存於網際網路檔案館)的統計,從2011年開始Linux Mint擁有所有Linux發行版中最高的點擊數,這一現象一直持續到2018年才被其他版超越。

在2016年2月21日Linux Mint發現其官方遭到來自保加利亞的駭客竄改了伺服器,並將下載位置指向到帶有後門的Linux Mint。
官方宣稱只有在2/20日當天下載的Cinnamon電腦版具有問題,而透過torrent或直接從http下載,則不會受到影響,若要確認是否下載到不正確的ISO映像,可以藉由檢查MD5來驗證。

自20版本起不再支援32位元處理器。

發行版以及桌面環境:
Linux Mint有許多種不同的版本,包含了基於Ubuntu的四種桌面環境:Cinnamon、MATE、KDE以及Xfce。除此之外,也有基於Debian的Linux Mint Debian Edition,又稱LMDE。

基於Ubuntu:
Cinnamon是Unix-like系統下的一個使用者介面,為GNOME Shell的一個衍生版本,最初是為Linux Mint所開發,其提供了如同GNOME 2般,易於使用的擬真介面。
Cinnamon使用Muffin,一個GNOME 3的視窗管理員Mutter的衍生版本,作為自1.2版起的預設視窗管理員。
MATE由已經停止官方維護的GNOME 2原始碼衍生而來。因為GNOME 3以GNOME Shell為基礎所建立的使用者介面取代傳統的擬真介面。
這導致了一些Linux社群的批評。許多使用者拒絕使用新的GNOME介面,並要求其他開發者繼續開發GNOME 2。
MATE隨Linux Mint12投入使用。Xfce是一個輕量級的Linux或類Unix的桌面系統。Xfce建基在GTK+ 2.x之上。
它使用Xfwm作為視窗管理員。這個桌面環境僅需要很少的系統資源,所以可以輕鬆地應用於較舊的電腦上。

KDE全稱K Desktop Environment,整個環境採用的都是TrollTech公司所開發的Qt程式庫(現在屬於Digia公司)。
KDE會為對於易用桌面的需求而不斷探索,例如在Mac OS和微軟的Windows那樣的桌面環境。不過從19版開始,官方不再提供KDE桌面環境,現有版本將會持續提供支援直到2021年。

從17.0開始,Linux Mint只會基於Ubuntu LTS版,因此在下一個長期支援版釋出之前會持續更新並移植一些重要的應用程式,當下一個長期支援版本釋出後,則轉為只有安全更新的模式直到支援結束。
另外,Linux Mint還為Cinnamon和MATE環境的Live DVD提供了No codecs版本。這個版本刪去了「非自由」的組件因此不能支援多媒體。

 

Linux Mint 自由的作業系統官網:

https://linuxmint.com/

 

基於Debian:

即Linux Mint Debian Edition,又稱LMDE,過往是基於Debian「測試版」所發布的版本,但近期改成以Debian「穩定版」作為基礎。
相較於基於Ubuntu的Mint,LMDE雖然執行速度更快,但也較不容易上手,更新也不同於其他版本的Mint會每半年升級一次,而是採取不間斷的對於bug和安全性問題進行修復
同時間也會保持Mint其他元件的更新,也因為不同於基於ubuntu的的Linux Mint更新頻率,所以LMDE擁有自己的版本號碼。
發行格式

Linux Mint只提供Live DVD這一種ISO下載。
非傳統概念的Live DVD
為了追求易用性和良好的人機互動體驗,Linux Mint匯集了可以開箱即用的大量多媒體等軟體套件。
因此它的Live ISO體積超過了原生的Ubuntu,甚至大於950MB。若以傳統的光碟安裝方式,這樣的體積對於一張700MB的CD來說鐵定是太大了,只有使用DVD光碟燒錄才可以。
但是它的本質依舊等同於Live CD。名稱的改變只是為了遷就ISO的大小。

Ubuntu和Linux Mint有什麼區別?
Ubuntu和Linux Mint是目前最流行的兩種桌面Linux發行版。如果你想進入Linux – 或者你已經使用過Ubuntu或Mint – 你會想知道它們是如何不同的。

Linux Mint和Ubuntu密切相關 – Mint基於Ubuntu。雖然它們起初非常相似,但隨著時間的推移,Ubuntu和Linux Mint已經成為越來越不同的Linux發行版。

Linux主機加掛硬碟的方法:

若您的 HD 還有其它空間,可按以下方式為之:

假設 hda 為 HD 的設備代碼。

1. 新增分割區

fdisk /dev/hda 再切出一塊分割區(量容請自訂),假設為 hda3;若不是 hda3,請自行變化。

2. 格式化

mke2fs -j /dev/hda3

3. 手動掛載 hda3

mkdir /hda3
mount -t ext3 /dev/hda3 /hda3

4. 把 /var/mail 改到 /hda3

cd /var
cp -Rp mail /hda3
mv mail mail.old
ln -s /hda3/mail mail

這樣 /var/mail 就變成是一個指向 /hda3/mail 的 softlink
等於是擴大了 /var/mail 的容量

5. 測試郵件收發狀況,若正常,就把 /var/mail.old 刪除

6. 設定 /etc/fstab

把以下設定加入 /etc/fstab 中,使開機時能自動掛載:
代碼:

/dev/hda3 /hda3 ext3 defaults 0 2

您如何知道Linux 主機的時間是否正確?
萬一不正確,那您又如何修改Linux 主機的時間?

#date 看看系統時間對不對

#date –set="xxxx-xx-xx xx:xx"  手動設定系統時間(西元-月-日 時:分)

#hwclock 看看 BIOS 的時間對不對

#hwclock –systohc 將目前的系統時間寫入 BIOS 時間

完成!是不是很簡單呢?
漫長的等待與自己暗地摸索,不如專家一語道破,問題馬上可以迎刃而解!
想一想,您的網路顧問專家在那裡?

Linux主機伺服器架設技術(Linux加掛第二顆硬碟)

流程簡介

檢查硬碟代號→ fdisk → mkfs.ext3格式化 → 永久掛載

檢查第二顆硬碟的代號

* 若 IDE 直接檢查 hd 字串
root@dns:~# dmesg |grep hd

Kernel command line: root=/dev/hda2 ro  vga=788 splash=silent


hda: cache flushes supported
hda: hda1 hda2 ← 第一顆硬碟,內含兩個分割區
Adding 2931820k swap on /dev/hda1.  Priority:-1 extents:1 across:2931820k
EXT3 FS on hda2, internal journal
ide-scsi is deprecated for cd burning! Use ide-cd and give dev=/dev/hdX as device
hda: selected mode 0x46

由以上知,只有一顆硬碟時,會叫 hda, 分成兩個分割區。若有第二顆會出現 hdb, 第三顆 hdc …依此類推

* 若 SATA , 那麼 hd 及 sd 皆可能
root@dns:~# dmesg |grep sd

hdc: LITE-ON DVD SOHD-16P9S, ATAPI CD/DVD-ROM drive
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB) ← 第一顆 sata 硬碟
SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB) ← 第二顆 sata 硬碟
hdc: ATAPI 48X DVD-ROM drive, 254kB Cache  ← 光碟機

由以上知,第一顆是 sda, 第二顆 sdb …依此類推

* 若 SCSI 直接檢查 sd 字串
root@dns:~# dmesg |grep sd

SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB) ← 第一顆 sata 硬碟
SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB) ← 第二顆 sata 硬碟

開始動手
安置硬碟 FDISK

* 使用 FDISK 初始化新的硬碟
root@dns# fdisk /dev/hdb

Command (m for help): x
Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit

1. 新增
Command (m for help): n
2. 選完分割區大小後, 寫入
Command (m for help): w
會顯示The partition table has been altered! 訊息
3. 離開 FDISK
Command (m for help): q

格式化並手動掛載

* 格式化 hdb1
root@dns:# mkfs.ext3 /dev/hdb1

* 將新硬碟掛在新增目錄
root@dns# mount -t ext3 /dev/hdb1 /home2

寫入/etc/fstab永久掛載

* 永久掛載
root@dns:~$ vi /etc/fstab

#

# filesystem mountpoint type options dump pass
/dev/sda2 / ext3 defaults,errors=remount-ro 0 1
/dev/sda1 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy vfat defaults,user,noauto,showexec,umask=022 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,user,noexec,noauto 0 0
none /sys sysfs defaults 0 0
none /dev/pts devpts defaults 0 0
/dev/hdb1 /home2 ext3 defaults,errors=remount-ro 0 0

* 依 /etc/fstab 最新的設定重新掛載:
root@dns#mount -a

* 觀察

1. root@dns# df
2. root@dns# fdisk -l

減少 Linux 上重複檔案的佔用空間

警告: 本文所說明之內容僅適合進階使用者應用。未經適當使用,可能會造成系統無法正常運作。

不知道有多少人計算過,其實在你的 Linux 檔案系統中,有不少重複的相同檔案。特別是圖檔、說明文件與修改說明。若是拿將檔案整併,應該可以省下些空間。

於是 Julian Andres Klode (chf) 參考 hardlink.py 的概念寫了一個 hardlink 工具,這個工具會幫你從指定的目錄中找出相同的檔案,以 Hard Link 的方式將多份檔案刪減成一份,如此便可以節省硬碟空間。白話一點說明就是刪掉多重檔案的儲存空間,在檔案系統的目錄中新增一筆連結資訊到同一份儲存位置。

我試著對我的 Debian Sid 上的 /usr 下達這個指令,共找到 11391 個檔案,省下大約 135 MiB 的空間。

由於 Hard Link 的本質特性,此指令只能用在同一個分割區下,建議不要對全系統下此指令。此外,若已經被 “hard link” 過得檔案分屬不同的軟體,未來若升級軟體時,可能會覆蓋掉共用的檔案而造成軟體無法運作,這點風險請自行承擔。建議使用在較少更新的 Debian Stable 版本。

為什麼硬碟只能有四個主分區

LinuxBBSIDEthreadBlog
   硬碟最多分為4個主分區,這是一個常識可是很少告訴為什麼這麼分,網上找了兩篇不錯的文章應該回答清楚了這個問題
1、PC行業標準中一個硬碟只能分四個分區.這樣的四個分區在不同的操作系統中被冠以不同的名稱他可能叫partition (主分區)或是slice ,但是無論他們怎麼叫,這些系統都支援這樣的四個分區,都可以識別分區的起始位置和大小等訊息.這裡我把這樣的分區用一個最常用的詞來命名:主分區(primary partition).為什麼一個硬碟只能分四個主分區呢?這是由個人電腦初期的設計架構決定的.一開始,PC被設計成這樣的啟動過程,開機時主板BIOS進行自檢,當一切OK後,就開始讀取硬碟的第一個扇區,一個扇區的大小是512位元組,這是電腦工業裡的標準,無論什麼硬碟,一個扇區的大小都是512位元組.BIOS把這512位元組的內容讀出來並執行.這512位元組被叫做MBR(master boot record)主引導記錄) .這512自己包括了硬碟最重要的訊息:分區表.由於空間只有區區512位元組,所以分區表的大小就有很大限制,他被設計成十分小但是又足夠描述硬碟的分區情況.內含分區的開始扇區,結束扇區,引導標誌,分區類型等等.每個分區訊息用16個位元組表示,四個分區就用掉了16X4=64個位元組,這64個位元組分佈在MBR的第467-510位元組,後面緊接著兩個位元組AA和55被稱為幻數(Magic Number),BOIS讀取MBR的時候總是檢查最後是不是有這兩個幻數,如果沒有就被認為是一個沒有被分區的硬碟.儘管分區表中明明有資料,也會報錯,告訴你系統不存在.所以,對硬碟加密的簡單辦法就是從MBR中察掉這兩個位元組.那麼這個硬碟掛到任何電腦上都會顯示為一個沒有分區的空白硬碟.但是只要把這兩個位元組重新寫上,資料又能讀出.當然,你得知道怎麼重新寫上.



2、主分區,也稱為主磁碟分區,和延伸分區、邏輯分區一樣,是一種分區類型。主分區中不能再劃分其他類型的分區,因此每個主分區都相當於一個邏輯磁碟(在這一點上主分區和邏輯分區很相似,但主分區是直接在硬碟上劃分的,邏輯分區則必須建立於延伸分區中)。

實際上在早期的硬碟分區中並沒有主分區、延伸分區和邏輯分區的概念,每個分區的類型都是現在所稱的主分區。由於硬碟僅僅為分區表保留了64個位元組的存儲空間,而每個分區的參數佔據16個位元組,故主引導扇區中總計只能存儲4個分區的資料。也就是說,一塊物理硬碟只能劃分為4個邏輯磁碟。在具體的應用中,4個邏輯磁碟往往不能滿足實際需求。為了建立更多的邏輯磁碟供操作系統使用,引入了延伸分區和邏輯分區,並把原來的分區類型稱為主分區。

為什麼硬碟只能最多有四個主分區

   本文為搜尋網上資料並加以總結,僅供參考:      MBR(Master Boot Recorder)主要開機扇區,放置硬碟的訊息。MBR 可以說是整個硬碟最重要的地方了,因為在 MBR 裡面記錄了兩個重要的東西,分別是:開機管理程式,與磁碟分區表 ( partition table )。所以我們所做的硬碟分區,也就是在修改partition table。

   由於這個 MBR 區塊的容量有限,所以,當初設計的時候,就只有設計成 4 個分區紀錄(這個說法不太準確,下文有詳細說明),這些分區記錄就被稱為 Primary ( 主分區 ) 及 Extended ( 延伸分區 ) ,也就是說,一顆硬碟最多可以有 4 個 Primary + Extended 的扇區,其中,Extended 只能有一個,因此,你如果要分區成四塊磁碟分區的話,那麼最多就是可以:

P + P + P + P

P + P + P + E

的情況來分區了。需要特別留意的是,如果上面的情況中, 3P +E 只有三個『可用』的磁碟,如果要四個都『可用』,就得分區成 4P 了!( 因為 Extended 不能直接被使用,還需要分區成 Logical 才行)

思考一:如果我要將我的大硬碟暫時分區成四個 partition ,同時,還有其它的空間可以讓我在未來的時候進行規劃,那麼該如何分區?

由剛剛的說明,我們可以知道, Primary + Extended 最多只能有四個 partition,而如果要超過 5 個 partition 的話,那麼就需要 Extended 的幫忙。因此,在這個例子中,我們千萬不能分區成四個 Primary 為什麼呢?假如您是一個 20 GB 的硬碟,而 4 個 primary 共用去了 15 GB ,您心想還有 5 GB 可以利用對吧?錯!剩下的 5 GB 完全不能使用,這是因為已經沒有多餘的 partition table 紀錄區可以記錄了,因此也就無法進行額外的分區,當然囉,空間也就被浪費掉了!因此,請千萬注意,如果您要分區超過 4 槽以上時,請記得一定要有 Extended 分區區,而且必須將所有剩下的空間都配置給 Extended ,然後再以 logical 的分區區來規劃 Extended 的空間。

思考二:我可不可以僅分區 1 個 Primary 與 1 個 Extended 呢?

當然可以!基本上, Logical 可以有 64 個,因此,你可以僅分區一個主分區,並且將所有其它的分區都給 Extended ,利用 Logical 分區來進行其它的 partition 規劃即可!

思考三:假如我的硬碟安裝在 IDE 1 的 Master ,並且我想要分區成 6 個可以使用的硬碟扇區,那麼每個磁碟在 Linux 底下的代號為何?

說明:

由於硬碟在 Primary + Extended 最多可以有四個,因此,在 Linux 底下,已經將 partition table 1 ~ 4 先留下來了,如果只用了 2 個 P + E 的話,那麼將會空出兩個 partition number 呦!再詳細的說明一下,假設我將四個 P + E 都用完了。其中Extended /dev/hda4內含三個邏輯分區。

實際可以使用的是 /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5, /dev/hda6, /dev/hda7 這六個 partition!至於 /dev/hda4 這個 Extended 扇區本身僅是用來規劃出讓 Logical 可以利用的磁碟空間而已!

那麼萬一我只想要分區 1 個 Primary 與 1 個 Extended 呢?

因為 1~4 號已經被預留下來了,所以第一個 Logical 的代號由 5 號開始計算起來,而後面在被規劃的,就以累加的模式增加磁碟代號囉!而其中 /dev/hda3, /dev/hda4 則是空的,被保留下來的代號。

這個問題,結合歷史來說會說得比較準確。為什麼最多只可以分四個主要分區,並不是單由操作系統所決定的。

第一,為什麼一個扇區只有512位元組,為什麼不是1024位元組呢?

首先,我想說一個扇區是多少位元組是可以自己(硬碟生產廠家)定義的,可以是1024位元組的。所以說,一個扇區是512位元組並不是理論值,而是習慣值。也就是一個扇區的大小為512位元組對於硬碟的生產廠家來說都是習慣的這樣定義了,誰也不想變更這種習慣。

第二,硬碟的第一扇區可以分成三個部分:第一部分MBR,需要佔用446位元組,第二部分DPT,需要佔用64位元組,這是因為一個分區表需要佔用16位元組,64/16=4,所以剛好能存放四個分區的表,這就是為什麼只能分四個分區。還有兩個位元組就用來存放結束標誌。這樣

446+64+2=512位元組。

對硬碟加密其實就是改寫最後兩個位元組的結束標誌。

試想如果當初硬碟廠家將一個扇區設定成1024位元組,還是只能分四個分區嗎?邏輯磁碟機也需要分區表,它存放在延伸分區的第一扇區,所以邏輯磁碟機也不是隨便想分多少就分多少的。

這些都是一些硬體的知識。

有很多的問題都是歷史遺留下來的,要想問個究竟需要對電腦的發展歷史有瞭解。前人所做的一切,不實用了的都被拋棄或改進了,拋棄了就不說了,改進的還是會受到歷史的影響。前端時間有個朋友問我為什麼intel和nvida要爭是CPU還是GPU重要,瞭解一下CPU的發展史和GPU的發展史很容易就能想到了。這樣就不說了。

mysql 的 sql 效能分析器主要用途是顯示 sql 執行的整個過程中各項資源的使用情況。分析器可以更好的展示出不良 SQL 的效能問題所在。
下面我們舉例介紹一下 MySQL SQL Profiler 的使用方法:

  • 首先,開啟 MySQL SQL Profiler

mysql> SELECT @@profiling;
+————-+
| @@profiling |
+————-+
| 0 |
+————-+
1 row in set (0.00 sec)
mysql> SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@profiling;
+————-+
| @@profiling |
+————-+
| 1 |
+————-+
1 row in set (0.00 sec)
預設情況下 profiling 的值為 0 表示 MySQL SQL Profiler 處於 OFF 狀態,開啟 SQL 效能分析器後 profiling 的值為 1.

  • 通過 sql 效能分析器,我們來對照一下 下列語句前後 2 次執行過程的差異,對我們瞭解 sql 的詳細執行過程是非常有說明的。

mysql> create table t_engines select * from t_engines1;
Query OK, 57344 rows affected (0.10 sec)
Records: 57344 Duplicates: 0 Warnings: 0
mysql> select count(*) from t_engines;
+———-+
| count(*) |
+———-+
| 57344 |
+———-+
1 row in set (0.00 sec)
mysql> select count(*) from t_engines;
+———-+
| count(*) |
+———-+
| 57344 |
+———-+
1 row in set (0.00 sec)
mysql> SHOW PROFILES;
+———-+————+————————————————-+
| Query_ID | Duration | Query |
+———-+————+————————————————-+
| 26 | 0.10213775 | create table t_engines select * from t_engines1 |
| 27 | 0.00032775 | select count(*) from t_engines |
| 28 | 0.00003850 | select count(*) from t_engines |
+———-+————+————————————————-+
15 rows in set (0.01 sec)
mysql> SHOW PROFILE FOR QUERY 27;
+——————————–+————+
| Status | Duration |
+——————————–+————+
| (initialization) | 0.00000425 |
| checking query cache for query | 0.00004050 |
| checking permissions | 0.00001050 |
| Opening tables | 0.00018250 |
| System lock | 0.00000450 |
| Table lock | 0.00001775 |
| init | 0.00001075 |
| optimizing | 0.00000550 |
| executing | 0.00002775 |
| end | 0.00000450 |
| query end | 0.00000325 |
| storing result in query cache | 0.00000400 |
| freeing items | 0.00000400 |
| closing tables | 0.00000500 |
| logging slow query | 0.00000300 |
+——————————–+————+
15 rows in set (0.00 sec)
mysql> SHOW PROFILE FOR QUERY 28;
+————————————-+————+
| Status | Duration |
+————————————-+————+
| (initialization) | 0.00000350 |
| checking query cache for query | 0.00000750 |
| checking privileges on cached query | 0.00000500 |
| checking permissions | 0.00000525 |
| sending cached result to client | 0.00001275 |
| logging slow query | 0.00000450 |
+————————————-+————+
6 rows in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =27 ORDER BY SEQ;
+———-+
| DURATION |
+———-+
| 0.000326 |
+———-+
1 row in set (0.00 sec)
mysql> SELECT sum( FORMAT(DURATION, 6)) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID =28 ORDER BY SEQ;
+———-+
| DURATION |
+———-+
| 0.000039 |
+———-+
1 row in set (0.00 sec)
mysql>
從上面的例子中我們可以清晰的看出 2 次執行 count 語句的差別, SHOW PROFILE FOR QUERY 27 展現的是第一次 count 統計的執行過程,包括了 Opening tables 、 Table lock 等操作 。而 SHOW PROFILE FOR QUERY 28 展示了第二次 count 統計的執行過程 , 第二次 count 直接從查詢快取中返回 count 統計結果,通過對照 2 次統計的總執行時間發現,快取讀的速度接近物理讀的 10 倍。通過使用 SQL 效能分析器可以說明我們對一些比較難以確定效能問題的 SQL 進行診斷,找出問題根源。

您想要在 Linux主機下 安裝 Apache2+MySQL5+PHP5 其方法如下:
—————————————————————-
(請先確認linux 主機更新表列設置網址是否正確?)

套件庫設定:
資料夾:/etc/apt
套件庫設定檔: /etc/apt/sources.list

———————————————–
1.執行更新:

apt-get update

apt-get updgrade
—————————————————————
2.安裝Apache2:
apt-get install apache2-mpm-prefork

apt-get install apache2
—————————————————————-
3.安裝mysql資料庫:

apt-get install mysql-server-5.0 mysql-common mysql-client
—————————————————————-
4.安裝php關聯元件,並整合mysql資料庫:

apt-get install php5-common php5-mysql php5-cgi php5-gd php5-mcrypt libapache2-mod-php5 php5-memcache php5-imagick php5-suhosin php5-xmlrpc

如果需要,可以如下安裝

apt-get install php5-common php-pear php5-curl php5-dev php5-gd php5-idn php5-imap php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xsl

—————————————————————-
備註:
如果要刪除某個包,可以用以下指令

apt-get remove

例如:刪除php-cgi

apt-get remove php-cgi
—————————————————————-
如果不知道有哪些安裝包,可以用如下指令:

apt-cache search

例如:

apt-cache search apache2
—————————————————————-
5.設定帳號、密碼與改善:

mysqladmin -u root password ''   //在引號中輸入密碼
—————————————————————-
登入MySQL資料庫:

mysql -u root -p

修改原始帳號(mysql)

mysql>use mysql;
mysql>update user set user="自己設定使用者名" where user="root"; (將mysql的root使用者名修改成centos,防止root的密碼被暴力破解)
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user=''; (刪除user使用者)
mysql>delete from user where password=''; (刪除user使用者)
mysql>delete from user where host=''; (刪除user使用者)
mysql>drop database test; (刪除預設的test資料庫)
mysql>flush privileges; (重整mysql的快取,讓以上設定立即生效)
mysql>quit;
—————————————————————-
修改MySQL的配置檔案在/etc/mysql/my.cnf

找到 #skip-innodb 去掉註釋

重新載入Mysql

/etc/init.d/mysql reload

或是重啟Mysql

/etc/init.d/mysql restart
—————————————————————-
6.設定php:

修改檔案:/etc/php5/apache2/php.ini

找到以下數值,修改為自己需要的數值

memory_limit
post_max_size
upload_max_filesize

關閉以下功能 Off

enable_dl
display_errors
—————————————————————-
7.Apache 改善及設定:
修改 /etc/apache2/apache2.conf檔案

Timeout 300

改為

Timeout 60

KeepAliveTimeout 15

改為:

KeepAliveTimeout 5

StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0

改為:

StartServers 3
MinSpareServers 5
MaxSpareServers 10
MaxClients 50
MaxRequestsPerChild 2000

找到 AddType application/x-gzip .gz .tgz 在其下加入如下內容

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
——————————————
儲存離開,並重啟 apache

/etc/init.d/apache2 reload

/etc/init.d/apache2 restart
——————————————
啟動 deflate模組(用於頁面壓縮),在SSH介面輸入:

a2enmod deflate
——————————————
讓apache2得程式加載新配置的模組

/etc/init.d/apache2 force-reload
——————————————
再修改 /etc/apache2/apache2.conf檔案,在最後加入

在檔案之後加入:

DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
——————————————
啟動mod rewrite(用於偽靜態連線位址),在SSH介面輸入:

a2enmod rewrite
——————————————
讓apache2得程式加載新配置的模組

/etc/init.d/apache2 force-reload
——————————————
再修改 /etc/apache2/apache2.conf檔案,在最後加入:
——————————————
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
——————————————
網上有人這麼設定的,不過很多時候,網站多了很不好控制,都已我沒有在apache2.conf加入這最後一段。
——————————————
重新載入apache

/etc/init.d/apache2 reload
——————————————
或重啟apache

/etc/init.d/apache2 restart
—————————————————————-
8.設定多功能變數名:

設定/etc/apache2/sites-available/default,將ServerAdmin改為你自己的信箱,並在之前加入一段,作為你的空間根目錄功能變數名:

ServerName xxx.com
——————————————
將/var/www/目錄全部修改為 /home/www/
——————————————
在SSH介面輸入:

chmod 755 -R /home/www     //設定網站根目錄權限

ls -lh //檢視資料夾屬主

cd /home/www/

chown -R www-data:www-data /home/www/
——————————————
做好這些後,儲存並離開 default。
——————————————
在/home/www/建立新資料夾「1」;然後在現用的目錄「/sites-available/」新增一個檔案,假設檔名為1,開啟檔案1,輸入以下內容:

<VirtualHost *>

ServerName xxx.com       //此處輸入功能變數名

ServerAdmin webmaster@admin.com

DocumentRoot "/home/www/1/"       //網站目錄

<Directory />                               //這段加入後,可直接支援.htaccess

Options FollowSymLinks

AllowOverride All

</Directory>

ErrorLog "/var/log/apache2/1-error.log"

CustomLog "/var/log/apache2/1-access.log" common

</VirtualHost>
——————————————
儲存該檔案,然後在SSH介面下輸入:

a2ensite 1
——————————————
這時,設定的網站功能變數名已經被綁定了,在/etc/apache2/sites-enabled/資料夾會有一個1的快捷連結。
重啟一下Apache後,就可以操作該網站了:
——————————————
/etc/init.d/apache2 restart
——————————————
現在就可以用瀏覽器登陸你的功能變數名了~

分開設定確實麻煩了點,但好處還是很大的,比如我要單獨維護網站1,只需要輸入以下指令:

a2dissite silent
——————————————
然後重啟一遍即可

/etc/init.d/apache2 restart

其他網站還是會標準運作,不會受到牽連~
—————————————————————-

Linux 系統管理篇(環境變量)

1. 顯示環境變量HOME
$ echo $HOME
/home/terry
2. 設定一個新的環境變量WELCOME
$ export WELCOME="Hello!"
$ echo $WELCOME
Hello!
3. 使用env指令顯示所有的環境變量
$ env
HOSTNAME=terry.mykms.org
PVM_RSH=/usr/bin/rsh
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
4. 使用set指令顯示所有本地定義的Shell變量
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=80
DIRSTACK=()
DISPLAY=:0.0
5. 使用unset指令來清除環境變量
set可以設定某個環境變量的值。清除環境變量的值用unset指令。如果未指定值,則該變量值將被設為NULL。示例如下:
$ export TEST="Test…" #增加一個環境變量TEST
$ env|grep TEST #此指令有輸入,證明環境變量TEST已經存在了
TEST=Test…
$ unset $TEST #刪除環境變量TEST
$ env|grep TEST #此指令沒有輸出,證明環境變量TEST已經存在了
6. 使用readonly指令設定唯讀變量
如果使用了readonly指令的話,變量就不可以被修改或清除了。示例如下:
$ export TEST="Test…" #增加一個環境變量TEST
$ readonly TEST #將環境變量TEST設為唯讀
$ unset TEST #會發現此變量不能被刪除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #會發現此也變量不能被修改
-bash: TEST: readonly variable
7. 用C程式來訪問和設定環境變量
對於C程式的使用者來說,可以使用下列三個函數來設定或訪問一個環境變量。
◆ getenv()訪問一個環境變量。輸入參數是需要訪問的變量名字,返回值是一個字串。如果所訪問的環境變量不存在,則會返回NULL。
◆ setenv()在程式裡面設定某個環境變量的函數。
◆ unsetenv()清除某個特定的環境變量的函數。
另外,還有一個指標變量environ,它指向的是包括所有的環境變量的一個清單。下面的程式可以列印出現用的運行環境裡面的所有環境變量:
#i nclude
extern char**environ;
int main ()
{
char**var;
for (var =environ;*var !=NULL;++var)
printf ("%s ",*var);
return 0;
}

Linux下的環境變量設定
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
pathmunge /usr/X11R6/bin after
unset pathmunge
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
JAVA_HOME="/opt/j2sdk1.4.2_01"
MYSQL_HOME="/var/mysql"
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin:/opt/apache-ant-1.5.4/bin
export JAVA_HOME CLASSPATH PATH
CVSROOT=/cvsroot;
export CVSROOT
LINUX系統環境變量
/etc/profile對整個系統有效.
確定你使用的是bash
修改~/.bash_profile
把你要設定的環境變量寫進去
例如
JAVA_HOME=/usr/local/jdk
export JAVA_HOME