本篇內(nèi)容介紹了“怎么在tinycolinux上編譯seafile”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)專注于武清企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城建設(shè)。武清網(wǎng)站建設(shè)公司,為武清等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
我們首先編譯出GCC481和CMAKE,python+pip,nginx等,且準(zhǔn)備gcc的autotools支持和git支持:
autogen.tcz,automake.tcz,autoconf.tcz,libtool.tcz,intltool.tcz,perl5.tcz,git.tcz,openssl-1.0.0.tcz
然后編譯出五大件,我下載到的版本是:
jansson-2.10.tar.gz(一個(gè)json解析庫(kù),C項(xiàng)目,cmake或autotools構(gòu)建)
libevhtp-1.1.6.tar.gz(一個(gè)強(qiáng)化libevent的http庫(kù),c項(xiàng)目,cmake構(gòu)建)
ccnet-server-6.2.5-server.tar.gz(seafile 自己的rpc庫(kù),c和py混合項(xiàng)目as py lib,autotools構(gòu)建)
libsearpc-3.0-latest.tar.gz(seafile rpc庫(kù),c+py混合項(xiàng)目as pylib,autotools構(gòu)建)
seafile-6.1.1.tar.gz(seafile的,c+py混合項(xiàng)目as pylib,autotools構(gòu)建。)
seafile-server-6.2.5-server.tar.gz(seafile負(fù)責(zé)文件傳輸?shù)臉I(yè)務(wù)服務(wù)器,c+py混合項(xiàng)目as pylib,autotools構(gòu)建)
seahub-6.2.5-server.tar.gz(純py,django app,seafile的前端部分)
按依賴和先后順后編譯,使用到autotools一般都是先sudo autogen.sh,然后./configure,如果sudo autogen.sh之后產(chǎn)生不了makefile.in基本是libtool的問(wèn)題,確認(rèn)安好libtool.tcz解決它,一一./configure --prefix=/usr/local/seafile之后,基本都能完成,使用到cmake一般要shadowbuild,即sudo mkdir b到src下,然后cd b,sudo cmake .. && sudo cmake build ..,其中evhtp要sudo cmake -DEVHTP_DISABLE_SSL=ON ..,libevhtp-1.1.6.tar.gz中cmakelists.txt中取消三個(gè)test的編譯需求。編譯configure或link過(guò)程中的時(shí)候會(huì)調(diào)到下述tcz:
acl-dev.tcz,acl.tcz,bzip2-dev.tcz,bzip2-lib.tcz,bzip2.tcz,curl-dev.tcz,curl.tcz,expat2-dev.tcz,expat2.tcz,fuse.tcz,glib2-dev.tcz,glib2.tcz,guile-dev.tcz,guile.tcz
libarchive-dev.tcz,libarchive.tcz,libattr.tcz,libevent-dev.tcz,libevent.tcz,libffi-dev.tcz,libffi.tcz,libltdl.tcz,liblzma-dev.tcz,liblzma.tcz,libssh3-dev.tcz,libssh3.tcz,popt-dev.tcz,popt.tcz,vala.tcz
基本上,,都可以在4.x的tinycorelinux tcz repos中找到。自己整理一下對(duì)應(yīng)關(guān)系,假設(shè)在第一步我們上述五個(gè)除seahub外都是安裝到/usr/local/seafile的,所有成功結(jié)果會(huì)是這樣:在/usr/local/bin下產(chǎn)生各種bin,在/usr/local/seafile/lib/產(chǎn)生ccnet,seafile,serpc的so,la,甚至在/usr/local/bin中也產(chǎn)生了seafile-admin:沒有py后綴shebang為py,作為腳本使用)。這個(gè)腳本很重要,下面細(xì)說(shuō).
首先創(chuàng)建一個(gè)倉(cāng)庫(kù)(相當(dāng)于odoo剛裝完或重新配置時(shí),要進(jìn)入web/database/manager刪減數(shù)據(jù)套件一樣),seafile-admin就是用來(lái)產(chǎn)生這個(gè)套件的總工具,并負(fù)責(zé)調(diào)用seahub根下的manage.py來(lái)啟動(dòng),下面我們用官方方法-即seafile-admin來(lái)產(chǎn)生套件并啟動(dòng)它:
在任意目錄新建一個(gè)data文件夾,然后產(chǎn)生data/seafile-server/seahub的空文件結(jié)構(gòu),把五大件中的seahub改名替換/data/seafile-server/seahub中的seahub,四大件要么作為后端,要么sudo make install到并作為python lib,seahub中也有一部分要作為python lib,因此,export PYTHONPATH=/xxx/seafile-server/seahub/thirdpart一下,除去所有這些不可見部分,此后的seahub就相當(dāng)于整個(gè)seafile website了。------- 現(xiàn)在,可以執(zhí)行產(chǎn)生數(shù)據(jù)倉(cāng)庫(kù)(我們把它稱為數(shù)據(jù)套件吧)的總腳本了,就是那個(gè)seafile-admin setup,回答所有問(wèn)題后發(fā)現(xiàn)正確配置完成,pip install gnicore后即可訪問(wèn),我們看到幫助文檔中配合nginx是轉(zhuǎn)發(fā)gnicore的數(shù)據(jù),現(xiàn)在,我們將django的這種方式,換成nginx+uwsgi,去掉gunicore的必要。這實(shí)際屬于django nginx uwsgi搭配問(wèn)題。
首先,我們有如下發(fā)現(xiàn):/usr/local/seafile/data/seafile-server/seahub/seahub下有一個(gè)wsgi.py和settings.py,這符合我們?cè)凇栋l(fā)布o(jì)doo》中用nginx+uwsgi將其啟動(dòng)的改造方式,也就是說(shuō),它可能天然支持純uwsgi且seafile也保留了這種方式,那么究竟是不是呢?
進(jìn)一步通過(guò)觀看seafile-admin我們進(jìn)一步明確了這種設(shè)想:它負(fù)責(zé)配置邏輯的產(chǎn)生(django app settings),且它調(diào)用的manage.py僅是一個(gè)wsgi.py的wrapper(為了seafile-admin中統(tǒng)一gunicore,fastcgi,etc..),所以,在seafile-admin->manage.py->wsgi.py的調(diào)用路徑中,這樣seafile-admin既是產(chǎn)生套件的工具,也用于統(tǒng)一啟動(dòng),而原本這一切:用于seafile-admin中讀取配置的部分settings.py+負(fù)責(zé)啟動(dòng)的部分wsgi,在無(wú)外頭wrapper即seafile-admin情況下,它們是分離直接放進(jìn)seahub根下的settings.py和wsgi.py中的:
現(xiàn)在既然有數(shù)據(jù)套件和套件配置了,所以嘗試直接配置uwsgi和nginx啟動(dòng)這個(gè)套件下的seafile就夠了,其它可按《odoo》一文中的來(lái),成功?。?/p>
nginx配置邏輯:
include uwsgi_params; uwsgi_param UWSGI_CHDIR /usr/local/seafile/data/seafile-server/seahub/seahub; uwsgi_param UWSGI_MODULE uwsgi-server; (不需要.py) uwsgi_param UWSGI_CALLABLE application; uwsgi_pass 127.0.0.1:8000;
啟動(dòng)的邏輯:
/usr/local/seafile/sbin/nginx /usr/local/seafile/bin/uwsgi --socket=:8000 --master --uid=tc --gid=root --daemonize=/usr/local/seafile/bin/uwsgi.log
“怎么在tinycolinux上編譯seafile”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!