Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【Debian9】pukiwikiを導入する

(過去記事のコピペなので内容が古いかも知れません)

イントラサーバーを立てたくなったのでやってみた
OS : Debian 9

一番使用経験があって、有名なのでpukiwikiを使ってみる
開発者は日本人っぽい

まずはここに一度目を通しておく
(リンク切れ)


必要なコマンドのインストール

sudo apt-get update
sudo apt-get install wget
sudo apt-get install unzip
% phpはすでにインストールされてたのでそのまま使う
(実はインストールされてなくて2日ほどハマる)

wget 'https://ja.osdn.net/projects/pukiwiki/downloads/69652/pukiwiki-1.5.2_utf8.zip/' -O pukiwiki.zip
unzip pukiwiki.zip
mv pukiwiki-1.5.2_utf8 pukiwiki

pukiwikiディレクトリを公開場所へ移動する

sudo cp -r pukiwiki /var/www/html/

パーミッション系のことがよくpukiwikiで問題になると検索してたらヒットしたけど
今はzipでダウンロードしてきてunzipすれば特に問題ないっぽい

pukiwiki.ini.php の修正

設定をいじるには pukiwiki.ini.php を修正すればいい

sudo emacs pukiwiki.ini.php

修正する箇所は
1. 管理人の名前を設定する
$modifier = 'anonymous';

2. $page_title = 'PukiWiki';

3. 公開するサーバーのアドレスなどにする
$modifierlink = 'http://pukiwiki.example.com/';

4. 管理者パスワードを設定する
$adminpass = '{x-php-md5}!';

md5のパスワードの生成の仕方は
$ echo -n 'pass' | md5sum
って感じ
これでpassをmd5で暗号化したパスワードが得られるのでこれを書けばいい
$ echo -n 'pass' | md5sum
1a1dc91c907325c69271ddf0c944bc72 -
なので、
$adminpass = '{x-php-md5}' . md5('1a1dc91c907325c69271ddf0c944bc72');

かとおもいきや、正解は
$adminpass = '{x-php-md5}'1a1dc91c907325c69271ddf0c944bc72';

qiita.com

ここでも1時間くらいハマった・・・
アニメ見ながらのんびり解決。


基本的な修正はこれだけでOK



いろんな記事を見てると、これで
http://pukiwiki.example.com/pukiwiki
とかの設定したアドレスにアクセスすればwikiが動くと書いてあるが、自分の場合はどうにもうまくいかない・・・

ウェブブラウザのターミナルでエラーメッセージを確認すると、

Failed to load resource: the server responded with a status of 500

みたいなのが表示されてた

これについて調べてみたが、ドンピシャな解決方法が見つからない・・・

原点に立ち戻ってserver worldでwebサーバー立ち上げのあたりの記事を見直してみる

www.server-world.info
www.server-world.info



もしかしてphpのインストールがうまく行っていないとか・・・?

$ apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

$ sudo a2enconf php7.0-cgi

$ sudo emacs /etc/php/7.0/apache2/php.ini
924行目:コメント解除しタイムゾーン設定
date.timezone = "Asia/Tokyo"

これで、なんとかpukiwikiがうごくようになった・・・.htaccessが邪魔をしてるとか関係なかったんや・・・・
(一応README.txtには.htaccessが原因かもとか書いてある)

このあと、次のエラーが出てきてまた困った・・・

Directory is not found or not writable (DATA_DIR)

4つくらいエラーメッセージが出てたけど、こっちは調べたら前例がいっぱいあった
/var/wwwという場所の所有者はrootだけど
実際にpukiwikiを動かしているのはapatcheなので所有者をapatcheのユーザーにしないといけないらしい(たぶん)

調べたらよく出てくるのが

■ 参考 : オーナー(所有者)の設定

この通りにやってみると

$ chown -R apache:apache ./
chown: invalid user: ‘apache:apache’

apatcheというユーザーはいません、とのこと

/etc/httpd/conf/httpd.conf

というファイルを見ると、良いとあるがこれは別のlinuxでの話

「"debian" apache group user」とかで調べてみると
Debianではapatcheではなくて、www-dataらしい

設定ファイルは /etc/apache2/envvars
これを書き換えたら、apatcheのユーザー名を変更できる? やらないがー

■ 参考 : apacheのグループと実行ユーザを調べる

「このようにRedHat系OSだとデフォルト値は”apache”、Deb系OSだとデフォルト値は”www-data”となっているので注意が必要です。」らしい


なので、オーナーを変えるには

$ sudo chown -R www-data:www-data ./

トップページとかメニューバーの言語を英語にする

// LANG - Internal content encoding ('en', 'ja', or ...)
define('LANG', 'ja');

// UI_LANG - Content encoding for buttons, menus, etc
define('UI_LANG', en); // 'en' for Internationalized wikisite
UI_LANGとLANGは効果が違うらしいが、今の所LANGをenにするだけでうまくいってるのでこのままいってみる

ただし、LANGをenにすると修正したときの時間などもUTCになってしまう
ので、設定ファイルのlocal time settingの項目を修正する

めんどくさいので、いかなるときも日本時間で表示するように修正した

// Local time setting
switch (LANG) { // or specifiy one
case 'ja':
define('ZONE', 'JST');
define('ZONETIME', 9 * 3600); // JST = GMT + 9
break;
default :
define('ZONE', 'JST');
define('ZONETIME', 9 * 3600); // JST = GMT + 9
break;
// define('ZONE', 'GMT');
// define('ZONETIME', 0);
// break;
}

ランキング参加中です

↓クリックしていただけると嬉しいです〜