From e9b1d1e25d7cea2d18c044fd3097ef8b91cb854f Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Thu, 31 Oct 2024 22:56:22 +0900 Subject: [PATCH 01/11] Move/rewrite much of the macOS and Unix install instructions Tried to put more emphasis on how to install from packages (either from distributions or third parties) and for Unix, in particular, move the stuff about compiling from source down a level so new users don't get knocked in the face with it. https://github.com/php/doc-en/commit/4cb53ecbd763db2db808e90d7eda63afb380e6df --- install/macos/index.xml | 12 +-- install/macos/packages.xml | 67 +++++------- install/unix/debian.xml | 47 +++----- install/unix/dnf.xml | 110 +++++++++++++++++++ install/unix/index.xml | 216 +++++++------------------------------ install/unix/openbsd.xml | 2 +- install/unix/source.xml | 110 +++++++++++++++++++ language-snippets.ent | 8 ++ 8 files changed, 314 insertions(+), 258 deletions(-) create mode 100644 install/unix/dnf.xml create mode 100644 install/unix/source.xml diff --git a/install/macos/index.xml b/install/macos/index.xml index 484607a97c..4aa9f6a839 100644 --- a/install/macos/index.xml +++ b/install/macos/index.xml @@ -1,16 +1,14 @@ - + macOS へのインストール - 本章では、PHP を macOS にインストールする際の注意事項とコツを説明します。 - PHP は Mac OS X バージョン 10.0.0 以降、 - macOS Monterey (12.0.0) より前の MacOS に標準添付されています。 - また、コンパイルの手順は - Unix へのインストールガイド - と同じです。 + PHP は macOS バージョン10 および 11 に標準添付されていましたが、 + macOS Monterey (12.0.0) 以降には含まれていません。 + 最近のバージョンにインストールするには、サードパーティーのパッケージを使用するか、 + ソースコードからコンパイルする必要があります。 &install.macos.packages; &install.macos.bundled; diff --git a/install/macos/packages.xml b/install/macos/packages.xml index b2e2ec3bf0..dc26457691 100644 --- a/install/macos/packages.xml +++ b/install/macos/packages.xml @@ -1,10 +1,10 @@ - + - パッケージの使用 + サードパーティパッケージによる macOS へのインストール macOS 用にコンパイルされた PHP パッケージがいくつか存在します。 一般的なセットアップを行うにあたって、利用することができます。ただし、 @@ -14,50 +14,33 @@ 誰か他の人が作成済みでないかを調べてみると良いでしょう。 - macOS で一番手っ取り早いインストール方法は、 - 以下のようにして、homebrew を使うやり方です。 + macOS に PHP をインストールするには、 + Homebrew + パッケージマネージャを使用すると簡単です。 - - - - - brew.sh にある手順に従って、homebrew をインストールします。 - - - - - brew install php - - - - - + + + + Web サイトの指示に従って Homebrew をインストールしてください。 + + + + + brew install php + + + 以下の場所にも、簡単にインストールできる macOS 用のコンパイル済み PHP パッケージがあります。 - - - - - MacPorts: - &url.mac.macports; - - - - - Liip: - &url.mac.liip; - (PHP 5.3 - PHP 7.3; 現在は推奨されていません) - - - - - Fink: - &url.mac.fink; - - - - + + + MacPorts + + + Fink + + - + - Debian GNU/Linux へのインストール + Debian GNU/Linux および関連ディストリビューションのパッケージからののインストール このセクションでは、Debian GNU/Linux に PHP をインストールする際の注意事項とヒントについて説明します。 + + PHP はソースコードからもインストールできますが、 + Debian GNU/Linux + パッケージからもインストール可能です。これは、Ubuntu、Kali Linux、Linux Mint + のような Debian ベースの他のディストリビューションにも当てはまります。 - - - サードパーティが作った非公式のビルドについてはここではサポートしていません。 - 何かバグを見つけた場合は、 - ダウンロードページ - から取得した最新のビルドでそれが再現するかを確認し、 - 再現しない場合は Debian チームにバグ報告をお願いします。 - - + &warn.install.third-party-support; - Unix 上で PHP をビルドする方法は Debian でもそのまま使えます。 - しかし、このページではもうひとつの方法として Debian 固有の情報を扱います。 - aptaptitude - といったコマンドの使い方です。 - このマニュアルページでの説明は、これらふたつのコマンドのどちらを使っても実行できます。 + パッケージは、 apt または aptitude + コマンドを使用してインストールできます。 + このマニュアルでは、どちらのコマンドも同じ意味で使用します。 APT の使用 @@ -66,7 +61,7 @@ cURL、 GD などの追加モジュールもインストールしたくなることでしょう。 - これらも apt コマンドでインストールすることができます。 + これらも apt コマンドでインストールすることができます。 追加の PHP パッケージを探す方法 @@ -79,12 +74,11 @@ - 上記の出力を見てわかるとおり、(php-cgi や php-cli, php-dev といった - 特別なパッケージのほかにも) さまざまなパッケージがあり、インストールすることが可能です。 - 必要なものを見定めて、apt か - aptitude でインストールしましょう。 - Debian は依存性のチェックを行うので、たとえば MySQL と cURL - をインストールする場合はこのようになります。 + パッケージのリストには、php-cgiphp-cli、 + php-dev などの基本的な PHP コンポーネントと多くの + PHP 拡張機能を含む多数のパッケージが含まれます。 + 拡張機能がインストールされると、それらのパッケージの依存関係を満たすために、 + 必要に応じて追加のパッケージが自動的にインストールされます。 PHP と MySQL、cURL のインストール @@ -121,13 +115,6 @@ インストール後にウェブサーバーを再起動したかどうかを確認しましょう。 - - - Debian (およびその派生物) でパッケージをインストールする基本的なコマンドは - aptaptitude のふたつです。 - しかし、これらのコマンドの微妙な違いについての説明は、このマニュアルでは行いません。 - - diff --git a/install/unix/dnf.xml b/install/unix/dnf.xml new file mode 100644 index 0000000000..38166ba378 --- /dev/null +++ b/install/unix/dnf.xml @@ -0,0 +1,110 @@ + + + + + DNF を使用する GNU/Linux ディストリビューションでのパッケージからのインストール + + PHP はソースコードからインストールできますが、Red Hat Enterprise Linux、 + OpenSUSE、Fedora、CentOS、Rocky Linux、Oracle Enterprise Linux のような + DNF を使用するシステム上のパッケージからインストールすることもできます。 + + &warn.install.third-party-support; + + パッケージは dnf コマンドでインストールできます。 + + + Installing packages + + まず、PEAR には php-pear、 + MySQL 拡張 には php-mysqlnd + など、 他の関連パッケージが必要になる場合があることに気をつけてください。 + + + 次に、パッケージをインストールする前に、パッケージリストが最新であることを確認するのが賢明です。 + 通常、これは dnf update コマンドを実行して行います。 + + + DNF インストールの例 + + + + + + DNF は Web サーバー に自動的に PHP のための設定をインストールしますが、 + 変更を有効化するには、以下のようなコマンドでサーバーの再起動が必要になる場合があります。 + + + Restarting Apache once PHP is installed + + + + + + + 設定のよりよい管理方法 + + これまでのセクションでは、PHP はコアモジュールのみをインストールしました。 + 次のような追加モジュールが必要になる可能性が非常に高くなります。 + + MySQL + cURL + GD + などなど… + + これらのモジュールも dnf コマンドでインストールできます。 + + + 追加の PHP パッケージを一覧する方法 + + + + + + パッケージのリストには、php-cliphp-fpm、 + php-devel などの基本的な PHP コンポーネントや、多くの PHP + 拡張機能を含む数多くのパッケージが含まれています。拡張機能がインストールされると、 + それらのパッケージの依存関係を満たすために、 + 必要に応じて追加のパッケージが自動的にインストールされます。 + + + Install PHP with MySQL, GD + + + + + + DNF は、/etc/php/8.3/php.ini/etc/php/8.3/conf.d/*.ini + などのさまざまな &php.ini; 関連ファイルに適切な行を自動的に追加し、 + 拡張子に応じて extension=foo.so のようたエントリを追加します。 + ただし、これらの変更の有効化にするには、Web サーバー (Apache など) を再起動しなければなりません。 + + + + diff --git a/install/unix/index.xml b/install/unix/index.xml index 31a02049c2..af443fc637 100644 --- a/install/unix/index.xml +++ b/install/unix/index.xml @@ -1,184 +1,44 @@ - + - - Unix システムへのインストール - - 本章では、UNIX 系のシステムへの PHP のインストールと設定に関する - 手引きを示します。使用するプラットフォームや Web サーバーについての - セクションを参照して、インストールを行ってください。 - - - このマニュアルでは、 - 「インストールにあたっての一般的な注意事項」 - の章で述べたように、Web 用のセットアップを主に扱います。加えて、 - コマンドラインから PHP を使うためのセットアップについても扱います。 - - - Unix プラットホームに PHP をインストールする方法はいくつかあり、 - コンパイルして設定するやり方と(コンパイル済みの)パッケージを使う方法とに - 別けられます。この手引きでは、コンパイルして設定する方法を主に取り上げます。 - Unix 系システムには、パッケージを用いるインストールシステムを持つものも多く、 - 一般的なセットアップを行うには、パッケージが役に立つでしょう。ただし、 - (セキュアサーバーや様々なデータベースドライバなど)少々特殊な機能が必要な場合、 - PHP や Web サーバーをビルドする必要が有るかもしれません。ソフトウエアの - ビルドに不慣れな場合は、必要な機能を含めてビルドされたパッケージを - 誰か他の人が作成済みでないかを調べてみると良いでしょう。 - - - コンパイルにあたって必要な知識とソフトウエアを以下に示します。 - - - - UNIX に関する基本的な知識 ("make" および C コンパイラを使える程度) - - - - - ANSI C コンパイラ - - - - - Web サーバー - - - - - 個別のモジュール関連のコンポーネント (GD や - PDF ライブラリなど) - - - - - - - Git から取得したソースや、自分でカスタマイズしたソースをビルドするには - さらにこれらが必要です。 - - - - autoconf: - - - - - PHP 7.3 以降: 2.68+ - - - - - PHP 7.2: 2.64+ - - - - - PHP 7.1 以前: 2.59+ - - - - - - - automake: 1.4+ - - - - - libtool: 1.4.x+ (ただし 1.4.2 は除く) - - - - - re2c: - - - - - PHP 8.3 以降: 1.0.3+ - - - - - PHP 8.2 以前: 0.13.4+ - - - - - - - bison: - - - - - PHP 7.4 以降: 3.0.0+ - - - - - PHP 7.3 以前: 2.4+ (Bison 3.x を含む) - - - - - - - - - PHP の初期設定および設定プロセスは、configure - スクリプトに与えられたコマンドラインオプションによりコントロールされます。 - ./configure --help とすると、 - オプションの一覧と簡単な解説が表示されます。 - 本マニュアルでは、オプションの種類ごとに別けて解説されています。 - PHP 本体のオプションの一覧は 付録 にまとめられています。 - 各拡張モジュール特有のオプションは、関数リファレンスのページに記述されています。 - - - - PHP の configure が完了していないと、 - 拡張モジュールや本体の実行ファイルのビルドができません。 - make コマンドの実行にあたっては、注意してください。 - configure がうまく行かず原因もよくわからない場合は、 - 問題が起きた場合 - についての章を参照ください。 - - - - - Unixシステム (OpenBSD や SELinux のような) によっては、 - セキュリティ上の理由で、 - メモリ上のページに書き込み可能属性と実行可能属性の両方を付与することを - 許可しないかもしれません。 - これは PaX MPROTECT とか W^X (Write XOR Execute) 防御と呼ばれています。 - しかしながら、この手のメモリマッピングは PCRE の JIT サポートに必要なので、 - PHP を PCRE の JIT サポート抜きでビルドする か、 - 何とかしてシステムが提供するホワイトリストに PHP のバイナリを入れなければならないでしょう。 - - - - - - Android ツール群を使った ARM 向けのクロスコンパイルには、今のところ対応していません。 - - - - - &install.unix.apache2; - &install.unix.nginx; - &install.unix.lighttpd-14; - &install.unix.litespeed; - &install.unix.commandline; - - &install.unix.openbsd; - &install.unix.solaris; - - &install.unix.debian; - - - + + Unix システムへのインストール + + Most Unix (and Linux) operating systems and distributions have a packaged + version of PHP and extensions available through their packaging system. + There are sections with basic information on installing PHP using those + systems. + + ほとんどの Unix (および Linux) オペレーティングシステムとディストリビューションには、 + パッケージシステムを通じて利用できるパッケージされたバージョンの PHP と拡張機能があります。 + これらのシステムを使用して PHP をインストールするための基本情報を記載したセクションがあります。 + + + 一部のディストリビューションには、バージョンや拡張機能などの幅広い選択肢があるパッケージを + 提供しているサードパーティのリポジトリもあります。 + + + PHP は、一部のアプリケーションサーバーのコンポーネントとしてインストールすることもできます。 + + + + + &install.unix.debian; + &install.unix.dnf; + &install.unix.openbsd; + + &install.unix.source; + + &install.unix.commandline; + &install.unix.apache2; + &install.unix.nginx; + &install.unix.lighttpd-14; + &install.unix.litespeed; + + &install.unix.solaris; + + - OpenBSD へのインストール + OpenBSD パッケージまたは ports からのインストール このセクションでは、PHP を OpenBSD に インストールする場合に固有の注意事項とヒントについて説明します。 diff --git a/install/unix/source.xml b/install/unix/source.xml new file mode 100644 index 0000000000..29109e98aa --- /dev/null +++ b/install/unix/source.xml @@ -0,0 +1,110 @@ + + + + + Unix および macOS システムでのソースコードからのインストール + + コンパイルに必要なソフトウェア: + + + GNU make + + + C コンパイラ (PHP 8.0.0 以降、C99 互換性を前提としています) + + + Web サーバー + + + モジュールごとに必要なコンポーネント + (GDPDF ライブラリなど) + + + + + + Git ソースから直接ビルドする場合や、PHP のソースコードをカスタムしてビルドする場合、 + 以下の追加ツールが必要になる場合があります。 + + + + autoconf: + + + + PHP 7.3 以降: バージョン 2.68 以上 + + + PHP 7.2: バージョン 2.64 以上 + + + PHP 7.1 以前: バージョン 2.59 以上 + + + + + + re2c: + + + + PHP 8.3 以降: バージョン 1.0.3 以上 + + + PHP 8.2 以前: バージョン 0.13.4 以上 + + + + + + bison: + + + + PHP 7.4 以降: バージョン 3.0.0 以上 + + + PHP 7.3 以前: バージョン 2.4+ 以上 (3.x を含む) + + + + + + + + PHP の初期セットアップと構成プロセスは、configure + スクリプトのコマンドライン オプションを使用して制御されます。 + ./configure --help を実行すると、 + 使用可能なオプションの一覧と簡単な説明が表示されます。 + このマニュアルでは、さまざまなオプションを個別に説明しています。 + 中心となる configure オプションのリストはこちら + にありますが、さまざまな拡張機能ごとに固有のオプションについては + リファレンスページで説明されています。 + + + + 構成スクリプトが実行された後、make コマンドを使用して PHP + をビルドできます。このマニュアルの問題が起きた場合 + のページには、ビルドの問題の対処方法についての詳細情報があります。 + + + + + 一部の Unix システム (OpenBSD や SELinux など) では、 + PaX MPROTECT + または W^X violation + protection と呼ばれるセキュリティ上の理由から、書き込み可能ページ + と実行可能ページの両方のマッピングを禁止する場合があります。この種のメモリ + マッピングは PCRE の JIT サポートに必要であるため、PHP を + PCRE の JIT サポートなし + でビルドするか、システムが提供する何らかの手段でバイナリを + ホワイトリストに登録する必要があります。 + + + + + + いまのところ、Android ツールチェーンを使用した ARM のクロスコンパイルはサポートされていません。 + + + diff --git a/language-snippets.ent b/language-snippets.ent index 24d852e51a..a695bc0933 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -2350,6 +2350,14 @@ xattr はデフォルトでユーザー名前空間で処理を行いますが utf16, utf16le, utf16be, big5 および shiftjis.'> + + + サードパーティによるビルドは非公式であり、PHP プロジェクトによって + 直接サポートされません。発生したバグは、 + 公式ダウンロードページ + からのビルドで再現できなければ、非公式ビルドの提供元に報告してください。 + +'> From 0e4c817969984998bc5dde1404c40b62d372635b Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Fri, 1 Nov 2024 00:06:27 +0900 Subject: [PATCH 02/11] Specify C11 requirement since 8.4 https://github.com/php/doc-en/commit/64a010e59ce7e3c4cbbd72bbc307cfcce3d6e9bb --- install/unix/source.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/unix/source.xml b/install/unix/source.xml index 29109e98aa..f1d1765750 100644 --- a/install/unix/source.xml +++ b/install/unix/source.xml @@ -1,6 +1,6 @@ - + Unix および macOS システムでのソースコードからのインストール @@ -10,7 +10,7 @@ GNU make - C コンパイラ (PHP 8.0.0 以降、C99 互換性を前提としています) + C コンパイラ (PHP 8.0.0 以降は C99、PHP 8.4.0 以降は C11 互換性が必須) Web サーバー From 6a1d7b25c1cfa4de390d03fd21240ffa8982154c Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Fri, 1 Nov 2024 01:59:34 +0900 Subject: [PATCH 03/11] fixup! Move/rewrite much of the macOS and Unix install instructions --- install/unix/source.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/unix/source.xml b/install/unix/source.xml index f1d1765750..8a96ec8aab 100644 --- a/install/unix/source.xml +++ b/install/unix/source.xml @@ -84,7 +84,7 @@ 構成スクリプトが実行された後、make コマンドを使用して PHP - をビルドできます。このマニュアルの問題が起きた場合 + をビルドできます。マニュアルのインストールについてのよくある質問 のページには、ビルドの問題の対処方法についての詳細情報があります。 From 3792908a0b4483499a1264d56261339f9e0ab206 Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Fri, 1 Nov 2024 02:03:17 +0900 Subject: [PATCH 04/11] fixup! Move/rewrite much of the macOS and Unix install instructions --- install/unix/debian.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/unix/debian.xml b/install/unix/debian.xml index 646b68507b..d61d578b48 100644 --- a/install/unix/debian.xml +++ b/install/unix/debian.xml @@ -3,7 +3,7 @@ - Debian GNU/Linux および関連ディストリビューションのパッケージからののインストール + Debian GNU/Linux および関連ディストリビューションのパッケージからのインストール このセクションでは、Debian GNU/Linux に PHP をインストールする際の注意事項とヒントについて説明します。 From c570ad34c2219003b65759bd9ffb113a7544f2f0 Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Fri, 1 Nov 2024 02:40:10 +0900 Subject: [PATCH 05/11] Fix DocBook 5.2 RelaxNG violations https://github.com/php/doc-en/commit/f86cc1c4bb04f50baf4764d7616a819fe6ca840f --- reference/dom/domnamednodemap/getnameditem.xml | 14 +++++--------- reference/dom/domnodelist/item.xml | 4 +--- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/reference/dom/domnamednodemap/getnameditem.xml b/reference/dom/domnamednodemap/getnameditem.xml index ada9df5e62..2d5c827506 100644 --- a/reference/dom/domnamednodemap/getnameditem.xml +++ b/reference/dom/domnamednodemap/getnameditem.xml @@ -1,6 +1,6 @@ - + DOMNamedNodeMap::getNamedItem @@ -58,9 +58,7 @@ $id = $doc->firstChild->attributes->getNamedItem('id'); - - 配列の文法を使ってもアクセスできます: - + 配列構文でアトリビュートにアクセスする: firstChild->attributes['id']; &reftitle.seealso; - - - DOMNamedNodeMap::getNamedItemNS - - + + DOMNamedNodeMap::getNamedItemNS +