󥹥ȡˡ

  SQLite3Υ󥹥ȡ
  cgicΥ󥹥ȡ
  Starbug1Υѥ
  Starbug1
  hookǽˤĤ
  Хååפˡ
  򥨥ݡȤ뵡ǽˤĤ
  ޤưʤ

Starbug1ϡSQLite3cgiciconvѤƤޤѥ뤹뤿ˤϡ
sqlite3cgicɬפǤ(FreeBSDǥѥ뤹ˤϡ˲älibiconv
ɬפˤʤޤ)

SQLite3Υ󥹥ȡ

OSˡSQLite3󥹥ȡ뤵Ƥ(libsqlite3.so, sqlite3.h¸ߤ
)ϡSQLite3Υ󥹥ȡפǤ

http://www.sqlite.org/ 顢 sqlite-3.5.4.tar.gz ɤ롣

$ wget http://www.sqlite.org/sqlite-3.5.4.tar.gz


ŬʾŸѥ롢󥹥ȡ뤹롣

$ tar zxf sqlite-3.5.4.tar.gz
$ mkdir bld
$ cd bld
$ ../sqlite-3-5-4/configure --disable-tcl
$ make
$ su
# make install


cgicΥ󥹥ȡ

OSˡcgicl205ʾ夬󥹥ȡ뤵ƤϡcgicΥ󥹥ȡפǤ


http://www.boutell.com/cgic/  cgic205.tar.gz ɤ롣

$ wget http://www.boutell.com/cgic/cgic205.tar.gz


ŬʾŸѥ롢󥹥ȡ뤹롣

$ tar zxf cgic205.tar.gz
$ cd cgic205
$ make
$ su
# make install


Starbug1Υѥ

롣

  Downloadǿ롣https://sourceforge.jp/projects/starbug1/

ѥ

Ÿѥ뤷ޤ

$ tar zxf starbug-x.x.x.tar.gz
$ cd starbug1
$ gmake
$ gmake webapp


dist/starbug1 ǥ쥯ȥˡwebץ켰ޤ

Starbug1

Web(ưǧƤΤapache)DocumentRoot۲ dist/starbug1 ǥ
ȥ֤ޤ

$ su
# cp -r dist/starbug1 /home/httpd/html


? ΥСStarbug1饢åץǡȤˤϡΥǥ쥯ȥ
Хååפ塢ΥޥɤǾ񤭤Ƥθǡ(Хåå
)/css/user.css (󥹥ȡǥ쥯ȥ)/css/user.css˾񤭤Ƥ


(󥹥ȡǥ쥯ȥ)/starbug1 ۲cgi¹ԥ桼θ¤ѹޤ

# cd /home/httpd/html
# chown -R apache:apache starbug1


WebФ˹碌եŬڤԽޤ(ʲapacheǤ)

dot.htaccess.htaccess˥ե̾ѹơŬڤ˹ԤʤäƤ
ApacheʳWebФǱѤϡ줾WebФ˹碌Ʊͤ
ԤʤäƤ

$ mv dot.htaccess .htaccess
$ cat .htaccess
# 顼ڡλ
ErrorDocument 500 /starbug1/error.html
# CGIμ¹Ե
Options +ExecCGI
# ڡ
DirectoryIndex index.cgi

# ̥桼ǧڤˤĤƤ
<Files index.cgi>
    AuthName      "authentication for guest user."
    AuthType      Basic
    AuthUserFile  /etc/starbug1/.guest-passwd
    Require       valid-user
</Files>

# 桼ǧڤˤĤƤ
<Files admin.cgi>
    AuthName      "authentication for administrator user."
    AuthType      Basic
    AuthUserFile  /etc/starbug1/.admin-passwd
    Require       valid-user
</Files>
# եǥ쥯ȥ
<FilesMatch ".*">
  deny from all
</FilesMatch>
# ե
<FilesMatch "(^$|\.cgi$|\.jpg$|\.png$|\.gif$|\.css$|\.js$)">
  allow from all
</FilesMatch>


顼ڡλ
    URLŬڤ˻ꤷƤץΥե̾(starbug1)ѹϡ
    顼ڡλURLѹƤ
CGIμ¹Ե
    פǤСȥȤƤ
ǥեȥڡ(welcomeڡ)
    פǤСȥȤƤ
Basicǧ
    BasicǧڤѤ硢htpasswdʤɤǥѥɥեؤΥ桼Ͽ
    ԤʤäƤ̥桼ȴ桼̡˹Ԥʤϡξ
    ꤷƤפǤХȥȤƤ httpd.conf
    ԽǤϡƱhttpd.confǹԤʤ˾ޤǤ

http://(server_name)/starbug1/ ˥ޤ

ȥåײ̤ɽС󥹥ȡǤ

hookǽˤĤ



hookǽϡåȤϿֿλ˳ץƤӽФǽǤ hook
ȤơץꤹȡåϿֿλ˳ץ
¹Ԥ뤳ȤǽˤʤޤޤhookθƤӽФ󥿡եץ
ƤӽФǤ뤿ᡢоμ¹ԲǽեǤС䤤
ޤ󡣥ǥȤƤϡʲΤ褦ʤȤ¸Ǥޤ

᡼
    Ͽ줿Ƥ򡢥᡼󥰥ꥹȤإ᡼褦ץȤhook
    Ͽ롣
Ͽ¸
    Ͽ줿Ƥ򡢥ե¸褦ץȤhookϿ롣
å󥸥㡼
    Ͽ줿Ƥ򡢥å󥸥㡼˼ưƤ륹ץȤhookϿ롣
ƥӥ
    Ͽ줿Ƥ顢ץȤΥưӥɤ륹ץȤhook
    Ͽ롣

ǥǤϡ򤤤ȤǤ뤫⤷ޤ̾Υ󥹥ȡԤʤ
ȡ᡼Ѥ perl ץȤΥץ뤬scriptǥ쥯ȥ֤ޤ
(᡼Ԥʤˤϡ꤬ɬפǤ)

hookǽλ

Starbug1ϡоǥåȤϿֿλ˰ʲưԤʤޤ

  ${Starbug1Υ󥹥ȡǥ쥯ȥ}/scriptǥ쥯ȥˤ롢hook_ 
    Ϥޤե̾μ¹ԥե򸡺ޤ
  ¹ԥե뤬դä硢ƤjsonѴĶѿ$
    {STARBUG1_CONTENT}ꤷ֤ǡ¹ԥե¹Ԥޤ
  ¹ԥե뤬ʣ¸ߤϡ˼¹ԥե¹Ԥޤ
  åϿֿλΥåȰˡץȤμ¹Է̤ɽ
    

hookǽϿ줿ץȤǥ顼ȯϡϿλޤ
פΥåθˡץȤμ¹ԤԤݤΥåɽ


Ķѿ${STARBUG1_CONTENT}ꤵjsonϰʲΤ褦ʷˤʤޤ(
פ褦Ƥޤ) Ƹjsonȥ֥ȤѴ饤֥
ѴСñƤǤޤ

{
  project: { name: "ƥȥץ ץ"},
  ticket: {
    id: 2,
    url: "http://popnuts.ddo.jp/starbug1/index.cgi/ticket/2",
    fields: [
      { name: "̾",     value: "ïǤƤǤ褦ˤʤäƤˤĤ" },
      { name: "Ƽ",   value: "smeghead" },
      { name: "",     value: "պ" },
      { name: "ƥ", value: " " },
      { name: "ͥ",   value: "" },
      { name: "ܺ",     value: "ƥȾܺ2" },
      { name: "Ƹ", value: "ƥȺƸ2" },
      { name: "", value: "" }
    ]
  }
}


źդΥ᡼ץȤˡ

Starbug1źդƤ᡼ץȤˡޤ ${Starbug1
Υ󥹥ȡǥ쥯ȥ}/scriptǥ쥯ȥˡsample.hook_sendmail.pl ¸
ߤޤʲΥޥɤǡ᡼ץȤhook_ǻϤޤե̾ѹ
ޤ

# cd ${Starbug1Υ󥹥ȡǥ쥯ȥ}/script
# mv sample.hook_sendmail.pl hook_sendmail.pl


ץȤΰܤperlpathѹޤ

#!/usr/local/bin/perl


᡼Τξꤷޤ$options ȤhashФԤʤޤ
ʸʬޥʬǤ

my $options = {
  #ѤSMTPۥ̾
  smtp_host => 'localhost',
  #ѤSMTPݡֹ
  smtp_port => 25,
  #᡼FROMꤷƤ
  from => 'project-admin@example.com',
  #᡼ꤷƤΤ᡼󥰥ꥹȤΥɥ쥹ʤɡ
  to => 'project-ml@example.com'
};


ʾԤʤä塢åȤϿֿԤʤäơưǧԤʤäƤ


Хååפˡ

Starbug1Ū˥ХååפԤʤϡ${󥹥ȡǥ쥯ȥ}/
db/starbug1.db ХååפƤ starbug1.dbϡSQLite3Υǡ
١եǤ

㤨cronϿϰʲΤ褦crontab -e ꤹСХååפǤ
ޤ

# /var/www/html/starbug1 ˥󥹥ȡ뤵줿Starbug1Υǡ١
# gzipǰ̤ /var/backup ʲ¸Ǥ
0 1 * * * gzip -c /var/www/html/starbug1/db/starbug1.db > /var/backup/starbug1.db_$(date +%Y%m%d).gz


򥨥ݡȤ뵡ǽˤĤ



򥨥ݡȤ뤳ȤǤޤȤϡץȤꤵ
ܡܤʤɤξȥ桼ѥ륷ȤǤ¸ߤץ
Ȥ顢ץȤܹԤ뤳ȤǤ
ޤ

¸ߤץȤǡ¸ˡ

¸ߤץȤưĶΥоǥޥɤ¹Ԥޤ

# cd /somewhere/to/old/project
# cd script
# ./pickup_template


¹Ը塢template ǥ쥯ȥ꤬졢˥ƥץ졼Ȥޤ

templateǥ쥯ȥ꤬¸ߤ硢ޤΤǥХååפɬפʾ
˥ХååפƤ

¸ǡ򿷤ץȤȿǤˡ

ץȤ򥤥󥹥ȡ뤷ޤ˥󥹥ȡ뤬λ֤ǡ
¸Ƥätemplateǥ쥯ȥ񤭤ޤ

# cp -r /somewhere/to/old/project/template/* /somewhere/to/new/project/


ʾǡץȤ˸ŤץȤȿǤޤ
ȤȸŤץȤΥС󤬰㤦ϡȿǤʤ
ưʤǽޤ

ޤưʤ

󥹥ȡ봰λ֥饦 http://(server_name)/starbug1/ ˥
ȥ顼ȯWebФΥ顼ˡPremature end of script headers:
index.cgiפΤ褦ʥåϤ롣

CGI¹Ԥ븢¤뤫ǧƤʲΤ褦ʴñperlcgi
Ȥstarbug1ǥ쥯ȥ֤¹Ը¤ղäư뤫ɤǧ뤳
ǡCGIΤͭˤʤäƤ뤫ɤǧǤޤ

#!/usr/bin/perl
print "Content-Type: text/plain;\n\nhello.";


WebХץ桼starbug1ǥ쥯ȥ˽񤭹߸¤뤫ǧƤ
ǡ١եǼ뤿ˡWebХץ桼
starbug1ǥ쥯ȥ˽񤭹߲ǽȤʤäƤɬפޤ

