adiaryの導入

2010/04/20Linuximport

tDiaryなみに簡単インストールできると謳われていた
adiaryなるプログラムをサーバにインストール.
しかし,何ですか,私はまたも転けてしまいましたよ.
なので,以下に導入法を記述します.いずれのOSもroot権限で作業します.

1 Debian squeeze

1.公式サイトから(こちらです),adiaryのEUC-JP版をダウンロード.
2.適当な場所に,tar -zxvf adiary-2.12.tar.gzで展開
3.それを/var/www/adiary/memo/としてコピー.
4.インストール案内に従って各ファイルをリネーム.
  • # uploader.conf.cgi.sample を uploader.conf.cgi にコピー.
  • # adiary.conf.cgi.sample を adiary.conf.cgi としてコピーして適当にいじる.
  特にこのファイルの↓の部分は変更する.
  # ●以下の「秘密の言葉」を必ず書き換えてください。
  <$Secret_phrase = 'すきな文字列をここに書く'>
5.上のディレクトリ全体について,持ち主をchownでwww-data:www-dataとしよう.
6.Apacheの設定ファイルを変更する.
  • Debianの場合,デフォルトに近い状態だと,
/etc/apache2/sites-available/defaultに以下のようなものを追加.
<Directory /var/www/adiary/memo>
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride All
Order allow,deny
AddHandler cgi-script cgi pl
allow from all
</Directory>
7.Apacheの再起動.
8.アクセスするときっと大丈夫.

2 CentOS 6

CentOS 6系列にインストールした際のメモ.ディレクトリの場所やパッケージ名などが異なる.

1.公式サイトから(こちらです),adiaryのUTF-8版をダウンロード.例えば↓.
wget http://adiary.org/download/ver2/adiary-2.28a-utf8.tar.gz
2.適当な場所に,tar -zxvf adiary-2.xx.tar.gzで展開
3.それを/var/www/html/adiary/memo/としてコピー.
4.インストール案内に従って各ファイルをリネーム.
  • uploader.conf.cgi.sample を uploader.conf.cgi にコピー.
  • adiary.conf.cgi.sample を adiary.conf.cgi としてコピーして適当にいじる.
  特にこのファイルの↓の部分は変更する.
  # ●以下の「秘密の言葉」を必ず書き換えてください。
  <$Secret_phrase = 'すきな文字列をここに書く'>
5.上のディレクトリ全体について,持ち主をchownでapache:apacheとしよう.
6.Apacheの設定ファイルを変更する.
  • デフォルトに近い状態だと,
/etc/httpd/conf/httpd.confに以下のようなものを追加.
<Directory /var/www/adiary/memo>
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride All
Order allow,deny
AddHandler cgi-script cgi pl
allow from all
</Directory>
7.Apacheの再起動.
8.アクセスするとページが開けるので,ページの案内に従い設定を進めていく.
9.画像のアップロード系の設定もしておく.
  • ImageMagick系のパッケージをインストールする
    yum install ImageMagick
    yum install ImageMagick-perl
    
  • インストールしたディレクトリのuploader.conf.cgiを適宜編集する.解説文は丁寧な日本語なのでそれを読みながら設定.

3 Rocky Linux 8(2024/02/05更新)

3.1 初回インストール

導入手順はCentOS6と同じ方法でも恐らく可能.
ただし,Version3系以上はgitを使った方が色々楽なので,公式サイトのインストール案内に準じて設定を行ってください.
この“初回インストール”という節を書いたときには,1年以上前にVer3.40cをインストール済みでした.
なのでたぶんこうしたはずという部分がありますのでご注意ください.抜けもあるかもしれません.

管理者権限で以下の操作を行います.これは“/home/user”以下に一般ユーザのウェブ公開用のディレクトリを用意するのではなく,
例えば,“/var/www/html”以下にウェブ公開用のディレクトリを配置するような構成の場合です.
  1. gitをインストールする(たぶんインストールはすでにされていると思う).
    # dnf install git
    
  2. adiaryのインストール場所を作り,そこへgithubの最新版をコピーする.
    # mkdir /var/www/html/adiary/
    # cd /var/www/html/adiary/
    # git clone https://github.com/nabe-abk/adiary
    
  3. 設定ファイルをコピーする.Version3系以上は特に編集しなければならない箇所はないと思います.
    必要に応じ設定値を書き換えてください(JPEGの画質とか)
    # cp /var/www/html/adiary/adiary.conf.cgi.sample /var/www/html/adiary/adiary.conf.cgi
    
  4. 設定の編集が終わったら,ファイル・ディレクトリの所有者をウェブサーバのものへ変更します.
    # chown -R apache:apache /var/www/html/adiary
    
  5. ウェブサーバの設定ファイル(例えば“/etc/httpd/conf/httpd.conf”)へ以下の内容を追記します.
    <Directory /var/www/html/adiary>
    Options Indexes FollowSymLinks MultiViews +ExecCGI
    AllowOverride All
    Order allow,deny
    AddHandler cgi-script cgi pl
    allow from all
    </Directory>
    
  6. ImagemagickやSSL通信等に必要なパッケージをインストールします.
    # dnf install ImageMagick
    # dnf install ImageMagick-perl
    # dnf install perl-Net-SSLeay
    # dnf install perl-CryptX
    
  7. ウェブサーバを再起動します.エラーが出なければ,インストール完了です.adiaryのインストールディレクトリへアクセスし案内に従って設定をすれば使用可能になります.
    # systemctl restart httpd
    

3.2 アップデート

アップデートする際に,gitのバージョンアップ等で若干手間が増えたようですのでメモしておきます.
この節を書いたときは,Ver3.40cからVer3.50jへアップデートしました.
このメモを残すついでに,“初回インストール”という節も書いた感じです.
  1. インストールディレクトリへ移動します.
    # cd /var/www/html/adiary
    
  2. 所有者を一度rootへ戻しておきます.そうしないとgitがエラーを出します.
    chown -R root:root .
    
  3. git pullを実行します.エラーが出るときと,出ないときがあります.
    1. エラーなしの時.次の箇条書きへ進んでください
      # git pull
      
    2. エラーありの時.3.40cから3.50jへアップデートするときに,次のようなエラーが出る場合があるようです.
      [root@server adiary]# git pull
      remote: Enumerating objects: 1703, done.
      remote: Counting objects: 100% (1703/1703), done.
      remote: Compressing objects: 100% (578/578), done.
      remote: Total 1703 (delta 1122), reused 1671 (delta 1090), pack-reused 0
      Receiving objects: 100% (1703/1703), 1.16 MiB | 11.61 MiB/s, done.
      Resolving deltas: 100% (1122/1122), completed with 159 local objects.
      From https://github.com/nabe-abk/adiary
         aad1446f..61bb9b81  master     -> origin/master
         f6b683c4..9bd6a280  develop    -> origin/develop
       * [new tag]           Ver3.50j   -> Ver3.50j
       * [new tag]           v3.50      -> v3.50
       * [new tag]           Ver3.50i   -> Ver3.50i
       * [new tag]           v3.40d     -> v3.40d
       * [new tag]           v3.50a     -> v3.50a
       * [new tag]           v3.50b     -> v3.50b
       * [new tag]           v3.50c     -> v3.50c
       * [new tag]           v3.50d     -> v3.50d
       * [new tag]           v3.50e     -> v3.50e
       * [new tag]           v3.50f     -> v3.50f
       * [new tag]           v3.50g     -> v3.50g
       * [new tag]           v3.50h     -> v3.50h
      Updating aad1446f..61bb9b81
      error: Your local changes to the following files would be overwritten by merge:
              .gitignore
              adiary.conf.cgi.sample
              adiary.env.cgi.sample
              dot.htaccess
              js/adiary.min.js
              js/adiary.min.map
      ・
      ・
      ・
              theme/satsuki2/nature-dark/nature-dark.js
              theme/satsuki2/nature-forest/nature-forest.js
              theme/satsuki2/nature-sky/nature-sky.js
      Please commit your changes or stash them before you merge.
      Aborting
      [root@server adiary]
      
      3.40cから3.50jへは,リポジトリの整理か何かで整合性に問題がある様子*1
      “Please commit your changes or stash them before you merge.”の案内にある通り,コミットかstash(隠す?)をしなければならないようです.
      検証しましたが,楽そうなのは,“git stash -u”でコミットせずに変更を待避する操作を行う手でした.
      これを実行し,さら“git pull”します.エラーが出なければ成功です.
      [root@server adiary]# git stash -u
      Saved working directory and index state WIP on master: aad1446f Update: CHANGES.txt for Ver3.40c
      [root@server adiary]# git pull
      
  4. ファイル・ディレクトリの所有者をapacheへもう一度変更します.
    # chown -R apache:apache .
    
  5. 念のためウェブサーバを再起動します.何もなければ完了です.
    # systemctl restart httpd
    

*1 : 後から出力をよく見たらv3.40cというタグの存在が消えています.これが原因ですね.スッキリしました.