PHP

提供: ArchWiki
2016年1月7日 (木) 21:26時点におけるKusakata (トーク | 投稿記録)による版 (最新英語版に同期)
ナビゲーションに移動 検索に移動

関連記事

PHP は広く使われている多目的のスクリプト言語で、特にウェブ開発に適しており HTML に埋め込むことができます。

インストール

公式リポジトリから php パッケージをインストールしてください。

PHP スクリプトを普通の CGI として実行するには、php-cgi パッケージが必要です。

セットアップ

PHP はスタンドアロンで実行することもできますが、普通は Apache や nginx、lighttpd などの http サーバーと一緒に使われます。

設定

メインの PHP 設定ファイルは /etc/php/php.ini にあり豊富なドキュメントが揃っています。

date.timezone = Europe/Berlin
  • PHP のコードをデバッグするためにエラーを表示したい場合、/etc/php/php.inidisplay_errorsOn に変更してください:
display_errors=On
ヒント: 2015年11月22日以前までは、php-composer の設定は /usr/share/php-composer/php.ini とは別のファイルに記述されていました。

拡張

よく使われる PHP の拡張は公式リポジトリに入っています:

# pacman -Ss php-

gd

php-gd を使うには /etc/php/php.ini の次の行をアンコメント:

extension=gd.so
ヒント: /etc/php/php.ini を編集するのではなく /etc/php/conf.d ディレクトリから拡張を有効化したり設定することもできます (例: /etc/php/conf.d/gd.ini)。

imagemagick

imagemagick を使うには # pecl install imagick を実行してください。pecl バイナリは php-pear パッケージに含まれています。そして次を追加:

extension=imagick.so

pthreads

POSIX マルチスレッディングを使いたい場合、pthreads 拡張が必要になります。pecl を使って pthreads (http://pecl.php.net/package/pthreads) をインストールするにはスレッドセーフティフラグ --enable-maintainer-zts を付けてコンパイルされた PHP を使わなくてはなりません。元のパッケージにフラグをつけて再ビルドするのが一番簡単な方法になります。

手順は PHP pthreads extension のページに記載されています。

mcrypt

mcrypt モジュールが使いたい場合、php-mcrypt をインストールして /etc/php/php.iniextension=mcrypt.so をアンコメントしてください:

extension=mcrypt.so

PCNTL

PCNTL を使うことでサーバーサイドのマシンにプロセスを直接作成することができるようになります。これでやりたいことがやれるようになる一方、状況をぐちゃぐちゃにするパワーを PHP に与えることにもなります。そのため、他の便利なエクステンションと同じようにロードすることはできない PHP エクステンションです。この拡張を有効にするには (デフォルトでは有効になっていません) PCNTL を PHP に組み込んでコンパイルする必要があります。

MySQL/MariaDB

MariaDB に書かれている手順に従って MySQL/MariaDB をインストール・設定ください。

/etc/php/php.ini以下の行 をアンコメントします:

extension=pdo_mysql.so
extension=mysqli.so
警告: mysql.so は PHP 7.0 で 削除 されました。

ウェブスクリプト用に権限を抑えた MySQL ユーザーを追加することができます。また、/etc/mysql/my.cnf を編集して skip-networking 行をアンコメントすると MySQL サーバーはローカルホストからしかアクセスできなくなります。変更を適用するには MySQL の再起動が必要です。

ヒント: phpMyAdmin, Adminer, mysql-workbench などのツールをインストールしてデータベースを操作するのも良いでしょう。

PostgreSQL

PostgreSQL をインストール・設定したら、php-pgsql パッケージをインストールして /etc/php/php.ini の以下の行をアンコメントしてください:

extension=pdo_pgsql.so
extension=pgsql.so

Sqlite

Sqlite をインストール・設定したら、php-sqlite パッケージをインストールして /etc/php/php.ini の以下の行をアンコメントしてください:

extension=pdo_sqlite.so
extension=sqlite3.so

キャッシュ

PHP には2種類のキャッシュが存在します: opcode/bytecode キャッシュと userland/user data キャッシュです。両方を使うことでアプリケーションの速度を相当上げることができるため、できるかぎり有効にすることを推奨します。

  • Zend OPCacheopcode のキャッシュだけを行います。
  • APCuuserland のキャッシュだけを行います。

キャッシュを最適化するために、両方を有効にしてください。以下の #OPCache#APCu の両方を読むことで有効化できます。

OPCache

OPCache は標準の PHP ディストリビューションに付属しているため、OPCache は PHP 設定ファイルに以下の行を追加あるいはアンコメントするだけで有効化できます:

/etc/php/php.ini
zend_extension=opcache.so

PHP のウェブサイトにある 公式エントリ に OPCache のオプションのリストや推奨される設定が載っています。

警告: マニュアルの 推奨設定 を適用するときは、設定手順の下に書かれている 最初のコメント も注意深く読むようにしてください。設定によっては zend_mm_heap corrupted などのエラーが発生するようになってしまうことがあります。

APCu

APCu は php-apcu パッケージでインストールできます。/etc/php/conf.d/apcu.ini の以下の行をアンコメントするか、以下の行を PHP 設定ファイルに追加することで有効にします:

extension=apcu.so

APCu の作者は推奨される設定を 記述 しています:

  • apc.enabled=1apc.shm_size=32Mデフォルト値 なので設定しなくても問題ありません。
  • その一方 apc.ttl=7200多少効果がある ようです。
  • 最後に apc.enable_cli=1 はマニュアルでは 非推奨 になっていますが、ownCloud などソフトウェアによっては必須です。
ヒント: 上記の設定は APCu 専用の /etc/php/conf.d/apcu.ini あるいは PHP 設定ファイルに直接記述することができます。拡張を二回有効にするとシステムログにエラーが残るので止めてください。

開発ツール

Aptana Studio

Aptana Studio は PHP でのプログラミングやウェブ開発に向いている IDE です。aptana-studioAUR パッケージでインストールできます。現在のバージョン (3.2.2) には PHP デバッガは含まれていません。

Eclipse PDT

Eclipse PDT は Eclipse の PHP バージョンです。eclipse-php パッケージでインストールできます。詳しくは Eclipse を参照。

JavaScript サポートや DB クエリなどのプラグインも必要になるでしょう。

Komodo

Komodo は PHP+HTML+JavaScript の素晴らしい統合を提供する IDE です。Komodo Edit にはエディタだけが含まれています。

Netbeans

PHP を含む多数の言語に対応した完全な IDE です。デバッグ・リファクタリング・コードテンプレート・自動補完・XML 機能・ウェブデザイン・開発機能 (CSS の自動補完機能や PHP/JavaScript コードのヒント) などの機能があります。netbeans パッケージでインストールしてください。

PhpStorm

JetBrains PhpStorm は JetBrains の IntelliJ IDEA プラットフォームで作られた商用・クロスプラットフォームの PHP 向け IDE です。phpstormAUR パッケージでインストールできます。あるいは phpstorm-eapAUR で30日間のトライアル版を使えます。Jetbrains からは教育用のフリーライセンスをもらうことが可能です [1]

Zend Studio

Zend Studio は Eclipse ベースの公式 PHP IDE です。この IDE には自動補完・高度なコードフォーマット・WYSIWYG html エディタ・リファクタリング・db アクセスやバージョン管理の統合、さらに他の Eclipse プラグインで得ることができる Eclipse の機能全てが含まれています。AUR の zendstudioAUR パッケージでインストール可能です。

トラブルシューティング

PHP Fatal error: Class 'ZipArchive' not found

zip エクステンションが有効になっていることを確認してください。

$ grep zip /etc/php/php.ini
extension=zip.so

/etc/php/php.ini が適用されない

php.ini が適用されない場合、ini ファイルの名前が使用している sapi に合わせて変更されています。例えば uwsgi を使っている場合、ファイルの名前は /etc/php/php-uwsgi.ini になり、cli を使っている場合 /etc/php/php-cli.ini になります。

参照