Chris Li

Digital design, Lisper,Emacs.

1_17_website_system

Table of Contents

web

sudo easy_install pip

pip install flask

sudo apt-get install libapache2-mod-wsgi

ln -s ~/lzh/web/app/apache.conf /etc/apache2/sites-enabled/default.conf

ln -s ~/lzh/web/app/main/wsgi.py /var/www/html/wsgi.py

ln -s ~/lzh/web/app/main/run.py /var/www/html/run.py

ln -s ~/lzh/web/app/templates/bootstrap.html /var/www/html/templates/index.html

sudo apachectl -k graceful

su pip install paramiko

publish system

  • 三台机器之间互相交互,用git.
  • sv负责(n2n apache+flask+org_publish)
  • ws负责(git repository)
  • mac负责(nothing)

ws

  • git之间password采用ssh key(ssh-keygen -t rsa,ssh-copy-id git@lzhws)
  • git之间交互是clent(user)与repository(git用户)
  • ws上git用户要有(/home/git用户目录放~/.ssh文件夹,/etc/passwd git必 需有登录shell(/bin/bash,不能为/usr/sbin/git-shell))
  • git之间自动每融一分钟pull

sv

  • n2n 全部自启动(linux用/etc/rc.local,mac设置开机启动一个shell)
  • org-publish用网页控制,flask python连接Emacs script+expect的方式 publish,

mac air

  • 定时运行,采用launchd方式,自动git pull
  • 开机启动,手动设置执行shell
  • 建立alfred workflow,实现快jie启动(emacx org,git push,baidu search url)

samba

samba建立好后, 文件尾追加内容。

[share]
  comment = Public stuff
  path = /home/fixer/download
  public = yes
  writeable = yes
  browseable = yes
  guest ok = no
[seagate_4TB]
  comment = mobile_disk
  path = /mnt/5t
  public = yes
  writeable = yes
  browseable = yes
  guest ok = no

samba用户名规则,将系统用户加入samba用户,只需设置密码即可。 增加: smbpasswd -a 删除 smbpasswd -x

启动 Service smba start/status/stop/restart

ftp

  • ftp需要安装vsftp
  • ftp有两种运行模式,一种是standalone,一种是inetd。
  • ftp anonymous的目录在/srv/ftp目录下。
  • /svr/ftp 权限为只允许root写,user必须是root,group可以 随意。但group不能有写权限。
  • anonymous登陆的user为ftp.
  • ftp帐号只能用来登陆ftp,不能用在terminal中,没有配备shell.

apache

  • 启动

apachectl -f /etc/apaches/apache2.conf

  • 重启

apachectl -k graceful

  • 目录

/var/www

  • 虚拟主机/site

apache2的站点主要存放在/etc/apache2/site-avaliable中, 默认情况下该文件夹下有一个000-default.conf 这个便始,apache安装完成后一个默认的站点。 需要增加站点的话,只需在此目录下增加xxx.conf文件。一个xxx.conf代 表一个xxx站点。 可以给每一个conf指定一个虚拟主机,如

trac.lizhanghui.com /var/www/trac 000-default.conf
www.lizhanghui.com /var/www/html xxx.conf
  • 打开/关闭站点
sudo a2ensite  000-default
sudo a2dissite 000-default
sudo a2ensit   xxx
sudo a2dissite xxx

可以使能多个站点,站点之间以虚拟主机的方式共存。

trac

trac有两种运行方式,一种是standalone,一种是 结合到apache中

apache方式

  1. 需要安装mod_python,mod_python是一个apache上的python解释器
sudo apt-get install python-mysqldb
sudo apt-get install libapache2-mod-python libapache2-mod-python-doc
  1. 使能mod_python
a2enmod python
  1. /etc/apache2/site-available中增加

trac.conf 文件,lzh/trac下有

  1. a2enconf trac.conf

为/etc/apache2/sites-enable文件夹下建立到/etc/apache2/site-available/trac.conf 的链接。

  1. 如果遇到[fn:1]ERR1: AttributeError: NullTranslationsBabel instance has no attribute 'isactive'

修改/usr/share/pyshared/trac/util/translation.py

$ diff -Nur translation.py.orig translation.py 
--- translation.py.orig    2014-07-14 13:09:16.130643165 +0800
+++ translation.py    2014-07-14 13:26:42.038584449 +0800
@@ -146,7 +146,8 @@
                 self._activate_failed = True
                 return
             t = Translations.load(locale_dir, locale or 'en_US')
-            if not t or t.__class__ is NullTranslations:
+            #if not t or t.__class__ is NullTranslations:
+            if not isinstance(t, Translations):
                 t = self._null_translations
             else:

或者将lzh/trac/translation.py替换过去,该文件为改好的版本

  1. a2ensite trac
  2. trac-admin /var/www/trac initenv
mkdir trac
trac-admin /var/www/trac initenv
chown -R www-data:fixer /var/www/trac
usermod -a -G fixer www-data
  1. sudo chown -R www-data:www-data /var/www/trac
  2. sudo apachectl -k graceful

standalone方式

tracd –port 8000 ./trac

trac 密码问题

trac的密码的设置,根据运行方式的不一样而不同(standalone,apache)。

apache方式密码

apache认证方式分为:basic,digest,ssl. 我们使用basic认证,在trac.conf中需要相应设置。[fn:2]

sudo apt-get install apache2-utils
htpasswd -c /var/www/trac/trac.htpasswd username

参数“-c”表示第一次创建密码文件。如果后续需要追加用户,就不可使用参数“-c”了。 如果将命令htpasswd替换成命令htdigest,则创建就是Digest认证文件了。

#<Location /login>
#<Location />
#  AuthType Basic
#  AuthName "Trac"
    #  AuthUserFile /var/www/trac/trac.htpasswd
    #  Require valid-user
#</Location>

<LocationMatch "/login">
  AuthType Basic
  AuthName "Trac"
      AuthUserFile /var/www/trac/trac.htpasswd
      Require valid-user
    </LocationMatch>

<Location> 以网站的根目录为根止录,例:lizhanghui.com/login Location 为<Location /login>. <LocationMatch> 提供一个正则匹配功能。

mediawiki

dokuwiki

discuz