Skip to content

fukumen/p2-php

 
 

Repository files navigation

rep2 expack 全部入り for PHP 8.x by fukumen

上記やスレに上げられた修正を取り込んで全部入りを目指す闇鍋バージョンです。

このリポジトリにはrep2をPHP 8.xで動かすためのパッチが含まれています。

主な追加機能

各機能の説明はdocディレクトリのREADMEファイルを見てください。

  • PHP8系で起きていた文字化け対策(スレの情報を元にいい加減なパッチ当て)
  • proxy無しで5chへアクセス出来るよう対応(不足有り)
  • 5chの/板名/oyster/スレッドキー上位4桁の数字/スレッドキー.datの形式の過去ログに対応
  • 5chの過去ログ倉庫(kako.5ch.net)のスクレイピングに対応
  • 認証関係のハッシュや暗号化を強化
  • 5chのどんぐりシステムの警備員●とハンターに対応(詳細はこちら)
  • UPLIFTの5chログインに対応(詳細はこちら)
  • 画像アップローダ(imgur/imgbb/catbox/litterbox)に対応
  • ログインロックアウト機能を追加(詳細はこちら)
  • フォント設定の見直し、アクティブモナーのスマホ対応、アクティブモナー用のWebフォント(Textar)に対応
  • ワッチョイ対応
  • talk.jp対応(詳細はこちら)
  • スマホのスレ表示に非同期(Ajax)モードを追加

なお、5ch以外やpinkでは全くテストしていません。

セットアップ

Git & Composerで

  1. 本体をclone
git clone https://github.com/fukumen/p2-php.git
cd p2-php
  1. 依存ライブラリをダウンロード
curl -O https://getcomposer.org/composer.phar
chmod +x composer.phar
./composer.phar install
  1. Webサーバが書き込めるようにディレクトリのアクセス権をセット

(CGI/suEXECIやCLI/Built-in web serverでは不要)

chmod 0777 data/* rep2/ic

ビルド済みパッケージ

  • docker-rep2: rep2+PHP+Caddyで構成されたdockerコンテナ
  • docker-rep2-win: Windows11でdocker-rep2を使うためのアプリ
  • rep2-allinone: rep2+PHP+Caddyで構成されたパッケージ(Linux用deb/rpm、macOS用Homebrew)

環境を移行する場合、インストール後に data,conf,rep2/ic をコピーするだけで OK です。

動作環境

PHP8.2以上が必要です。

Caution

PHP7.x以下では使えません。 なお、現在はPHP8.5で動作確認しています。

以下のコマンドを実行して、全ての項目で OK が出たなら大丈夫です。

何かエラーが出たらがんばって環境を整えてください。

php scripts/p2cmd.php check

⚠️注意事項

「認証関係のハッシュや暗号化を強化」によりdata/prefのp2_auth_user.phpとconf_user.srd.cgiが従来のrep2では全く読めなくなります。バックアップをとっておいてください。

更新後、初回接続時はセッションとクッキー認証が失敗扱いになりログイン画面が表示されます。ログイン画面からログインした時点で暗号化が強化された状態に更新されます。

また、環境変数SECRET_KEYの設定が必要です。ホストで openssl rand -hex 32 を実行した結果を設定してください。 どうやるの?という場合はこちらを見てください。

⚠️proxyについて

rep2側で過去ログ倉庫のスクレイピングも実装済みのため、現時点ではproxyは不要になっているはず。proxy無しの場合の推奨設定はfukumen/docker-rep2のREADME.mdを参照してください。

2chproxy.plを使いたい場合、fukumen/2chproxy.plを使ってENABLE_ALWAYS_HTTPS_FOR_2CH: 1, KEEP_COOKIE : 0とする必要があります。

proxyを使い場合は、2chproxy.plよりも開発が続いているproxy2chの方が良さそう。

どんぐりの説明にも少し書きましたが、proxyがクッキーを保持する機能が有効な場合、expireの対応がされていないとどんぐりを複数持ったりおかしなことになりそうなのでproxy側でのクッキー保持はオフが推奨です。

Caution

書き込み時やどんぐり関係でトラブルに遭遇した場合、必ずproxyを外して試してください。 proxyがいるとrep2の問題なのかproxyの問題なのか切り分けが出来ずにハマります。

Built-in web serverで使ってみる (PHP 5.4+)

PHP 5.4の新機能、ビルトインウェブサーバー で簡単に試せます。

以下のようにすると、Webサーバーの設定をしなくても http://localhost:8080/ でrep2を使えます。(Windowsでも!)

cd rep2
php -S localhost:8080 web.php

moriyoshi++

画像を自動で保存したい

スレに貼られている画像を自動で保存する機能、ImageCache2があります。

see also doc/ImageCache2/README.txt, doc/ImageCache2/INSTALL.txt

準備

  1. MySQLやPostgreSQLを使う場合はデータベースサーバーを立ち上げておく(SQLiteを使う場合は不要です)。

  2. conf/conf_admin_ex.inc.phpでImageCache2を有効にする。

$_conf['expack.ic2.enabled'] = 3;
  1. conf/conf_ic2.inc.phpでDSNを設定する。
  // SQLiteの場合
  $_conf['expack.ic2.general.dsn'] = 'sqlite:' . $_conf['db_dir'] . '/imgcache.sqlite';
  
  // MySQLの場合
  $_conf['expack.ic2.general.dsn'] = 'mysql://username:password@localhost:3306/database';
  
  1. setupスクリプトを実行する。
php scripts/ic2.php setup

注意

  • PHP 5.4以降では古いSQLite2がサポートされなくなりました。現在はSQLite3、MySQL、またはPostgreSQLが利用可能です。
  • ホストにlocalhostを指定して接続できないときは、代わりに127.0.0.1にしてみてください。

設定を変えたい

細かい挙動の変更は メニュー > 設定管理 > ユーザー設定編集 から行えます。

Webブラウザから変更できない項目は conf/conf_admin.inc.php (基本), conf/conf_admin_ex.inc.php (拡張パック), conf/conf_ic2.inc.php (ImageCache2) を直接編集します。

どういうことができるか書き起こすのが面倒なので設定ファイルのコメントを見てください。

cronを使った便利機能

下記のスクリプトをcronで定期的に回すとより便利にrep2を使用することが出来ます。 必要に応じてどちらか一つを使用すれば充分でしょう。

履歴の新着数更新

ブラウザから更新を行うと一覧の表示に時間がかかるため、subject.txtを更新するためのスクリプトが付属しています。 並列ダウンロードで高速ですが、使用するために設定変更を行う必要があります。

php scripts/fetch-subject-txt.php --mode モードを一つ指定(fav recent res_hist)

更新ついでにDATのダウンロード

並列ダウンロードの代わりにsubject.txtとDATのダウンロード機能を実装したスクリプトです。 時間はかかりますが、設定変更無しで使えるのでこちらがお手軽です。

php scripts/fetch-dat.php --mode モードを一つ指定(fav recent res_hist)

更新

php scripts/p2cmd.php update

これは下記コマンドを個別に実行するのと等価です。

git pull
php -d detect_unicode=0 composer.phar self-update
php -d detect_unicode=0 composer.phar update

小技

  • スマホモードで板一覧を表示中に横方向にスライドするとリンクスライドが表示されます。拡張パックで追加されたらしい

Authors & Contributors

License

see LICENSE.txt

About

ServerSide 2ch viewer for PHP 8.x

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PHP 80.2%
  • JavaScript 16.6%
  • HTML 1.4%
  • Other 1.8%