Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions install/fpm/index.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 04210d535db52aed64b82572817f059059ddfebc Maintainer: takagi Status: ready -->
<!-- EN-Revision: 7efe863bc4b65788f652e3d9eff27941b1a74540 Maintainer: takagi Status: ready -->
<chapter xml:id="install.fpm" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>FastCGI Process Manager (FPM)</title>
&fpm.intro;
Expand Down Expand Up @@ -43,10 +43,10 @@
</para>
</listitem>
<listitem>
<para>
<simpara>
<function>fastcgi_finish_request</function> - 何か時間のかかる処理 (動画の変換や統計情報の処理など) を継続しながら
リクエストを終了させてすべてのデータを出力させるための特殊な関数
</para>
</simpara>
</listitem>
<listitem>
<para>
Expand All @@ -67,6 +67,18 @@
</itemizedlist>
</para>

<warning>
<simpara>
信頼できないネットワークから php-fpm に到達できるようにしてはいけません。
FastCGI 接続を確立できるクライアントは、そのリクエストで使われる設定を
<link linkend="ini.auto-prepend-file">auto_prepend_file</link> も含めて制御できるので、
任意のコードを実行できます。
アクセスの制限は、
<link linkend="listen">listen</link> ディレクティブと
<link linkend="listen-allowed-clients">listen.allowed_clients</link> ディレクティブで行います。
</simpara>
</warning>

&install.fpm.install;
&install.fpm.configuration;
</chapter>
Expand Down
113 changes: 113 additions & 0 deletions install/unix/alpine.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a5899391ef91a4d42bca9495c8a1d323d38f23a Maintainer: KentarouTakeda Status: ready -->
<sect1 xml:id="install.unix.alpine" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Alpine Linux でのパッケージからのインストール</title>
<simpara>
PHP はソースコードからインストールできますが、<command>apk</command>
パッケージマネージャを使う Alpine Linux とその派生ディストリビューションでは、
パッケージからインストールすることもできます。
</simpara>
&warn.install.third-party-support;
<simpara>
パッケージは <command>apk</command> パッケージマネージャでインストールできます。
</simpara>
<sect2 xml:id="install.unix.alpine.packages">
<title>パッケージのインストール</title>
<simpara>
Alpine Linux の PHP パッケージは、名前にメジャーバージョン番号を含みます
(例: PHP 8.3 なら <literal>php83</literal>)。以下の例では、<literal>83</literal>
を、お使いの Alpine Linux のリリースで利用できる PHP のバージョンに読み替えてください。
</simpara>
<simpara>
パッケージをインストールする前に、<command>apk update</command> を実行して、
パッケージインデックスが最新であることを確認してください。
</simpara>
<example xml:id="install.unix.alpine.example">
<title>Alpine インストールの例</title>
<programlisting role="shell">
<![CDATA[
# apk add php83
]]>
</programlisting>
</example>
<simpara>
Alpine は、Web サーバー用の PHP の設定を自動的には行いません。
FastCGI 構成の場合は、<literal>php83-fpm</literal> をインストールし、
OpenRC サービス <literal>php-fpm83</literal> を有効にします
(パッケージ名とサービス名とで、バージョン番号の付く位置が異なる点に注意してください)。
たとえば、次のようにします。
</simpara>
<example xml:id="install.unix.alpine.example2">
<title>PHP-FPM の有効化と起動</title>
<programlisting role="shell">
<![CDATA[
# apk add php83-fpm
# rc-update add php-fpm83 default
# rc-service php-fpm83 start
]]>
</programlisting>
</example>
</sect2>
<sect2 xml:id="install.unix.alpine.config">
<title>設定のよりよい管理方法</title>
<para>
ベースパッケージでインストールされるのは、コアの拡張モジュールだけです。
追加の拡張モジュール、たとえば
<simplelist type="inline">
<member><link linkend="book.mysql">MySQL</link></member>
<member><link linkend="book.curl">cURL</link></member>
<member><link linkend="book.image">GD</link></member>
<member>など</member>
</simplelist>
は、個別のパッケージとしてインストールできます。
</para>
<example xml:id="install.unix.alpine.config.example">
<title>利用可能な PHP パッケージを検索する</title>
<programlisting role="shell">
<![CDATA[
# apk search php83
]]>
</programlisting>
</example>
<simpara>
パッケージの一覧には、CLI や FPM のほか、多くの拡張モジュールが含まれています。
拡張モジュールをインストールすると、その依存関係は自動的に解決されます。
</simpara>
<example xml:id="install.unix.alpine.config.example2">
<title>PHP と MySQL、GD のインストール</title>
<programlisting role="shell">
<![CDATA[
# apk add php83-mysqli php83-gd
]]>
</programlisting>
</example>
<simpara>
拡張モジュールはインストール時に自動的に有効になるので、&php.ini;
を手動で編集する必要はありません。設定ファイルは
<filename>/etc/php83/conf.d/</filename> に置かれます。
新しい拡張モジュールをインストールしたあとは、変更を反映するために PHP-FPM
(もしくは Web サーバー) を再起動する必要があります。
</simpara>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
4 changes: 3 additions & 1 deletion install/unix/index.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4cb53ecbd763db2db808e90d7eda63afb380e6df Maintainer: haruki Status: ready -->
<!-- EN-Revision: 5a5899391ef91a4d42bca9495c8a1d323d38f23a Maintainer: haruki Status: ready -->
<!-- Credits: fujimoto, hirokawa, yuw, haruki, shimooka, mumumu -->
<chapter xml:id="install.unix" xmlns="http://docbook.org/ns/docbook">
<title>Unix システムへのインストール</title>
Expand All @@ -27,6 +27,8 @@
<!-- distribution specific nodes -->
&install.unix.debian;
&install.unix.dnf;
&install.unix.alpine;
&install.unix.pacman;
&install.unix.openbsd;
<!-- general from-source instructions -->
&install.unix.source;
Expand Down
111 changes: 111 additions & 0 deletions install/unix/pacman.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f0f5d8646b835280b44b1d95277e3881be931cd9 Maintainer: KentarouTakeda Status: ready -->
<sect1 xml:id="install.unix.pacman" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Arch Linux でのパッケージからのインストール</title>
<simpara>
PHP はソースコードからインストールできますが、pacman を使用する Arch Linux
やその派生ディストリビューションでは、パッケージからインストールすることもできます。
</simpara>
&warn.install.third-party-support;
<simpara>
パッケージは <command>pacman</command> コマンドでインストールできます。
</simpara>
<sect2 xml:id="install.unix.pacman.packages">
<title>パッケージのインストール</title>
<simpara>
まず、<link linkend="install.unix.apache2">Apache</link> には
<literal>php-apache</literal>、FastCGI 構成には <literal>php-fpm</literal>
など、他の関連パッケージが必要になる場合があることに気をつけてください。
</simpara>
<simpara>
パッケージをインストールする前に、システムを最新の状態にしておくことをお勧めします。
通常、これは <command>pacman -Syu</command> コマンドを実行して行います。
</simpara>
<example xml:id="install.unix.pacman.example">
<title>Apache と組み合わせる pacman インストールの例</title>
<programlisting role="shell">
<![CDATA[
# pacman -S php php-apache
]]>
</programlisting>
</example>
<simpara>
pacman は PHP の依存パッケージをすべて自動的にインストールします。
変更を有効にするには、Web サーバーの再起動が必要になる場合があります。
たとえば、次のようにします。
</simpara>
<example xml:id="install.unix.pacman.example2">
<title>PHP のインストール後に Apache を再起動する</title>
<programlisting role="shell">
<![CDATA[
# systemctl restart httpd
]]>
</programlisting>
</example>
</sect2>
<sect2 xml:id="install.unix.pacman.config">
<title>設定のよりよい管理方法</title>
<para>
ここまでのセクションでは、PHP のコアモジュールだけをインストールしました。
おそらく、次のような追加モジュールもインストールしたくなることでしょう。
<simplelist type="inline">
<member><link linkend="book.mysql">MySQL</link></member>
<member><link linkend="book.curl">cURL</link></member>
<member><link linkend="book.image">GD</link></member>
<member>など</member>
</simplelist>
これらも <command>pacman</command> コマンドでインストールできます。
</para>
<example xml:id="install.unix.pacman.config.example">
<title>追加の PHP パッケージを一覧する方法</title>
<programlisting role="shell">
<![CDATA[
# pacman -Ss php
]]>
</programlisting>
</example>
<simpara>
パッケージのリストには、<literal>php-gd</literal>、<literal>php-intl</literal>、
<literal>php-sqlite</literal> などの PHP 拡張モジュールを含む数多くのパッケージが含まれています。
拡張モジュールがインストールされると、それらのパッケージの依存関係を満たすために、
必要に応じて追加のパッケージが自動的にインストールされます。
</simpara>
<example xml:id="install.unix.pacman.config.example2">
<title>PHP と GD のインストール</title>
<programlisting role="shell">
<![CDATA[
# pacman -S php-gd
]]>
</programlisting>
</example>
<simpara>
拡張モジュールのパッケージをインストールした後、それを有効にするには
<filename>/etc/php/php.ini</filename> 内の対応するエントリのコメントを解除しなければなりません。
たとえば <literal>php-gd</literal> をインストールした後は、
<filename>/etc/php/php.ini</filename> の <literal>extension=gd</literal>
の行のコメントを解除します。これらの変更を有効にするには、Web サーバー (Apache など)
の再起動が必要です。
</simpara>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
17 changes: 16 additions & 1 deletion reference/datetime/dateinterval.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 603435cd84951fc720eded819c62ef2466d21b5c Maintainer: takagi Status: ready -->
<!-- EN-Revision: 18c0977d5ec59f4207cb0b306c5473508bf640ed Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<reference xml:id="class.dateinterval" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">

Expand Down Expand Up @@ -31,6 +31,21 @@
2つの date/time オブジェクトの差分を
<methodname>DateTimeInterface::diff</methodname> 経由で計算することです。
</para>
<simpara>
間隔を date/time オブジェクトに加算あるいは減算するとき、
間隔の時刻部分 (時、分、秒、マイクロ秒) がどう適用されるかは、
その間隔がどうやって作られたかによって決まります。
<methodname>DateInterval::__construct</methodname>
で作られた間隔の場合、時刻部分は経過時間を表します。
一方、<methodname>DateInterval::createFromDateString</methodname>
で作られた間隔や <methodname>DateTimeInterface::diff</methodname>
が返した間隔の場合は、時刻部分が個々のコンポーネントの値をインクリメント/デクリメントします。
日付部分 (年、月、日) は、常に個々のコンポーネントの値をインクリメント/デクリメントします。
したがって、両者の結果が異なるのは、
間隔の時刻部分がタイムゾーンの遷移をまたぐ場合だけです。
<link linkend="datetime.examples-arithmetic">日付/時刻 の算術</link>
を参照ください。
</simpara>
<para>
日付の間隔を比較する良い方法は定義されていません。
よって、<classname>DateInterval</classname>
Expand Down
Loading
Loading