安裝apache服務(wù)器指南http://www.knowsky.com/2989.html
安裝apache服務(wù)器出現(xiàn)的問(wèn)題
winxp 下 apache2 安裝 問(wèn)題及解決
安裝apache 2 出現(xiàn)的問(wèn)題:
“(OS 10048)通常每個(gè)套接字地址 (協(xié)議/網(wǎng)絡(luò)地址/端口) 只允許使用一次:
make_sock: could not bind to address 0.0.0.0:80...”
一般是IIS或其他程序占用了80端口引起的
分析:
netstat -a
查看相應(yīng)端口,是否有程序占用
netstat -ab
查看具體占用程序
兩種解決方法:
1、打開(kāi) 控制面板->服務(wù) 找到 IIS admin 等相應(yīng)服務(wù) 關(guān)閉并禁用
2、如果不想關(guān)閉IIS服務(wù) 可將apache使用的端口改成其它端口
將apache2/conf/httpd.conf 中的
Listen 80 改為 Listen (你要使用的端口) 如 Listen 8080
不過(guò)這時(shí)在你訪問(wèn)你的apache 下的Web服務(wù)時(shí) 在域名后要加上端口號(hào)
如:
http://localhost:8080
然后用CMD進(jìn)入命令行模式 進(jìn)入你安裝apache的目錄 /apache2/bin
輸入
apache -k install
apache -k start
cgwin的安裝http://anying.spaces.live.com/Blog/cns!1pBetjxyWRhAf0VYS0IjiD_g!711.entry
連接
http://twiki.org/cgi-bin/view/TWiki/WindowsInstallCookbookForTWiki04x01,for window 的安裝
設(shè)置LocalSite.cfg
# Local site settings for TWiki. This file is managed by the 'configure'
# CGI script, though you can also make (careful!) manual changes with a
# text editor.
$TWiki::cfg{DefaultUrlHost} = 'http://localhost:8060';
$TWiki::cfg{ScriptUrlPath} = '/twiki/bin';
$TWiki::cfg{PubUrlPath} = '/twiki/pub';
$TWiki::cfg{PubDir} = 'c:/PROGRA~1/TWiki/twiki/pub';
$TWiki::cfg{TemplateDir} = 'c:/PROGRA~1/TWiki/twiki/templates';
$TWiki::cfg{DataDir} = 'c:/PROGRA~1/TWiki/twiki/data';
$TWiki::cfg{LocalesDir} = 'c:/PROGRA~1/TWiki/twiki/locale';
$TWiki::cfg{WorkingDir} = 'c:/PROGRA~1/TWiki/twiki/working';
$TWiki::cfg{ScriptSuffix} = '';
$TWiki::cfg{Password} = 'OmNauFZ7U.p3Y';
$TWiki::cfg{UseClientSessions} = 1;
$TWiki::cfg{Sessions}{ExpireAfter} = 21600;
$TWiki::cfg{Sessions}{ExpireCookiesAfter} = 0;
$TWiki::cfg{Sessions}{IDsInURLs} = 0;
$TWiki::cfg{Sessions}{UseIPMatching} = 1;
$TWiki::cfg{Sessions}{MapIP2SID} = 0;
$TWiki::cfg{LoginManager} = 'TWiki::LoginManager::TemplateLogin';
$TWiki::cfg{LoginNameFilterIn} = '^[^\\s\\*?~^\\$@%`"\'&;|<>\\x00-\\x1f]+$';
$TWiki::cfg{DefaultUserLogin} = 'guest';
$TWiki::cfg{DefaultUserWikiName} = 'TWikiGuest';
$TWiki::cfg{AdminUserWikiName} = 'TWikiAdminGroup';
$TWiki::cfg{AdminUserLogin} = 'admin';
$TWiki::cfg{SuperAdminGroup} = 'TWikiAdminGroup';
$TWiki::cfg{UsersTopicName} = 'TWikiUsers';
$TWiki::cfg{AuthScripts} = 'attach,edit,manage,rename,save,upload,viewauth,rdiffauth';
$TWiki::cfg{AuthRealm} = 'Enter your TWiki.LoginName. (Typically First name and last name, no space, no dots, capitalized, e.g. !JohnSmith, unless you chose otherwise). Visit TWiki.TWikiRegistration if you do not have one.';
$TWiki::cfg{UserMappingManager} = 'TWiki::Users::TWikiUserMapping';
$TWiki::cfg{Register}{EnableNewUserRegistration} = 1;
$TWiki::cfg{Register}{HidePasswd} = 1;
$TWiki::cfg{Register}{NeedVerification} = 1;
$TWiki::cfg{PasswordManager} = 'TWiki::Users::HtPasswdUser';
$TWiki::cfg{MinPasswordLength} = 1;
$TWiki::cfg{Htpasswd}{FileName} = 'c:\\PROGRA~1\\TWiki\\twiki\\data\\.htpasswd.txt';
$TWiki::cfg{Htpasswd}{Encoding} = 'plain';
$TWiki::cfg{SafeEnvPath} = '';
$TWiki::cfg{OS} = 'WINDOWS';
$TWiki::cfg{DetailedOS} = 'MSWin32';
$TWiki::cfg{DenyDotDotInclude} = 1;
$TWiki::cfg{AllowInlineScript} = 1;
$TWiki::cfg{UploadFilter} = '^(\\.htaccess|.*\\.(?i)(?:php[0-9s]?(\\..*)?|[sp]htm[l]?(\\..*)?|pl|py|cgi))$';
$TWiki::cfg{NameFilter} = '[\\s\\*?^\\$@%`"\'&;|<>\\x00-\\x1f]';
$TWiki::cfg{AccessibleENV} = '^(HTTP_\\w+|REMOTE_\\w+|SERVER_\\w+|REQUEST_\\w+|MOD_PERL)$';
$TWiki::cfg{AntiSpam}{EmailPadding} = '';
$TWiki::cfg{AntiSpam}{HideUserDetails} = 1;
$TWiki::cfg{AntiSpam}{RobotsAreWelcome} = 1;
$TWiki::cfg{Log}{view} = 1;
$TWiki::cfg{Log}{search} = 1;
$TWiki::cfg{Log}{changes} = 1;
$TWiki::cfg{Log}{rdiff} = 1;
$TWiki::cfg{Log}{edit} = 1;
$TWiki::cfg{Log}{save} = 1;
$TWiki::cfg{Log}{upload} = 1;
$TWiki::cfg{Log}{attach} = 1;
$TWiki::cfg{Log}{rename} = 1;
$TWiki::cfg{Log}{register} = 1;
$TWiki::cfg{ConfigurationLogName} = 'c:/PROGRA~1/TWiki/twiki/data/configurationlog.txt';
$TWiki::cfg{DebugFileName} = 'c:/PROGRA~1/TWiki/twiki/data/debug.txt';
$TWiki::cfg{WarningFileName} = 'c:/PROGRA~1/TWiki/twiki/data/warn%DATE%.txt';
$TWiki::cfg{LogFileName} = 'c:/PROGRA~1/TWiki/twiki/data/log%DATE%.txt';
$TWiki::cfg{Languages}{cs}{Enabled} = 1;
$TWiki::cfg{Languages}{da}{Enabled} = 1;
$TWiki::cfg{Languages}{de}{Enabled} = 1;
$TWiki::cfg{Languages}{es}{Enabled} = 1;
$TWiki::cfg{Languages}{fr}{Enabled} = 1;
$TWiki::cfg{Languages}{it}{Enabled} = 1;
$TWiki::cfg{Languages}{nl}{Enabled} = 1;
$TWiki::cfg{Languages}{pl}{Enabled} = 1;
$TWiki::cfg{Languages}{pt}{Enabled} = 1;
$TWiki::cfg{Languages}{ru}{Enabled} = 1;
$TWiki::cfg{Languages}{sv}{Enabled} = 1;
$TWiki::cfg{Languages}{'zh-cn'}{Enabled} = 1;
$TWiki::cfg{Languages}{'zh-tw'}{Enabled} = 1;
$TWiki::cfg{DisplayTimeValues} = 'servertime';
$TWiki::cfg{DefaultDateFormat} = '$day $month $year';
$TWiki::cfg{Site}{Locale} = 'zh_CN.UTF-8';
$TWiki::cfg{Site}{LocaleRegexes} = 1;
$TWiki::cfg{UpperNational} = '';
$TWiki::cfg{LowerNational} = '';
$TWiki::cfg{PluralToSingular} = 1;
$TWiki::cfg{StoreImpl} = 'RcsLite';
$TWiki::cfg{RCS}{ExtOption} = '-x,v';
$TWiki::cfg{RCS}{dirPermission} = 493;
$TWiki::cfg{RCS}{filePermission} = 420;
$TWiki::cfg{Store}{RememberChangesFor} = 2678400;
$TWiki::cfg{RCS}{asciiFileSuffixes} = '\\.(txt|html|xml|pl)$';
$TWiki::cfg{RCS}{initBinaryCmd} = '/usr/bin/rcs -i -t-none -kb %FILENAME|F%';
$TWiki::cfg{RCS}{initTextCmd} = '/usr/bin/rcs -i -t-none -ko %FILENAME|F%';
$TWiki::cfg{RCS}{tmpBinaryCmd} = '/usr/bin/rcs -kb %FILENAME|F%';
$TWiki::cfg{RCS}{ciCmd} = '/usr/bin/ci -m%COMMENT|U% -t-none -w%USERNAME|S% -u %FILENAME|F%';
$TWiki::cfg{RCS}{ciDateCmd} = '/usr/bin/ci -m%COMMENT|U% -t-none -d%DATE|D% -u -w%USERNAME|S% %FILENAME|F%';
$TWiki::cfg{RCS}{coCmd} = '/usr/bin/co -p%REVISION|N% -ko %FILENAME|F%';
$TWiki::cfg{RCS}{histCmd} = '/usr/bin/rlog -h %FILENAME|F%';
$TWiki::cfg{RCS}{infoCmd} = '/usr/bin/rlog -r%REVISION|N% %FILENAME|F%';
$TWiki::cfg{RCS}{rlogDateCmd} = '/usr/bin/rlog -d%DATE|D% %FILENAME|F%';
$TWiki::cfg{RCS}{diffCmd} = '/usr/bin/rcsdiff -q -w -B -r%REVISION1|N% -r%REVISION2|N% -ko --unified=%CONTEXT|N% %FILENAME|F%';
$TWiki::cfg{RCS}{lockCmd} = '/usr/bin/rcs -l %FILENAME|F%';
$TWiki::cfg{RCS}{unlockCmd} = '/usr/bin/rcs -u %FILENAME|F%';
$TWiki::cfg{RCS}{breaklockCmd} = '/usr/bin/rcs -u -M %FILENAME|F%';
$TWiki::cfg{RCS}{delRevCmd} = '/usr/bin/rcs -o%REVISION|N% %FILENAME|F%';
$TWiki::cfg{RCS}{SearchAlgorithm} = 'TWiki::Store::SearchAlgorithms::Forking';
$TWiki::cfg{RCS}{EgrepCmd} = 'c:/PROGRA~1/GnuWin32/bin/grep -E %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%';
$TWiki::cfg{RCS}{FgrepCmd} = 'c:/PROGRA~1/GnuWin32/bin/grep -F %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%';
$TWiki::cfg{EnableHierarchicalWebs} = 0;
$TWiki::cfg{SystemWebName} = 'TWiki';
$TWiki::cfg{TrashWebName} = 'Trash';
$TWiki::cfg{UsersWebName} = 'Main';
$TWiki::cfg{WebMasterEmail} = 'zhanghui026@gmail.com';
$TWiki::cfg{WebMasterName} = 'TWiki Administrator';
$TWiki::cfg{MailProgram} = '';
$TWiki::cfg{SMTP}{MAILHOST} = 'smtp.sina.com.cn';
$TWiki::cfg{SMTP}{SENDERHOST} = '';
$TWiki::cfg{SMTP}{Username} = '';
$TWiki::cfg{SMTP}{Password} = '';
$TWiki::cfg{RemoveImgInMailnotify} = 1;
$TWiki::cfg{NotifyTopicName} = 'WebNotify';
$TWiki::cfg{SMTP}{Debug} = 0;
$TWiki::cfg{PROXY}{HOST} = '';
$TWiki::cfg{PROXY}{PORT} = '';
$TWiki::cfg{Stats}{TopViews} = 10;
$TWiki::cfg{Stats}{TopContrib} = 10;
$TWiki::cfg{Stats}{TopicName} = 'WebStatistics';
$TWiki::cfg{TemplatePath} = 'c:/PROGRA~1/TWiki/twiki/templates/$web/$name.$skin.tmpl, c:/PROGRA~1/TWiki/twiki/templates/$name.$skin.tmpl, c:/PROGRA~1/TWiki/twiki/templates/$web/$name.tmpl, c:/PROGRA~1/TWiki/twiki/templates/$name.tmpl, $web.$skinSkin$nameTemplate, TWiki.$skinSkin$nameTemplate, $web.$nameTemplate, TWiki.$nameTemplate';
$TWiki::cfg{LinkProtocolPattern} = '(file|ftp|gopher|https|http|irc|mailto|news|nntp|telnet)';
$TWiki::cfg{SiteWebTopicName} = '';
$TWiki::cfg{SitePrefsTopicName} = 'TWikiPreferences';
$TWiki::cfg{LocalSitePreferences} = 'Main.TWikiPreferences';
$TWiki::cfg{HomeTopicName} = 'WebHome';
$TWiki::cfg{WebPrefsTopicName} = 'WebPreferences';
$TWiki::cfg{NumberOfRevisions} = 4;
$TWiki::cfg{ReplaceIfEditedAgainWithin} = 3600;
$TWiki::cfg{LeaseLength} = 3600;
$TWiki::cfg{LeaseLengthLessForceful} = 3600;
$TWiki::cfg{MimeTypesFileName} = 'c:/PROGRA~1/TWiki/twiki/data/mime.types';
$TWiki::cfg{Plugins}{CommentPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{EditTablePlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{InterwikiPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{PreferencesPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{SlideShowPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{SmiliesPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{SpreadSheetPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{TablePlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{TwistyPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{TinyMCEPlugin}{Enabled} = 1;
$TWiki::cfg{Plugins}{WysiwygPlugin}{Enabled} = 0;
$TWiki::cfg{PluginsOrder} = 'SpreadSheetPlugin';
$TWiki::cfg{MailerContrib}{EmailFilterIn} = '';
$TWiki::cfg{Languages}{bg}{Enabled} = 0;
$TWiki::cfg{Languages}{jp}{Enabled} = 0;
$TWiki::cfg{Site}{CharSet} = 'UTF-8';
$TWiki::cfg{Site}{Lang} = 'zh';
$TWiki::cfg{Site}{FullLang} = 'zh-cn';
$TWiki::cfg{PermittedRedirectHostUrls} = 'http://localhost';
$TWiki::cfg{EnableEmail} = 1;
$TWiki::cfg{UserInterfaceInternationalisation} = 1;
$TWiki::cfg{UseLocale} = 1;
$TWiki::cfg{RCS}{QueryAlgorithm} = 'TWiki::Store::QueryAlgorithms::BruteForce';
$TWiki::cfg{ExtensionsRepositories} = 'TWiki.org=(http://twiki.org/cgi-bin/view/Plugins/,http://twiki.org/p/pub/Plugins/)';
$TWiki::cfg{Register}{AllowLoginName} = 1;
1;
posted @
2008-04-16 22:45 如果有一天de 閱讀(3296) |
評(píng)論 (0) |
編輯 收藏
摘要: My Oracle Cook Book-來(lái)自oralce菜鳥的學(xué)習(xí)筆記
準(zhǔn)備
用到的是oracle自帶的用戶和表
用戶為scott/tiger
步驟是:連接數(shù)據(jù)庫(kù)
閱讀全文
posted @
2008-03-28 09:26 如果有一天de 閱讀(574) |
評(píng)論 (0) |
編輯 收藏
摘要: Try not to take this personally, but Tracy McGrady hates you.
Sunday, March 09, 2008
All right, maybe not you specifically, but what you think. He knows you never thought much of him as a leader, even though it's pretty clear it was never really in his serene(adj.寧?kù)o的、安靜的) personality. He knows you think he is soft(軟蛋), a critique(n.批評(píng)) left over from those nights you begged him to drive the ball and take the hit with a bulging disk(灌籃). And he knows you think he is -- for lack o
閱讀全文
posted @
2008-03-10 22:31 如果有一天de 閱讀(432) |
評(píng)論 (0) |
編輯 收藏
最近在修改組里的TMonitor程序頭疼壞了,程序的好多類在設(shè)計(jì)之初沒(méi)有考慮線程安全性,現(xiàn)在在源程序上加功能,怎一個(gè)痛苦了的。。。
楊哥(我剛到公司時(shí)接手他的程序)是個(gè)大牛,他在地圖的方面開(kāi)始設(shè)計(jì)的很好,但是都是靜態(tài)數(shù)據(jù),沒(méi)有數(shù)據(jù)的動(dòng)態(tài)變化的麻煩,然而后來(lái)在
JMapEdit上實(shí)現(xiàn)模擬動(dòng)態(tài)飛行以及動(dòng)態(tài)監(jiān)控上實(shí)現(xiàn)起來(lái)是個(gè)頭疼的問(wèn)題,可能會(huì)多個(gè)線程訪問(wèn)共享變量,而且有線程對(duì)共享變量的write操作,在程序中盡量調(diào)整原接口以及實(shí)現(xiàn)方式。楊哥走了,目前在組里只有我一個(gè)人了解地圖類編程,昨天跟方sir商量新來(lái)的同事是否也能接觸我的程序,方sir的回答:TMonitor還是比較難的,估計(jì)新來(lái)的同事(是個(gè)女的)不成,下次招個(gè)男的讓他接。。。不爽中,俺還是希望帶個(gè)女滴。。。
PS:經(jīng)驗(yàn)總結(jié)。
在沒(méi)有正確同步的情況下,如果多線程訪問(wèn)同一個(gè)變量,你的程序就存在隱患。有3種方法修復(fù)它:
- 不要多線程共享變量
- 使?fàn)顟B(tài)變量為不可變的;或者
- 在任何訪問(wèn)狀態(tài)變量的時(shí)候使用同步
設(shè)計(jì)線程安全的類時(shí),使用
封裝、不可變性以及明確的不便約束等面向?qū)ο蠹夹g(shù)可以使你在解決同步方面的問(wèn)題時(shí)思路清晰
posted @
2008-03-05 15:50 如果有一天de 閱讀(250) |
評(píng)論 (0) |
編輯 收藏
動(dòng)畫的實(shí)現(xiàn)上來(lái)說(shuō),是設(shè)置定時(shí)器進(jìn)行刷新.
對(duì)于Swing程序來(lái)說(shuō)java.swing.Timer類保證了線程在swing調(diào)用上的安全性。通過(guò)時(shí)間參數(shù)的設(shè)置時(shí)間動(dòng)態(tài)定時(shí)刷新,
對(duì)于動(dòng)態(tài)往復(fù)描繪來(lái)說(shuō),比如類似于動(dòng)態(tài)的顏色變化,動(dòng)態(tài)的進(jìn)行透明變化之類的周期性刷新來(lái)說(shuō),一般需要幾個(gè)條件
1.動(dòng)畫的周期性
2.動(dòng)畫的當(dāng)前狀態(tài)在起始狀態(tài)和目標(biāo)狀態(tài)之間
實(shí)現(xiàn)上需要這么幾個(gè)參數(shù)
- 起始時(shí)間 animation startTime
- 當(dāng)前時(shí)間 currentime
- 動(dòng)畫周期 animation duration
- 往返因數(shù) fraction
往返因數(shù)fraction
比如動(dòng)態(tài)調(diào)整透明度、動(dòng)態(tài)修改顏色在動(dòng)畫的過(guò)程中可以設(shè)定起始與目標(biāo)值,通過(guò)fraction在0-1范圍內(nèi)進(jìn)行運(yùn)算進(jìn)行調(diào)整。
以算法來(lái)描述則為
起始值設(shè)為 init
目標(biāo)值為 dest
實(shí)際值為 actual
actual=init*(1-fraction)+dest*fraction;
比較明顯的例子為,將顏色從初始顏色動(dòng)態(tài)變化到目標(biāo)顏色
Color startColor = Color.red; // where we start
Color endColor = Color.BLACK; // where we end
Color currentColor = startColor;
....
描繪currentColor的一個(gè)圓
在Timer的actionPerform里調(diào)整currentColor
// interpolate between start and end colors with current fraction
int red = (int)(fraction * endColor.getRed() +
(1 - fraction) * startColor.getRed());
int green = (int)(fraction * endColor.getGreen() +
(1 - fraction) * startColor.getGreen());
int blue = (int)(fraction * endColor.getBlue() +
(1 - fraction) * startColor.getBlue());
// set our new color appropriately
currentColor = new Color(red, green, blue);
通過(guò)定時(shí)器的時(shí)間參數(shù)動(dòng)態(tài)調(diào)整往返因數(shù)
通過(guò)時(shí)間參數(shù)進(jìn)行計(jì)算
如下代碼所示,在Timer的actionPerform里實(shí)現(xiàn)
long currentTime = System.nanoTime() / 1000000;
long totalTime = currentTime - animationStartTime;
//調(diào)整周期的起始時(shí)間
if (totalTime > animationDuration) {
animationStartTime = currentTime;
}
float fraction = (float)totalTime / animationDuration;
fraction = Math.min(1.0f, fraction);
注意當(dāng)前只是計(jì)算出了fraction,如何使因子在1-0和0-1之間往復(fù)變化呢
以下代碼實(shí)現(xiàn)了該算法
// This calculation will cause alpha to go from 1 to 0 and back to 1
// as the fraction goes from 0 to 1
alpha = Math.abs(1 - (2 * fraction));
//repaint();//重新繪制
posted @
2008-02-14 12:00 如果有一天de 閱讀(1320) |
評(píng)論 (1) |
編輯 收藏
OO面向?qū)ο蟮木幊痰囊淮髢?yōu)勢(shì)是封裝,對(duì)于現(xiàn)代軟件來(lái)說(shuō),軟件系統(tǒng)使用組件搭建起來(lái)的,這些組件不僅可以出現(xiàn)在一個(gè)軟件系統(tǒng)中,而且有可能出現(xiàn)在其他軟件系統(tǒng)中。大多數(shù)組件在單線程系統(tǒng)中運(yùn)行良好,但是在多線程環(huán)境下,如何保證組件的線程安全性呢?
一般來(lái)說(shuō),封裝能夠保證類的線程安全性。
首先,確定對(duì)象的狀態(tài)是由那些變量構(gòu)成的。對(duì)象的狀態(tài)就是field域的完整狀態(tài)。比如基本類型(primitive)的,int value是Counte類的一個(gè)field,那么這個(gè)域就組成了對(duì)象的完整狀態(tài)。如果對(duì)象有n個(gè)基本域,那么對(duì)象的狀態(tài)就是閾值組成的n元組;如果一個(gè)對(duì)象引用了其他對(duì)象,那么他的狀態(tài)也同時(shí)包含了被引用的對(duì)象的域。比如collection的狀態(tài)包含了所有存儲(chǔ)在鏈表的節(jié)點(diǎn)對(duì)象的狀態(tài)。
posted @
2008-01-28 16:33 如果有一天de 閱讀(336) |
評(píng)論 (0) |
編輯 收藏