學(xué)習(xí)Linux系列--布署常用服務(wù)
本系列文章記錄了個(gè)人學(xué)習(xí)過程的點(diǎn)點(diǎn)滴滴。
10.mediawiki
知名開源維基框架,我用來構(gòu)建自己的知識(shí)庫。
在mediawiki中新建一個(gè)http.conf文件
sudo vim /opt/mediawiki/httpd.conf
輸入如下內(nèi)容
Alias /mediawiki "/opt/mediawiki" <Directory "/opt/mediawiki"> AllowOverride All Require all granted </Directory>
打開Lampp的httpd.conf
sudo vim /opt/lampp/etc/httpd.conf
加入如下配置
Include /opt/mediawiki/httpd.conf
最后重啟Lampp
sudo /opt/lampp/lampp restart
15.dokuwiki
適用個(gè)人和中小公司使用的維基框架,有完整的插件體系與社區(qū)支持,軟件本身也不段更新,個(gè)人已切換使用這個(gè)
在dokuwiki中新建一個(gè)http.conf文件
sudo vim /opt/dokuwiki/httpd.conf
輸入如下內(nèi)容
Alias /dokuwiki"/opt/dokuwiki"
<Directory "/opt/dokuwiki">
AllowOverride All
Require all granted
</Directory>
打開Lampp的httpd.conf
sudo vim /opt/lampp/etc/httpd.conf
加入如下配置
Include /opt/dokuwiki/httpd.conf
重啟Lampp
sudo /opt/lampp/lampp restart
最后更改權(quán)限
sudo chmod -R 777 /opt/dokuwiki
20.tiny-rss
知名開源Rss閱讀器框架。
下載,解壓
cd /tmp wget https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.12.tar.gz tar xzvf 1.12.tar.gz sudo mv Tiny-Tiny-RSS-1.12/ /opt/tt-rss
新建一個(gè)配置文件
sudo vim /opt/tt-rss/httpd.conf
輸入如下內(nèi)容
Alias /tt-rss "/opt/tt-rss" <Directory "/opt/tt-rss"> AllowOverride All Require all granted </Directory>
打開Lampp的httpd.conf
sudo vim /opt/lampp/etc/httpd.conf
加入如下配置
Include /opt/tt-rss/httpd.conf
重啟Lampp
sudo /opt/lampp/lampp restart
登錄tt-rss,完成安裝向?qū)АS捎谑褂玫氖荓ampp,其自動(dòng)生成的配置文件里所記錄的Php執(zhí)行路徑是錯(cuò)誤的。
sudo vim /opt/tt-rss/config.php
將PHP_EXECUTABLE變量由/usr/bin/php改為/opt/lampp/bin/php,如下所示
define('PHP_EXECUTABLE', '/opt/lampp/bin/php');
為了讓它能夠開機(jī)后自動(dòng)獲取更新,執(zhí)行如下命令打開配置文件
sudo vim /etc/rc.local
在文件里添加以下內(nèi)容并保存,注意是以mysql身份來運(yùn)行這條命令,否則命令會(huì)報(bào)錯(cuò);且延遲10秒執(zhí)行,否則由于數(shù)據(jù)庫還未準(zhǔn)備好,也會(huì)報(bào)錯(cuò)。日志保存在/tmp/tt-rss-update.log文件中,且在后臺(tái)執(zhí)行。
su mysql -c "sleep 10 && /opt/lampp/bin/php /opt/tt-rss/update.php --daemon --log /tmp/tt-rss-update.log &"
Running update deamon on Ubuntu server
Linux 技巧:讓進(jìn)程在后臺(tái)可靠運(yùn)行的幾種方法
30.Rss生成器
這是我使用Asp.Net Mvc仿造Feed43為自己寫的軟件,用來從網(wǎng)頁上抓取內(nèi)容并生成Rss源。
在Linux上掛載Asp.Net網(wǎng)站目前有多個(gè)方案,比如使用Jexus。我選擇的是Apache + Xsp。一來就幾個(gè)人用,負(fù)載不大,二來能將地址與其它軟件地址一起掛在80端口的二級(jí)地址下,便于管理。
使用Ftp或其它工具上傳網(wǎng)站。在之前的Mono布署中,其實(shí)已經(jīng)把Xsp環(huán)境搭好了,現(xiàn)在只需進(jìn)行配置了。
在網(wǎng)站根目錄下新建并打開一個(gè)httpd.conf文件
sudo vim /opt/rsspublic/httpd.conf
輸入以下內(nèi)容。
Alias /rsspublic "/opt/rsspublic" MonoServerPath rsspublic "/usr/bin/mod-mono-server4" MonoDebug rsspublic true MonoApplications rsspublic "/rsspublic:/opt/rsspublic" <Directory "/opt/rsspublic"> require all granted MonoSetServerAlias rsspublic SetHandler mono SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary </Directory> <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript </IfModule>
這里配置文件的意思是建立一個(gè)rsspublic虛擬目錄,將所有對(duì)/rsspublic地址的訪問全部轉(zhuǎn)發(fā)到mod-mono-server4上去進(jìn)行真正的處理。
配置文件可以由這個(gè)網(wǎng)站代為生成
具體各個(gè)參數(shù)的意思,可以上官網(wǎng)了解。
然后在Apache的配置里引用這段配置就好了。
sudo vim /opt/lampp/etc/httpd.conf
輸入以上內(nèi)容
Include /opt/rsspublic/httpd.conf
最后重啟Apache即可
sudo /opt/lampp/lampp restart
最后要提醒的是,Mono只實(shí)現(xiàn)了.Net最核心的一部份,.Net的底層實(shí)現(xiàn)與Mono的底層實(shí)現(xiàn)并不是完全一致的,哪些只包含托管代碼哪些還包含平臺(tái)原生代碼也是需要了解的。在.Net下能正常運(yùn)行的網(wǎng)站在Mono下不一定跑的起來,這一方面的知識(shí)只能靠平時(shí)積累,上網(wǎng)查閱,閱讀源碼來了解了。
Ubuntu安裝Mono2.10并使用Apache承載Asp.Net mvc3應(yīng)用程序
40.Nuget Server
第一個(gè)選擇是Php Nuget,這也是我目前使用的方案。
下載
cd /tmp wget http://www.kendar.org/?p=/dotnet/phpnuget/phpnuget.2.1.0.0.zip
解壓
sudo unzip index.html?p=%2Fdotnet%2Fphpnuget%2Fphpnuget.2.1.0.0.zip -d /opt/phpnuget
更改權(quán)限
sudo chown -R www-data /opt/phpnugetsudo chmod -R 777 /opt/phpnuget
創(chuàng)建配置文件
sudo vim /opt/phpnuget/httpd.conf
輸入以下內(nèi)容
Alias /nuget "/opt/phpnuget" <Directory "/opt/phpnuget"> AllowOverride All Require all granted </Directory>
打開Lampp的httpd.conf
sudo vim /opt/lampp/etc/httpd.conf
加入如下配置
Include /opt/phpnuget/httpd.conf
打開根目錄下的.htaccess文件
sudo vim /opt/phpnuget/.htaccess
將所有的web/phpnuget改為nuget
打開nuget目錄下的.htaccess文件
sudo vim /opt/phpnuget/.htaccess
將所有的web/phpnuget改為nuget
打開根目錄下的settings.php,將上傳文件大小限制改大10倍
define('__MAXUPLOAD_BYTES__',100*1024*1024);
重啟Lampp
sudo /opt/lampp/lampp restart
訪問/nuget/setup.php,輸入管理員相關(guān)信息,提交。注意,之后登錄所用的用戶名是admin而不是這里輸入的name。
現(xiàn)在,就可以使用剛才注冊(cè)的用戶來管理nuget引用包了。
下一個(gè)選擇是NuGet.Java.Server
下載
cd /tmp axel http://packages.nuget.org/api/v1/package/NuGet.Java.Server/0.7.13.5
解壓
unzip 0.7.13.5.0 -d nuget
復(fù)制到目標(biāo)目錄
sudo cp -rf nuget/tools /opt/javanuget
創(chuàng)建存儲(chǔ)庫目錄
sudo mkdir /opt/javanuget/packages
測(cè)試一下能否正常運(yùn)行
sudo /opt/jdk1.7.0_55_x64/bin/java -jar /opt/javanuget/standalone-nuget-feed.jar /opt/javanuget/packages /url:http://你的ip/nuget/feed NuGet Java Feed Server
沒有問題后,把上面這句話加入到開機(jī)啟動(dòng)項(xiàng)中
執(zhí)行如下命令打開配置文件
sudo vim /etc/rc.local
在文件里輸入以下內(nèi)容并保存。注意日志保存在/tmp/javanuget.log中,在后臺(tái)執(zhí)行
/opt/jdk1.7.0_55_x64/bin/java -jar /opt/javanuget/standalone-nuget-feed.jar /opt/javanuget/packages /url:http://你的ip/nuget/feed > /tmp/javanuget.log &
重啟電腦后,就會(huì)發(fā)現(xiàn)其服務(wù)已自動(dòng)啟動(dòng)了。
另外,jnuget也是一個(gè)不錯(cuò)的選擇,不過其需要在Jdk1.7,tomcat7以上執(zhí)行。
myget是一個(gè)對(duì)個(gè)人提供免費(fèi)服務(wù)的在線Nuget服務(wù)
Setting up a private NuGet server
50.Svn
12.04官方源里帶的是1.6版本的Svn,顯然太老了。下面通過PPA來安裝1.7版本的。
多說一句,安裝與系統(tǒng)默認(rèn)版本不一致的軟件真的很累,Svn1.7默認(rèn)只能與Apache 2.2一起工作,但我安裝的是Apache 2.4,需要替換個(gè)模塊。就這個(gè)事讓我研究了一下午。
上launchpad搜索svn,找到合適的版本,還有這個(gè)
添加源地址
sudo add-apt-repository ppa:dirk-computer42/c42-backport sudo add-apt-repository ppa:ondrej/apache2
更新源
sudo apt-get update
安裝Svn,注意指定版本號(hào),否則默認(rèn)會(huì)裝上后一個(gè)ppa中的1.8版本
sudo apt-get install subversion=1.7.13-3~ubuntu12.04.1~ppa1 libapache2-svn=1.7.13-3~ubuntu12.04.1~ppa1
How to install specific Ubuntu packages, with exact version? [closed]
為了便于管理,創(chuàng)建一個(gè)用戶組并把www-data用戶加進(jìn)去
sudo addgroup subversion sudo gpasswd -a www-data subversion
創(chuàng)建svn根目錄
sudo mkdir /opt/svndata
創(chuàng)建倉庫studio
sudo svnadmin create /opt/svndata/studio
更改權(quán)限
sudo chown -R www-data:subversion /opt/svndata/studio sudo chmod -R 777 /opt/svndata/studio
下面來配置用戶。一般放置在/項(xiàng)目/conf/passwd。
sudo /opt/lampp/bin/htpasswd -c /opt/svndata/studio/conf/passwd ljz
-c表示創(chuàng)建一個(gè)用戶名單。只需在第一個(gè)人使用。此命令會(huì)提示輸入密碼,完成后即可用此用戶訪問svn。
要想讓svn通過apache的http訪問,還需進(jìn)行以下操作。
在apache中加入svn模塊
sudo cp /usr/lib/apache2/modules/mod_authz_svn.so /opt/lampp/modules/ sudo cp /usr/lib/apache2/modules/mod_dav_svn.so /opt/lampp/modules/
打開http.conf文件
sudo vim /opt/lampp/etc/httpd.conf
在模塊列表后面加入上面復(fù)制的兩個(gè)模塊
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在/opt/svndata/studio中新建一個(gè)配置文件
sudo vim /opt/svndata/studio/httpd.conf
輸入如下內(nèi)容并保存
<Location /svn/studio> DAV svn SVNPath /opt/svndata/studio AuthType Basic AuthName "studio subversion repository" AuthUserFile /opt/svndata/studio/conf/passwd Require valid-user </Location>
打開http.conf文件
sudo vim /opt/lampp/etc/httpd.conf
引用上面的配置文件
Include /opt/svndata/studio/httpd.conf
最后重啟服務(wù)
sudo /opt/lampp/lampp restart
Setup Subversion with XAMPP under Debian
在XAMPP上安裝SVN的一個(gè)注意事項(xiàng)
Subversion 1.7(這是12.04下書寫本文時(shí)最新版本的1.7,但是它只能與Apache2.2一起工作)
Experimental(1.7版,能與2.4一起工作,但是卻是為13.10版服務(wù)的)
compiling libapache2-svn for apache 2.4.4(文中所列的雖能與Apache2.4一起工作,但是卻是Svn1.8版本的)
debian, apache2.4 and libapache2-svn(自己來編譯,呵呵!)
此外,RiouxSVN也是一個(gè)不錯(cuò)的在線源代碼托管的選擇,免費(fèi)可以建4個(gè)最大50M的私有項(xiàng)目,夠用,挺好!

浙公網(wǎng)安備 33010602011771號(hào)