PHP8.2.1でとりあえずRep2/p2-phpを入れるだけ【5chフロントエンド】

3 min read

hahah.png

こんにちは無能です。

アプリ依存も無く2ch/5chを見るようにRep2を入れます。

PHPは現在Artix Linuxを使用している為、PHP8.2.1が入ります。
おまけに、依存関係としてphp-gd php-fpm imagemagick php-sqliteも入れておきます。
他も入れないといけないらしいですが、後述するcheckはパスしたのでとりあえずよしとします。

sudo pacman -S php php-gd php-fpm imagemagick php-sqlite

まずmikoim氏のレポジトリからPHP8.*対応の物を入れます。

https://github.com/mikoim/p2-php

git clone git://github.com/open774/p2-php.git
cd p2-php

git cloneで自分のPCに入れて移動

curl -O https://getcomposer.org/download/1.10.25/composer.phar
chmod +x composer.phar
./composer.phar install

依存関係のインストール・・・ですがこのままだとdropbox APIのレポジトリが削除されている為失敗します。
もし上記コマンドを実行してしまった場合、composer clear-cacheでキャッシュを削除してください。

https://github.com/dropbox/dropbox-php-sdk/

という訳で、/p2-php/composer.jsonを編集します。

{
  "name": "open774/p2-php",
  "description": "The server side 2ch viewer written in PHP",
  "license": "X11",
  "repositories": [
    {
      "type": "pear",
      "url": "https://pear.php.net"
    },
    {
      "type": "vcs",
      "url": "https://github.com/open774/quickform"
    }
  ],
  "require": {
    "php": ">=5.3.6",
    "rsky/pear-core-min": "dev-master",
    "rsky/pear-pager": ">=2.4.9beta2",
    "rsky/pear-html_template_flexy": ">=1.3.13alpha6",
    "pear-pear.php.net/benchmark": "1.2.9",
    "pear-pear.php.net/cache_lite": "1.7.15",
    "pear-pear.php.net/db": "1.7.14",
    "pear-pear.php.net/db_dataobject": "1.11.2",
    "pear-pear.php.net/date": "1.4.7",
    "pear-pear.php.net/file": "1.4.1",
    "pear-pear.php.net/file_util": "1.0.0",
    "pear-pear.php.net/html_common": "1.2.5",
    "2ch774/quickform": "dev-master",
    "pear-pear.php.net/http_request2": "2.2.1",
    "pear-pear.php.net/net_socket": "1.0.10",
    "pear-pear.php.net/net_url": "1.0.15",
    "pear-pear.php.net/net_url2": "2.1.1",
    "pear-pear.php.net/net_useragent_mobile": "1.0.0",
    "pear-pear.php.net/validate": "0.8.5",
    "pear-pear.php.net/var_dump": "1.0.4",
    "pear-pear.php.net/xml_parser": "1.3.4",
    "pear-pear.php.net/xml_rss": "1.0.2",
    "symfony/console": "2.2.*",
    "symfony/yaml": "2.2.*",
    "jakeasmith/http_build_url": "1.0.*",
    "dropbox/dropbox-php-sdk": "dev-master"

  }
}

これの"dropbox/dropbox-php-sdk": "dev-master" を有志によって公開されているものに置き換えます。

"kunalvarma05/dropbox-php-sdk": "dev-master"

これで./composer.phar installを実行すると完了するはずです。

権限の変更をします。

chmod 0777 data/* rep2/ic

そして、そのままだとsqliteが動かないのでphp.iniを編集して
extension=pdo_sqlite
extension=sqlite3
この2つをコメントアウト又は追記してください。

以下を実行してチェックします。

php scripts/p2cmd.php check

おっけいそうです。

コレでテストしてlocalhost:8080にアクセス。

cd rep2
php -S localhost:8080 web.php

・・・

という事でエラーが吐き出されている事は確認出来るので、これから編集していくことになります。

途中で投げ出す可能性は高いですが、HTTPさえアレば使えるマルチプラットフォームな環境を作っておきたいのでノリと雰囲気でぼちぼちやっていこうと思います。

過去有志の栄光を忘れずに、なんとか引き継ぐぞー。
無理だったらゴメンネ(^o^)

ごめんにゃさい…
  / ̄ ̄ヽ ̄ ̄\
 ∠  レ  |  ⌒ヽ
  \__ノ丶  )|
   (_と__ノ⊂ニノ