內容 |
|
由於換回Tomcat 5.5.15後也有其他問題(例如OLAT跑不起來, javax.servlet.http.HttpSessionAttributeListener 的 attributeRemoved() 出現Session already invalidated), 故還是得繼續用新的Tomcat版本.
參考了大陸一位網友zhangxinzhou的文章
http://zhangxinzhou.blog.ccidnet.com/blog-htm-do-showone-uid-36421-type-blog-itemid-150874.html
把server.xml裡面Host的設定修改一下
例如原本的設定如下:
<Host name="www.ezmatch.tw"
appBase="webapps/www.ezmatch.tw"
unpackWARs="true" autoDeploy="true">
<Alias>ezmatch.tw</Alias>
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs/www.ezmatch.tw"
prefix="www.ezmatch.tw_access_log." suffix=".txt"
pattern="combined" resolveHosts="false"/>
<Context path="" docBase="" debug="0" reloadable="false" />
</Host>
修改為:
<Host name="www.ezmatch.tw"
appBase=""
unpackWARs="true" autoDeploy="true">
<Alias>ezmatch.tw</Alias>
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs/www.ezmatch.tw"
prefix="www.ezmatch.tw_access_log." suffix=".txt"
pattern="combined" resolveHosts="false"/>
<Context path="" docBase="webapps/www.ezmatch.tw" debug="0" reloadable="false" />
</Host>
這樣子就可以了.
|
 |
|
select * from jforum_users where user_id not in (select session_user_id from jforum_sessions) and user_actkey is not null and date_part('day',current_timestamp-user_regdate) > 90 order by user_id
|
 |
|
backup.sh可以修改第11行來自動備份所有的PostgreSQL資料庫(除了postgres, template0, template1外)
[code=bash;first-line:11]
DBNAME=( `psql -l -U postgres | awk '{print $1}' | sed -e "1,3d"|grep -v ":"|grep -v "("|grep -v "template"|grep -v "postgres"` )
[/code]
|
 |
|
今天在和Rafael討論後, 覺得現有的2.1.8 CVS經過數週來的測試已經符合釋出的標準, 決定正式開放供大家下載和安裝, 本版本新增並改善超過130多項的功能和特色(這只是有紀錄在 Jira中的數字), 除了函式庫更新, 錯誤修正, 程式碼重組這些沒紀錄的以外, 以下是這次改版的重大功能變動:
1. 使用Lucene作為搜尋引擎:以前的中文搜尋問題在此版已經解決.
2. 改用JQuery取代DWR作為Ajax函式庫
3. 版主可以線上編輯文章
4. 增加新的BB Code:包刮youtube, flash, rm, google 和 wmv
5. 系統管理者可以手動審核及啟用帳號
6. 標示被搬移的文章:在原來的版面上顯示一個提示
7. 搜尋這個版面:在每個版面新增主題按鈕的旁邊多了一個查詢表單, 可以僅搜尋這個版面的文章
8. 登入後重新導向至參照網頁:登入前看到哪一頁再去按登入, 登入後會回到剛那一頁
9. 文章編輯次數紀錄及顯示
10. 訂閱版面或主題之確認對話框
11. 管理日誌紀錄:紀錄版主每次對文章的異動原因
12. RSS顯示一小段文章內容
13. 程式碼語法高亮:正式將 SyntaxHighlighter納入支援
14. 簡體中文納入支援: 2.1.7被刪除的簡體中文在這個版本已經內建囉, 如果有不符合大陸地區語言習慣的地方, 請再告知
更多功能可以參考網站上的 Wiki說明
升級方式
2.1.7的使用者可以參考 這篇文章來升級到2.1.8
參考資訊:
http://www.jforum.net/posts/list/4076.page
|
 |
|
安裝方式很簡單,只要Internet有通就是直接用yum安裝
yum -y install postgresql postgresql-libs postgresql-server
沒有的話,就是把光碟片內的postgresql的三個rpm檔copy到同一個目錄下,然後下
rpm -Uvh postgresql-*.rpm
安裝完成後需先進行第一次啟動:
service postgresql start
沒問題的話,再把postgresql設定開機時啟動
chkconfig postgresql on
然後修改/var/lib/pgsql/data/pg_hba.conf的設定:
# "local" is for Unix domain socket connections only
#local all all ident sameuser
local all all trust
# IPv4 local connections:
#host all all 127.0.0.1/32 ident sameuser
host all all 127.0.0.1/32 md5
再通知postmaster我們變動了設定即可
su - postgres
pg_ctl reload
如果還要讓其他外部機器連進來的話,修改/var/lib/pgsql/data/postgresql.conf
PostgreSQL version 8.x
listen_addresses = '*'
PostgreSQL version 7.x
tcpip_socket = true
然後在/var/lib/pgsql/data/pg_hba.conf加上要連進來的主機的設定,例如讓某個class C網段的機器都可以連進來:
host all all 192.168.1.0/24 md5
再通知postmaster我們變動了設定
su - postgres
pg_ctl reload
最後, 如果有啟用Linux內建的防火牆iptables, 還要把5432:tcp加到開放的通訊埠設定去
setup->防火牆設定->執行工具->自訂->其他連接埠: 輸入5432:tcp 或postgres:tcp
|
 |
|
透過cvs下載來安裝後會產生一堆CVS目錄,一個目錄一個目錄進去砍非常花時間,而且下次更新時可能又產生了,可以透過下列指令一次給它一個痛快:
find -name CVS -exec rm -rf {} ';'
|
 |
|
如果要使用Oracle當作JForum的後端資料庫,我們需要先開設好一個資料庫使用者,例如jforum,然後給予開table的權限。接著便進行安裝步驟。
如果您遇到這樣的錯誤訊息時:
嘗試設定資料庫時發生錯誤. 請檢查帳號、密碼和主機等參數是否正確, 然後再試一次.
java.sql.SQLException: IO 異常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093888)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
請再回去修改組態,將資料庫名稱jforum改為Oracle的SID名稱,例如orcl,這樣就可以了。
|
 |
|
simonsu兄經驗可真是豐富, 有您的加入對這個專案可謂如虎添翼阿!
目前對系統架構這方面, 我比較鍾意Spring Framework和Hibernate, 資料庫的部分基本上目前我用的是PostgreSQL, 當然如果可以支援其他資料庫也是不錯的.
另外, 有關您建議的Tag lib和Eclipse plugin我覺得也是夠大膽的想法, 希望有機會實現啦!
最後, 有關專案的Road Map和分工部分, 目前我的想法是比照Open Source的方式, 由大家自行在Trac上面去編輯, 對於新需求可以開設新的Ticket來管理.
|
 |
|
歡迎您的加入, 這個專案未來發展有什麼計畫需看大家想做出什麼東西來, 目前我想過幾件事可以做的:
1. Internalization: 將畫面上的字串抽離出來, 改用properties file來存放, 再用ResourceBundle或JSTL的fmt:message取回, 初期預計支援英文, 簡體中文及繁體中文三種語言.
2. 修改顯示信件列表的介面, 例如加入Ajax的Framework, 讓介面更生動, 例如排序功能.
3. 增加郵件過濾功能, 常收到一些日期在未來2038年之類的垃圾信, 這種應該可以直接予以過濾刪除掉.
4. 加上通訊錄功能(需要資料庫支援)
5. 增加設定存檔功能(需要資料庫或Cookie支援), 將登入畫面上填的參數記錄下來, 不用每次都重新輸入.
6. 加強郵件解碼模組的正確性.
其他各位如果有想到的歡迎再補充.
|
 |
|
在網路上找到一篇 【教學】修改IIS的Banner提到用微軟出的URLScan可以完成。
首先是安裝URLScan 2.5,可由此下載
http://microsoft.com/downloads/details.aspx?FamilyId=23D18937-DD7E-4613-9928-7F94EF1C902A&displaylang=en
執行Setup.exe後會安裝在%windir%\system32\inetsrv\urlscan目錄下
接著修改:%windir%\system32\inetsrv\urlscan\urlscan.ini,將RemoveServerHeader設為1:
RemoveServerHeader=1 ; if 1, remove "Server" header from response
改完存檔後,執行%windir%\system32\inetsrv\urlscan\urlscan.exe
重新啟動IIS即可
參考資料
http://support.microsoft.com/default.aspx?scid=307608
http://www.pczone.com.tw/vbb3/archive/t-115211.html
|
 |
|
OLAT學習管理系統可以跟 Openfire整合, 提供遵循 Jabber XMPP協定的即時訊息功能, 安裝文件及內附的方法主要是針對MySQL的安裝方法, 我在PostgreSQL上試著安裝看看,發現也可以看得到那顆黃色星星,底下是安裝的步驟
cd ~/download/olat3
sed -i -e "s/instantMessaging.enable=false/instantMessaging.enable=true/" build.properties
sed -i -e "s/instantMessaging.server.name=jabber.andowson.com/instantMessaging.server.name=www.andowson.com/" build.properties
sed -i -e "s/instantMessaging.generateTestUsers=false/instantMessaging.generateTestUsers=ture/" build.properties
sed -i -e "s/instantMessaging.db.name=wildfire/instantMessaging.db.name=openfire/" build.properties
sed -i -e "s/instantMessaging.db.user=wildfire/instantMessaging.db.user=olat/" build.properties
sed -i -e "s/instantMessaging.db.pass=wildfire/instantMessaging.db.pass=olat/" build.properties
ant config-all
cp -rf ~/download/olat3/webapp/WEB-INF/olat_config.xml ~/www/olat/WEB-INF
cd ~/download
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_3_3.tar.gz -O openfire_3_3_3.tar.gz
tar zxvf openfire_3_3_3.tar.gz -C ~
sudo -u postgres psql -c "ALTER USER olat CREATEDB;" template1
sudo -u postgres psql -c "CREATE DATABASE openfire WITH ENCODING 'UNICODE';" -U olat template1
sudo -u postgres psql -c "ALTER USER olat NOCREATEDB;" template1
sudo -u postgres psql openfire olat -f ~/openfire/resources/database/openfire_postgresql.sql
cp ~/download/olat3/conf/openfire.xml ~/openfire/conf
sed -i -e "s/com.mysql.jdbc.Driver/org.postgresql.Driver/" ~/openfire/conf/openfire.xml
sed -i -e "s/mysql/postgresql/g" ~/openfire/conf/openfire.xml
cd ~/openfire/bin
./openfire start
接下來我們要先開放防火牆, 讓下面幾個通訊埠可以被存取到:
sudo setup
防火牆設定 -> 執行工具 -> 安全等級: (*) 啟用->自訂
其他連接埠=>9090:tcp 9091:tcp 5222:tcp 5269:tcp 7777:tcp 8080:tcp 8483:tcp 3478:tcp 3479:tcp
確定->確定
開啟瀏覽器連到 http://www.andowson.com:9090
用帳號admin密碼admin登入,修改以下幾項設定
Server Manager -> Server Setting -> Server Name : 127.0.0.1=>www.andowson.com
Registration & Login -> Inband Account Registration -> Disabled
Registration & Login -> Change Password -> Disabled
將~/openfire/bin/openfire中的啟動參數在-server之後加上-Xss256k
重新啟動一次openfire
./openfire stop
./openfire start
tail -5 ~/openfire/logs/info.log
如果可以看到下面的訊息時,就表示啟動完成,可以重新啟動OLAT了
2007.09.22 12:36:25 Publish-Subscribe domain: pubsub.www.andowson.com
2007.09.22 12:36:25 Started server (unencrypted) socket on port: 5269
2007.09.22 12:36:25 Started plain (unencrypted) socket on port: 5222
2007.09.22 12:36:36 Openfire 3.3.2 [Sep 22, 2007 12:36:36 PM]
2007.09.22 12:36:41 Admin console listening at http://www.andowson.com:9090
sudo /etc/init.d/tomcat restart
參考資料:
http://www.olat.org/docu/install/EnablingTheInstantMessagingComponent.html
|
 |
|
在原來的程式第16行下面加上這一行, 可以增加自動擋掉嘗試用ftp入侵的攻擊者:
grep failure messages | awk '{print $13}' | uniq | grep -v tty | cut -d"=" -f2 | sort | grep "\." | uniq | grep -v "192.168.1" >> /tmp/attack.log
|
 |
|
以下兩種方式都可以達成:
MS SQL Server DSNless connection
Driver={SQL Server};Server=servername;Database=dbname;Uid=username;Pwd=password;
MS SQL Server OLE DB connection
Provider=SQLOLEDB;Data Source=machineName;Initial Catalog=dbname;User ID=username;Password=password;
例如:資料庫伺服器的IP是192.168.1.68,資料庫是testdb,帳號是test,密碼是noOneKnows
MS SQL Server DSNless connection
Driver={SQL Server};Server=192.168.1.68;Database=testdb;Uid=test;Pwd=noOneKnows;
MS SQL Server OLE DB connection
Provider=SQLOLEDB;Data Source=192.168.1.68;Initial Catalog=testdb;User ID=test;Password=noOneKnows;
參考資料:
http://class2u.idv.tw/book/ultradev4/connection.htm
|
 |
|
在安裝一些webapp時通常需要root身分和資料庫管理者postgres身分來執行一些動作, 雖然是自己架站知道root的密碼, 可以先切換成root再切換成postgres,不過底下的這些指令似乎還是滿辛苦的:
su - root
su - postgres
psql olat olat -f /tmp/alter_5_1_0_to_5_2_0.sql
exit
exit
這時候sudo這個指令就滿好用的了,只要一行就搞定了:
sudo -u postgres psql olat olat -f /tmp/alter_5_1_0_to_5_2_0.sql
安裝sudo
yum install sudo
設定sudo也滿簡單的:
1.visudo (沒錯, 就是全部連在一起的指令, 不是vi sudo)
2.將底下這一行前面的#刪除
# %wheel ALL=(ALL) NOPASSWD: ALL
3.將自己的帳號加到wheel group去
usermod -a -G wheel andowson
參考資料:
http://linux.vbird.org/linux_basic/0410accountmanager.php#sudo
http://www.andowson.com/posts/list/35.page
|
 |
|
原本JForum的設計是依某個主題最後一篇文章是否有附件來決定要不要顯示附件圖示, 但是通常容易讓網友錯過有檔案可以下載的文章,我們可以透過修改SQL語法來修正, 由於我的網站是用PostgreSQL作為後端資料庫, 故我需要修改WEB-INF/config/database/postgresql/postgresql.sql:
TopicModel.selectAllByForumByLimit = SELECT t.*, p.user_id AS last_user_id, p.post_time, (SELECT SUM(p.attach) \
FROM jforum_posts p \
WHERE p.topic_id = t.topic_id \
AND p.need_moderate = 0) AS attach \
FROM jforum_topics t, jforum_posts p \
WHERE (t.forum_id = ? OR t.topic_moved_id = ?) \
AND p.post_id = t.topic_last_post_id \
AND p.need_moderate = 0 \
ORDER BY t.topic_type DESC, t.topic_last_post_id DESC \
OFFSET ? LIMIT ?
TopicModel.selectByUserByLimit = SELECT t.*, p.user_id AS last_user_id, p.post_time, (SELECT SUM(p.attach) \
FROM jforum_posts p \
WHERE p.topic_id = t.topic_id \
AND p.need_moderate = 0) AS attach \
FROM jforum_topics t, jforum_posts p \
WHERE p.post_id = t.topic_last_post_id \
AND t.user_id = ? \
AND p.need_moderate = 0 \
AND t.forum_id IN(:fids:) \
ORDER BY t.topic_last_post_id DESC \
OFFSET ? LIMIT ?
登入管理介面後清除主題的Cache即可
|
 |
|