Google +    Album
顯示具有 linux 標籤的文章。 顯示所有文章
顯示具有 linux 標籤的文章。 顯示所有文章

在Linux中設定上傳大小

其實這很簡單,
但是通常設定完後,
就很少會再去碰...
等到下次就忘記啦!!!

登入為root後,
把php.ini打開
vi /etc/php.ini

依功能取向找找以下這些玩意...
一般都是用upload_max_filesize、post_max_size...

upload_max_filesize <== 這個是最大檔案上傳大小
post_max_size <== 最大 Post 資料大小
max_execution_time <== 單一程式最高執行時間,
建議設定成 300 秒,若超過則會顯示錯誤
max_input_time <== 資料讀入時間,
建議設定成 300 秒,若超過則會顯示上傳失敗

service httpd restart重啟就生效囉!

= Linux的compiz =

實在是很不起眼的標題,
但這玩意效果卻炫到不行!
如果帶到starbucks那種地方秀個幾下,
保證變成眾人的聚光焦點!!

先來看看compiz的其中幾個效果吧!
將桌面變成立方體,同時擁有四個桌面!

像MAC OS的F9、F10、F11鍵效果,可快速找到要使用的視窗

移動視窗時,Q到不行的果凍視窗!

這東西其實是裝載在linux的視窗介面當中,
當初記得一開始接觸是Novell的suse,
而且實在有夠難裝!
不過現在卻簡化到一裝好OS,
就同時將這些3D桌面一併開啟了

其實筆者的電腦連獨立顯卡都沒有,
而且還是laptop,但裝起來後啥問題也沒有,
效果呈現上也不會lag,比起當初自己裝特效裝到快崩潰...
比較起來實在省事多了!

compiz目前支援以下OS...
# Gentoo Linux
* Kororaa
# Mandriva Linux
# SUSE Linux Enterprise Desktop
# OpenSUSE
# PLD Linux Distribution
# Ubuntu Linux

個人推薦Ubuntu Linux和Mandriva Linux,
算是安裝過程最簡單也最容易使用的Linux OS,
如果不想再用windows(何況是用盜版!)
何不試試看呢?

= Drupal的從無到有 =

事前準備:
當然是把linux灌進電腦囉,
在這裡是使用Fedora 5

1.先和舊主機比較看看裝了哪些rpm套件
view rpm
rpm -qa > aa.txt

2.在舊主機上下指令,看看到底已經裝了哪些套件
指令:
rpm -qa | grep php
已裝套件:
php-pear-1.4.9-1.2
php-gd-5.1.6-1.6
php-pdo-5.1.6-1.6
php-5.1.6-1.6
php-mysql-5.1.6-1.6
php-ldap-5.1.6-1.6

指令:
rpm -qa | grep httpd
已裝套件:
httpd-manual-2.2.2-1.3
system-config-httpd-1.4.1-1.fc5
httpd-2.2.2-1.3

指令:
rpm -qa | grep mysql
已裝套件:
libdbi-dbd-mysql-0.8.1a-1.2.1
mod_auth_mysql-3.0.0-3
php-mysql-5.1.6-1.6
mysql-connector-odbc-3.51.12-1.2.1
mysql-5.0.27-1.fc5
mysql-server-5.0.27-1.fc5

3.比較過後,在新主機上利用yum來更新吧!
指令:
yum install "套件名稱" -y
(-y 表示已下選項皆自動選擇yes)

4.來查看一下服務開了沒,
主要是LAMP這些玩意記得開啟,光更新是不會自己啟動的!
指令:
setup or ntsysv

5.看看port和service啟動的狀況,
如果沒啟動,記得順便在iptables加進去!
例如port 80

指令:
nmap localhost
and
vi /etc/sysconfig/iptables

6.下載Drupal(在這裡才看到主角)並裝載,
使用wget方式...
一般裝載在/var/www/html當中,
但還不要進入網站做網頁安裝

7.回到/var/www/html,將html屬性改為...
指令:
chown -R apache.apache html
(-R 連同子目錄屬性全部一起改變)

8.視狀況將files、theme塞回去。

特別說明mysql部分:
在什麼都沒有的狀況下,至少要先在mysql中新增一個DB,
指令:
mysqladmin -u root create oldxxx
mysqladmin -u root -p password '請填入密碼'

若網頁沒有正常顯示,而是變成新建網頁狀態。
那就還得到druapl當中的目錄/sites/default之settings.php這個檔案查看,

約第93行可以看到...
$db_url = 'mysqli://root:12345678@localhost/abcdef';

其中12345678為密碼,abcdef則為資料庫名稱,
可以在這裡設定完成,網頁應當就能正常顯示。
若其密碼有@這類符號,就會在此顯示成%40,以這類編碼方式來顯示區分。

或參考= 匯出及匯入資料庫的動作 =


完成,享用吧!

= 禁止root直接登入 =

1.於/etc/ssh資料夾底下
找到一個sshd_config檔案
並開啟它...
vi sshd_config

2.搜尋PermitRoot...
#PermitRootLogin no

如果是yes就改成no
並把前面的#消除

3.重新啟動ssh
service sshd restart

= drupal設定環境 =

目前drupal的運作環境...
為了怕忘記,
就紀錄一下吧
os:Fedora Core5

drupal版本:5.2

php:
php-pear-1.4.9-1.2
php-gd-5.1.6-1.6
php-pdo-5.1.6-1.6
php-5.1.6-1.6
php-mysql-5.1.6-1.6
php-ldap-5.1.6-1.6

mysql:
mysql-connector-odbc-3.51.12-1.2.1
mysql-5.0.27-1.fc5
mysql-server-5.0.27-1.fc5

= PHP的GD函式庫 =

最近安裝drupal,
但預設PHP不支援 GD 函式庫,囧rz...
為了避免以後忘記...
那就備忘一下吧,

1.裝好後,記得先setup來啟動yum,
照以下步驟來裝設...
yum install gd
yum update gd
yum install php-gd
yum update php-gd
或是懶人法
yum install *php*
(有關php的全部裝上去...)

2.之後再全部更新即可
yum update -y

3.完成。

= linux 網頁及資料庫每日備份 =

1.事前小動作

先在要存放的位置建立資料夾,
縱使備份,單單下指令似乎不會自動產生資料夾,
因此得先做這樣的動作,
首先在根目錄建立...
/wwwbackup/和/wwwbackup/wwwlog


2.對網頁資料夾做備份動作,檔名存為mysql_backup.sh

---------------------------以下為程式碼---------------------------
#!/bin/bash

BACKUPDIR=/wwwbackup/
(備份後存放位置)
LOGDIR=/wwwbackup/wwwlog
(log檔存放位置)

echo "[backup www have error] : " `date +%F` > $LOGDIR/html_backup_err.log

cd $BACKUPDIR
days=3
(備份的天數)
for ((i=$days-1 ; i>=1 ; i=i-1))
do
declare -i j=$i-1
mv html_$j.tar.bz2 html_$i.tar.bz2 2>> $LOGDIR/html_backup_err.log
done


cd /data/

tar jcf $BACKUPDIR/html_0.tar.bz2 moodle 2>> $LOGDIR/html_backup_err.log

---------------------------以上為程式碼---------------------------

3.對資料庫做備份動作,檔名存為mysql_backup.sh

---------------------------以下為程式碼---------------------------
#!/bin/bash

BACKUPDIR=/wwwbackup/(備份後存放位置)
LOGDIR=/wwwbackup/wwwlog(log檔存放位置)

echo "[mysql database backup error] : " `date +%F` > $LOGDIR/mysql_backup_err.log

cd $BACKUPDIR
days=3 (備份的天數)
for ((i=$days-1 ; i>=1 ; i=i-1))
do
declare -i j=$i-1
mv mysql_$j.sql.gz mysql_$i.sql.gz 2>> $LOGDIR/mysql_backup_err.log
done

cd $BACKUPDIR

mysqldump -u root -p "your password" > mysql_0.sql 2>> $LOGDIR/pgsql_backup_err.log(對資料庫下dump指令)

gzip mysql_0.sql 2>> $LOGDIR/mysql_backup_err.log(作壓縮資料庫的動作)
---------------------------以上為程式碼---------------------------

4.建立備份排程

以上皆完成後,把3、4寫好的文件分別存為html_backup.sh、mysql_backup.sh,
然後放到/opt/backup/bin/中,
並且用root權限登入後,下指令crontab -e,

---------------------------以下為程式碼---------------------------
30 01 * * * /opt/backup/bin/html_backup.sh(半夜一點半執行此指令)
30 03 * * * /opt/backup/bin/mysql_backup.sh(凌晨三點半執行此指令)
---------------------------以上為程式碼---------------------------

這樣應該就行了,半夜就會自動執行囉。

= 改變Linux檔案屬性 =

範例如下

-rwxrwxrwx 1 root root 2133 12月 1 2004 prelink
-rw-r--r--  1 root root 104 8月 13 2006 rpm
-rwxr-----  1 root root 121 8月 22 2005 slocate.cron
-rwxr-xr-x  1 root root 286 8月 14 2004 tmpwatch

以上的rwx,就是所謂的檔案屬性,
r (read contents in directory)讀取
w (modify contents of directory)寫入
x (access directory)執行

第一個rwx 代表 檔案擁有者之屬性

第二個rwx
代表 檔案所屬群組之屬性
第三個rwx
代表 其他人對此檔案之屬性

一般用數字表示
r:4、w:2、x:1

若是第一個的

-rwxrwxrwx 1 root root 2133 12月 1 2004 prelink
就是[4+2+1][4+2+1][4+2+1]=777

第二個
-rw-r--r--  1 root root 104 8月 13 2006 rpm
就是[4+2+0][4+0+0][4+0+0]=644

第三個
-rwxr-----  1 root root 121 8月 22 2005 slocate.cron
就是[4+2+1][4+0+0][0+0+0]=740

第四個
-rwxr-xr-x  1 root root 286 8月 14 2004 tmpwatch
就是[4+2+1][4+0+1][4+0+1]=755

知道這樣的道理後,
指令就只要這樣下

chmod 777 "檔案名稱"

這樣懂了吧...

= Moodle 將修改密碼選項隱藏 =

一般來說,
應該都是能改自己的密碼的,
但如果是使用LDAP或POP3來做認證,
那...
這就是多餘了,
而且事實上也不能修改...


因此,為了避免有同學或教師將此"修改密碼"當作可使用的,
不如把它給藏起來吧...

到/moodle/user中,找到view.php
並找到...

// Print other functions
echo '<div class="buttons"><table align="center"><tr>';

if ($currentuser and !isguest()) {
if ($internalpassword ) {
echo "<td nowrap=\"nowrap\"><form action=\"$internalpassword\" method=\"get\">";
echo "<input type=\"hidden\" name=\"id\" value=\"$course->id\" />";
echo "<input type=\"submit\" value=\"".get_string("changepassword")."\" />";
echo "</form></td>";
} else if ( strlen($CFG->{'auth_'.$user->auth.'_changepasswordurl'}) > 1 ) {
echo "<td nowrap=\"nowrap\"><form action=\"".$CFG->{'auth_'.$user->auth.'_changepasswordurl'}."\" method=\"get\">";
echo "<input type=\"submit\" value=\"".get_string("changepassword")."\" />";
echo "</form></td>";
}
}

除了// Print other functions以外,
全部註解起來,
這樣就行囉...

= 對付 Fedora core 3 or 4 的YUM =

Fedora Core 3 or 4 的 yum base 資料庫設定
先翻出/etc/yum.repos.d/

vi fedora.repo
(此處setup base主機)

baseurl=http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/$releasever/$basearch/os/
# mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever


vi fedora-updates.repo
(此處setup update主機)

baseurl=http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/updates/$releasever/$basearch/
# mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever

----------------------------------------

抓取RPM-GPG-KEY

FC3
rpm --import /usr/share/doc/fedora-release-3/RPM-GPG-KEY-fedora

FC4
rpm --import /usr/share/doc/fedora-release-4/RPM-GPG-KEY-fedora

= 對付 Fedora core 1 or 2 的YUM =

Fedoara core 1 or 2的yum方式...
當然要先翻出/etc/yum.conf

先說明一下...
1.$releasever 為變數,為Fedora core 的版本,例如:1 or 2
2.$basearch 為變數,CPU核心種類,例如:i386 或 i686
3.以下的"baseurl=http://",
在五個當中選擇任一連結即可,也可以先試試看是否能順利連上。
4.路徑當中的 /1/ 代表 core 1,如使用core 2,即為 /2/
改完後存檔即可,無須重新開機。

--------------------------------
base主機方面

[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=http://

http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/1/i386/os/
http://linux.nctu.edu.tw/ftp/dists/fedora/core/1/i386/os/
ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/1/i386/os/
ftp://linux.nctu.edu.tw/dists/fedora/core/1/i386/os/
ftp://linux.sinica.edu.tw/fedora/linux/core/1/i386/os/

--------------------------------
updates主機方面

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://

http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/updates/1/i386/
http://linux.nctu.edu.tw/ftp/dists/fedora/core/updates/1/i386/
ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/updates/1/i386/
ftp://linux.nctu.edu.tw/dists/fedora/core/updates/1/i386/
ftp://linux.sinica.edu.tw/fedora/linux/core/updates/1/i386/

好了,那就試試看吧!

= OpenSource CMS =



對OpenSource Cms的評價網站

何謂CMS?
內容管理系統
Content Management System,簡稱CMS),
組織和協助共同合作的內容的結果,是指用於管理及方便數字內容的系統。
(轉貼自維基百科-關於內容管理系統)

可作為架站前的參考依據
不過沒想到這麼多啊...
以下簡單紀錄一下自己用過的cms印象

portals-xoops
xoops雖然許多人覺得簡單方便,
是易用的入口網站,
但似乎在程序處理上不是很理想,
而且其實我覺得不太容易上手,
也有點混亂。

portals-drupal
身邊的人對drupal讚譽有加,
我也嘗試著使用,
果然相當不賴啊...
靠著他,我總算還能苟延殘喘過日子...

e-Learning-oodle
而一直在用的moodle分數倒是蠻高的,
同時也是我的工作,
不難用就是了,
內建的功能頗完善。

Forums-phpBB 
phpBB給我的感覺倒是不錯,
分數看來也不錯,
但實際上,我仍不是太熟悉,
畢竟論壇架起來簡單,
管理起來太難了。

Blogs-WordPress
WordPress實在算是很簡單又容易上手的部落格,
學校也常有學生拿這來做專題。

= 備份 Open Source CMS 要注意的幾個地方 =

其實就重點來說,
這些備份只是在重新架站時,
能夠以最快速度回復到垮站之前,
通常只是一些小東西...
但能節省很多時間!

1.yum.conf
位於etc底下,其實也不是很重要,
但如果每次update跑的很正常,
那大概沿用這個就好。
當然版本是最好完全一樣囉!

2.httpd.conf
位於/etc/httpd/conf
但如果你的網頁路徑是預設在var/www/html當中,
那可以不備份,沿用原來的也行,
不過如果放在其他地方,
還是備份吧!

3.crontab
一般電腦的排程,
例如定期更新或掃毒、備份之類的
老實說我不曉得去哪備份這,
通常是打crontab -e之後,
把裡面全部複製起來到純文字檔內,
這樣也不會太困難...

4.再來就是CMS的備份了,
如果所使用的CMS版本完全一樣,
那備份資料庫應該就可以了,
頂多輸出一份,
但如果CMS自己還有檔案上傳掛載點,
那當然也得備份一份囉。

如果其他還有想到的,就回來補充囉。

= 忘記sql密碼? =

因為不想使用RedHatEL4原先所附有的上網註冊,
於是把RedHatEL4的yum改成CentOS,
做update時,
會卡在Mozilla,只好用最白癡的方式,
yum update a*.....z*
(哈,就是用一個個字母升上去這樣。)
最後用Xwindows打開,
竟然完全認不出那是RedHatEL4,
已經完完全全變成CentOS....XD

另外原先的mysql-4.1.7-1.RHEL4.1
升成了mysql-4.1.20-1.RHEL4.1
但竟然連我的mysql密碼都給翻掉了....
好吧,只好在網路上尋找
結果還有分新舊版本...
我並不曉得新舊的分界線版本在哪
於是都PO囉~

新版的方式
1.先關閉mysql:

service mysqld stop

2.之後重開mysql,並加入指令:

/usr/bin/mysqld_safe --skip-grant-tables &

3.進入mySQL:
# mysql (這個也是,如果直接執行找不到程式,請打完整路徑)

4.use mysql

5.重新設定MySQL管理者密碼。
mysql > UPDATE user SET password=password('New Password') where user='root';
mysql > FLUSH PRIVILEGES;
mysql > killall -TERM mysqld_safe
mysql > exit

6.離開(先按;之後,再打quit)並重新啟動MySQL:
service mysqld start


舊版的方式
1.以root登入Linux。

2.結束mysql Process
# killall mysqld

3.啟動mysql後進入mysql指令模式並忽略grant-table
# mysqld -u root --skip-grant-tables & mysql

4.重新設定MySQL管理者密碼。
mysql > UPDATE user SET password=password('New Password') where user='root';
mysql > FLUSH PRIVILEGES;
mysql > exit

5.重新啟動MySQL:
# /etc/init.d/mysql restart

= Linux的各式壓縮 =

.tar
解壓縮:tar xvf FileName.tar
壓縮:tar cvf FileName.tar DirName
---------------------------------------------
.gz
解壓縮其一方式:gunzip FileName.gz
解壓縮其二方式:gzip -d FileName.gz
壓縮:gzip FileName.tar.gz 和 .tgz
解壓縮:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解壓縮其一方式:bzip2 -d FileName.bz2
解壓縮其二方式:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
.tar.bz2
解壓縮:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解壓縮其一方式:bzip2 -d FileName.bz
解壓縮其二方式:bunzip2 FileName.bz
壓縮:未知
.tar.bz
解壓縮:tar jxvf FileName.tar.bz
壓縮:未知
---------------------------------------------
.Z
解壓縮:uncompress FileName.Z
壓縮:compress FileName
.tar.Z
解壓縮:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.zip
解壓縮:unzip FileName.zip
壓縮:zip FileName.zip DirName
---------------------------------------------
.rar
解壓縮:rar x FileName.rar
壓縮:rar a FileName.rar DirName

rar請到:http://www.rarsoft.com/download.htm 下載!
解壓後請將rar_static拷貝到/usr/bin目錄(其他由$PATH環境變數指定的目錄也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar
---------------------------------------------
.lha
解壓縮:lha -e FileName.lha
壓縮:lha -a FileName.lha FileName

lha請到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下載!
>解壓後請將lha拷貝到/usr/bin目錄(其他由$PATH環境變數指定的目錄也可以):
[root@www2 tmp]# cp lha /usr/bin/
---------------------------------------------
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解壓縮:sEx x FileName.*
壓縮:sEx a FileName.* FileName

sEx只是調用相關程式,本身並無壓縮、解壓功能,請注意!
sEx請到: http://sourceforge.net/projects/sex下載!
解壓後請將sEx拷貝到/usr/bin目錄(其他由$PATH環境變數指定的目錄也可以):
[root@www2 tmp]# cp sEx /usr/bin/

= 將資料或網頁轉碼 =

從網頁或伺服器抓網頁下來
編輯完再放上去,字往往會無法辨認

建議裝設UltraEdit或其他可正確轉碼之編輯軟體

開啟UltraEdit
file >> conversions >> 找出....



此版本為 UltraEditR-32 Pro edit 10.20+

= 修改檔案上傳大小限制 =

位置:
/etc/php.ini

分別找出以下字串
post_max_size
upload_max_filesize
修改為
post_max_size = 100M
upload_max_filesize = 100M

apache php重新啟動
-------------------------
另外提一下moodle上傳大小

171版為例

管理者身分登入後找到管理選項

Security安全性 >> site policies網站政策 >>
Maximum uploaded file 上傳文件的最大尺寸 >>
102400000(byte,此為100MB)

= Linux網路校時 =

以root身份執行:
ntpdate time.stdtime.gov.tw

正常執行的結果如下
27 Feb 16:55:46 ntpdate[27795]: step time server 220.130.158.52 offset -48.524717 sec

------------

/usr/sbin目錄找出ntpdate,

同樣以root身份執行:
/usr/sbin/ntpdate -s time.stdtime.gov.tw

參數 s 代表將執行後的messages交由 syslog 來記錄,
記錄在 /var/log/messages檔案。

補充:ntpdate 程式的作用...
向 NTP Server 詢問時間,並設定 Local date and time.
是一個 client 的程式.適合在開機時放在 /etc/rc.local 檔中,
或是利用 cron 來每隔一段時間校正一次.
若是求得的誤差時間超過 0.5 秒,便執行 settimeofday,直接設定時間.
若差別超過 0.5 秒,則執行 adjtime 來修正系統 clock.

------------

若要每日進行時間校正,可以寫入 cron
# vi /etc/crontab加入
10 5 * * * root /usr/sbin/ntpdate time.stdtime.gov.tw ; /sbin/hwclock -w
之後每天 5:10 Linux 系統就會自動的進行網路校時

------------
寫入BIOS
/usr/sbin/ntpdate stdtime.sinica.edu.tw
clock -w

= Linux安裝完成之注意事項 =

1.安裝yum或apt以便升級,並列入自動排程(講解未完成)

2.sshd駭客防止,建議改port

 進入文字模式

 vi /etc/ssh/sshd_config
 (此設定其他部分亦可更改安全性,例如僅特定IP可開啟)

 找到...

 #Port 22
 改成
 Port "號碼"

 存檔後離開



 文字介面 進入setup畫面

 Firewall configuration=>
 customize=>
 other ports=>

 鍵入"號碼":"使用名稱"

 例如:10000:tcp

 按下ok後,離開即刻生效


3.檢查setup,是否有不必要port開啟

4.安裝防毒,並列入自動排程(講解未完成)

5.不允許root直接登入


 進入文字模式

 vi /etc/ssh/sshd_config
 (此設定其他部分亦可更改安全性,例如僅特定IP可開啟)

 找到...

 #PermitRootLogin yes
 改成
 PermitRootLogin no

 存檔後離開

= moodle資料庫內部份表格搬移方式 =

將moodle1.5.2升級至1.7以上
如欲將所有檔案目錄完美搬移
或多或少會有編碼及任何資料庫升級上的問題
當然如果夠好運就不會...

以下單純搬移使用者之資料庫方式

1.使用phpMyAdmin查看資料庫
找出以下六項表格

Powered By picasa

2.確認資料大小後
回到文字模式
以指令方式釋出所需要的表格資料庫
(非常不建議以phpMyAdmin釋出)

 1. mysql -u root -p

 2. show tables

 3. mysqldump -u root -p moodle mdl_user mdl_user_admins mdl_user_coursecreators mdl_user_preferences mdl_user_students mdl_user_teachers > mdl.sql

(將以上六項資料表格匯出成一資料庫)

 4. mysql -u root -p "所需資料庫名稱" < mdl.sql

(將之直接匯入所需資料庫,並請事先確認大小及同樣欄位,以免出錯)