星期一, 8月 24, 2009

Linux 主機改名稱和IP後 Apache無法啟動

如題,目前學校主機舊有的是163.23.80.180 www.cses.chc.edu.tw

新的主機名稱及ip是w3.cses.chc.edu.tw 163.23.80.178

但是現在178這台要取代180,也就180這台要除役了,但是178這台要將之改為180,名稱也要改為www.cses.chc.edu.tw,則除了DNS的正反解要重設外,178這台主機要改那些資料呢?

  1. /etc/host

  2. /etc/sysconfig/network

  3. /etc/sysconfig/network-script/ifcfg-eth0


當初改完相關的資料後,發現啟動APACHE時,一直無法啟動,看log檔的error_log,發現有一行unable to fine ipv4 address of "w3.cses.chc.edu.tw",後來才發現/etc/sysconfig/network這個檔沒有改到

電腦教室安裝軟體

電腦教室要安裝的軟體,列出一張清單作為下次安裝的依據:

先安裝win sp3

自由(免費)軟體:

  1. Openoffice3.1.0

  2. GIMP2.6.7

  3. INSCAPE0.46

  4. Adobe PDF Reader9

  5. Scratch1.4

  6. Firefox

  7. 7-ZIP

  8. PDF Creator

  9. 王漢宗字型

  10. Google Earth

  11. Google Sketchup

  12. 新酷音輸入法(再安裝補充檔)

  13. 電教協會測驗評分系統

  14. Winscp

  15. CCleaner


校內授權軟體:

  1. 非常好色6.0

  2. Office2003

  3. Photoimpact 10.0

  4. Live ABC線上測驗軟體

  5. 注音、英打快槍手

星期日, 8月 23, 2009

mysql如何開放遠端連線

情況:

主機A 有mysql資料庫 ,資料庫名稱為:第一資料庫,主機ip為192.168.1.1
主機B 有php程式,想要連到主機A的mysql server中的第一資料庫抓資料,IP為10.1.1.1

主機A的設定

1.編輯/etc/my.cnf
將skip-networking註解掉
(註:MandrivaLinux2009應該只要修改這一行,不同的發行套件,修改的地方可能不同)

2.進入mysql server
#mysql mysql -u root -p
mysql >GRANT ALL PRIVILEGES ON 第一資料庫.* TO 'john'@'10.1.1.%' IDENTIFIED BY 'john的密碼' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

註:上面'使用者名稱'@'10.1.1.%' 是指10.1.1.xxx均可以連線至主機A的mysql,若只想要指定某一個IP如10.1.1.2連線的話,就改為GRANT ALL PRIVILEGES ON 第一資料庫.* TO 'john'@'10.1.1.2' IDENTIFIED BY 'john的密碼' WITH GRANT OPTION;
上面的意思就是,准許10.1.1.xxx的資料庫使用者john,可以連線到192.168.1.1的第一資料庫拿資料

主機B:
php的mysql呼叫方式

<?php
$mysql_host="192.168.1.1:3306";
$mysql_user="john";//這個要和主機A的mysql設定一致
$mysql_pass="john的密碼"//這個要和主機A的mysql設定一致
$mysql_DB="第一資料庫";
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pass);

?>

這樣主機B的PHP想要連接主機A的MYSQL第一資料庫,就可以連線了!

星期五, 8月 21, 2009

彰縣版ACFS MandrivaLinux2009.1安裝sfs3 學務系統記要

彰縣版acfs MandrivalLinux2009.1安裝後,要轉移舊的sfs到這台機器,有幾點要注意:

1.先執行/bin/updaterpm.sh,再執行urpmi php-iconv php-zip
2.修正/etc/php.ini 將
magic_quotes_gpc=Off
改為
magic_quotes_gpc=On

3.停止資料庫服務和網頁服務
/etc/init.d/mysqld stop
/etc/init.d/httpd stop

4.將原有/home/webadmin/html/下的sfs3資料夾刪除,並下載新版的sfs_stable並解壓縮
cd /home/webadmin/html/
rm -rf sfs3
wget
http://sfscvs.tcc.edu.tw/sfs_stable.tar.gz
tar zxvf sfs_stable.tar.gz
mv sfs3_stable  /home/webadmin/html/sfs3


5.將原有備份下來的data資料夾,置於/home/webadmin/html/sfs3/,並且變更權限
chown apache.apache -R /home/webadmin/html/sfs3/data  

6.修改/home/webadmin/html/sfs3/include/config.dist.php 設定檔
cd  /home/webadmin/html/sfs3/include/
cp config.dist.php config.php


/**********************************
 系統設定
***********************************/
//程式根目錄 PATH
$SFS_PATH = "/home/webadmin/html/sfs3";

//學務管理首頁程式 URL (設定時,保留最後的 "/" )
$SFS_PATH_HTML =" /sfs3/ ";

//學校首頁 URL
$HOME_URL ="localhost";

/**********************************
  MYSQL 連接設定
***********************************/
// mysql 主機
$mysql_host ="localhost";

// mysql 使用者
$mysql_user ="root";

// mysql 密碼
$mysql_pass ="";//預設為superuser

// 資料庫名稱
$mysql_db   ="sfs3";
/**********************************
  上載檔案設定
***********************************/
//上載檔案放置位置,上載目錄權限需設為 777
$UPLOAD_PATH = "/home/webadmin/html/sfs3/data/";

//別名 (alias)  apache 在設定檔 httpd.conf 中加入  WIN32 在IIS管理員中設定
$UPLOAD_URL = "/sfs3/data/";




*************************************

7.資料庫的轉移

依據彰化縣自由軟體交流網上http://163.23.89.100/free/viewthread.php?tid=537&extra=page%3D1需注意

(1)備註清除問題
舊版的舊版學藉系統務必執行備註清除工作
否則匯入新版時資料庫將出現資料遺失的問題

清除方式:
由網頁登入舊的學籍系統找到 [問題工具箱/備註清除]
並執行[備註清除動作],之後資料庫的檔案才備份下來放到新系統去。

原本學校舊的sfs3是安裝在Centos5.2上,先試看看直接將整個sfs3資料庫tar下來,再丟到新的機器上的/var/lib/mysql,然後執行
mysqlcheck -uroot -p密碼 -r sfs3
發現會出現一些incorrect key file for table..的錯誤訊息,所以只好再回到舊機器上執行
mysqldump -uroot -p密碼 --default-character-set=latin1 sfs3 > sfs3_db_backup.sql

到新的系統執行資料庫導入(註:mysqld服務要啟動)
[建立空白資料庫]
mysqladmin -uroot -p create  sfs3
[將舊資料導入空白資料庫]
mysql -uroot  -p   sfs3 < sfs3_db_backup.sql
再check一下資料庫
mysqlcheck -u root -p  -r sfs3
如果都顯示Ok,就表示一切沒問題

8.到新的學務系統,看一下有模組路徑對不對,不對的話到【系統管理】->【模組權限管理】,開一個模組,再儲存,以修正模組路徑

9.到【系統管理】->【問題工具箱】->【學籍修正】看是否可以執行,還是出現
Smarty error: unable to read resource: "/home/webadmin/html/sfs3/es/..../templates/address.htm"

程式目前執行位置:/home/webadmin/html/sfs3/include/libs/Smarty.class.php 的第 1092

若是出現這個訊息,就要注意兩個地方

(1)/home/webadmin/html/sfs3/data/templates_c 是否可以寫入
(2)/home/webadmin/html/sfs3/include/config.php的路徑設定,是否和httpd.conf一致,上面我們的網頁路徑設定為/home/webadmin/html/sfs3,但是2009.1這一版,的路徑預設為/var/www/html ,所以導致以上問題的產生,因此再修改/etc/httpd/conf/httpd.conf
大約第425行
,將DocumentRoot "/var/www/html" 改為
DocumentRoot "/home/webadmin/html" ,儲存後,重新啟動apache,
發現好像還是一樣的情形,那就再看一下httpd.conf 的最後一行,是否有
Include conf/vhosts.d/*.conf,若有,那表示這個設定檔有設Virtual Host,有兩個辦法
(a)將之註解
(b)到/etc/httpd/conf/vhosts.d/
修改00_default_vhosts.conf
在46行的地方,看是否有
<Virtual Host *:80>
ServerName www.sinsen.com.tw
DocumentRoot  /var/www/html    //此行改為DocumentRoot /home/webadmin/html
</VirtualHost>

修改完後,再重新啟動apache,應該就不會出現這個錯誤訊息!

******************************************************

註:

修改mysql的root 密碼

#mysql mysql -u root -p
#Enter password: //這邊輸入原來mysql root的密碼
mysql>set password for 'root'@'localhost' = password('新的密碼');
mysql>flush privileges;

增加一個新的使用者以便於管理sfs3資料庫
mysql>GRANT ALL ON sfs3.* TO '新的使用者名稱'@'localhost' IDENTIFIED BY '新的使用者密碼' WITH GRANT OPTION;
mysql>flush privileges;
註:上面一定要有localhost ,不能只有新的使用者名稱,不然無法連線mysql

VirtualBox架設虛擬主機的網路設定

想要用VirtualBox架設一個虛擬主機,可是安裝好Linux後呢?想要直接用pietty連線到這個主機,或是希望這個主機能接受外界的連線,卻發現無法連線,這時要更改三個地方:

(1)VirualBox的網路設定(如圖所示)

visualbox_1

(2)到控制台->網路連線,將【區域網路】和【VirtualBox Host-Only Network】(或是VirtualBox 主端介面)一起選起來,再按滑鼠右鍵->橋接器連接(如下圖所示)

virtualbox_2

然後,系統會提示你要安裝必要的driver(如下圖所示),就按【繼續安裝】吧

virtualbox_3

(3)將VirtualBox安裝完的映像檔開機後,修改網路設定和你要連線的網路相同的網段,或是實體可以連線的IP,就可以連線囉!

註:若還是無法連線,就要看一下橋接連線的ip區段是否和你的server設定的ip區段相同,若沒有那很有可能無法連線到server,這時就要更改VirtualBox的【檔案】->【偏好設定】->【網路】,編輯【VirtualBox Host-Only Network】的設定值,DHCP Server中的Enable Server勾選要【取消】(如下圖),Adapter的ip設定和映像檔的server同一區段,例如我的映像檔中的ip是設192.168.1.20/255.255.0.0 gateway:192.168.1.1,而Adapter 的設定也一樣,但是實際在橋接器連線後,所收到ip是192.168.1.16(這個ip)應該是由我外部dhcp所配發的,但是外部的192.168.1.15這台機器,就可以連到192.168.1.20這部虛擬伺服器,因此我的判斷,橋接器的ip只要不是VirtualBox的dhcp server配發的,應該就沒問題了!

virtualbox_5