phpの設定って何をすれば完了?まとめてわかるphp設定について

こんにちは!独学プログラマー&ライターのつぶらやです。

プログラムには設定が多すぎる!

嘆いている皆さまの声が聞こえます。

phpをインストールしても、動かすまでには色々な設定が必要になります。

その中でも特に重要な部分、悩みそうな部分について今回は書いていこうと思います。

目次

phpインストール後にまず行う設定

phpのインストール後の重要な作業として設定があります。

それを行う先が、php.iniです。

phpをどうやって動かすかという様々な設定が書かれています。

早速、php.iniの設定方法や置き場所を見ていきましょう。

php.iniの場所

以下のような場所にあったり、なかったりします。

/etc/配下

何故ならばインストールされた場所によって変わってしまうからです。

phpがインストールされているサーバーで以下のコマンドを発行すると見つかります。

php --ini

結果

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
・
・
略

/etcの配下にある事がわかりました。

インストールしたばかりで、php.iniがない場合はひな型から作成します。
以下のような名前で存在しており、種類があります。

php.ini-development・・・(開発環境用)
php.ini-production・・・(本番環境用)

phpをインストールしたフォルダ内にひな形は存在していると思います。

以下コマンドをひな型があるフォルダ内で実行して、/etc配下にphp.iniをコピーします。

cp php.ini-development /etc/php.ini

これでphp.iniを修正する準備が整いました。

修正する箇所

修正する前にバックアップコピーを取ります。

何か設定ファイルを触る前に、必ずバックアップを取る癖をつけておきましょう。

変更箇所くらい覚えておける!と思っていても、中々どうして忘れてしまうのです…

cp /etc/php.ini /etc/php.ini.bk

php.iniを元に、php.ini.bkが出来ました。

バックアップが取れたところで、php.iniの設定に入っていきましょう。

環境によって修正が必要な箇所は違ってくるのですが、代表的な確認箇所を書いていきます。

日本語化

これは、きちんと修正しておかないと日本語が表示されません。

文字化けが起こる場合もあります。

まずphp_mbstring.dllを有効にします。

以下のように;が前についていた場合は、コメントアウト=無効になっています

;extension=php_mbstring.dll

以下のように修正します。

extension=php_mbstring.dll

続いて、以下の項目についてもコメントアウトしてください。

[su_table]

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto

[/su_table]

また=の後についている値が違っている場合は、表の値に修正してください。

エラーの設定

エラーをどのレベルで出力させるか、エラーファイルをどこに出力させるかの設定です。

[su_table]

error_reporting = E_ALL エラー表示のレベルの設定。左の例はすべてのエラーを表示します。
display_errors = On Onの場合ブラウザ上にエラーを表示させる。

[/su_table]

phpのエラーについて、詳しくは以下を参照してください。

反映方法

php.iniを変更した場合は、サーバー(nginxやapacheなど)によって反映方法が違います。

apacheの場合

apacheを再起動します。

service httpd restart

nginxの場合

nginxを再起動する、ではダメなのが罠。

php-fpmを再起動しましょう。

systemctl restart php-fpm

以上でphp.iniの設定は反映されました。

nginxの設定と実践方法

例として、http://yyyyyyyy.com/のドキュメントルートのtest.phpを実行させたい場合のnginxの設定について書いていきます。

以下、サンプルコードです。また、nginxはインストールされているものとします。

①ドキュメントルートにtext.phpを配置

例として、text.phpというファイルを作成し、内容は以下にしてください。

<?php
echo "今日は晴れです";
?>

ドキュメントルートは、/var/www/ とします。

②www.confを修正

php-fpmの設定変更のためです。

場所は/etc/php-fpm.d/配下にあります。

以下のように変更してください。

変更前

user = apache
group = apache

変更後

group = nginx
user = nginx

③default.confを修正

/etc/nginx/conf.d/の配下にあります

変更前

root   /usr/share/nginx/html;
index  index.html index.htm;

#location ~ .php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}

変更後

root   /var/www/;
index  test.php;

location ~ .php$ {
     root           /var/www/;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  /var/www/$fastcgi_script_name;
     include        fastcgi_params;
}

④php-fpmを起動させる

以下のコマンドでphp-fpmを起動させます。

/etc/init.d/php-fpm start

⑤nginxを再起動

以下のコマンドでnginxを再起動させます

/etc/init.d/nginx restart

⑥text.phpにアクセス

http://yyyyyyyy.com/text.phpにアクセスしましょう。

結果

今日は晴れです

nginxの設定を変更して、目的のファイルの内容を表示させる事が出来ました。

cookieの設定

cookie(クッキー)とは、サーバーからブラウザに保存できる値の事です。

有効期限がくるまでは保存されるため、一度ブラウザを閉じても以前訪れた時の設定で使用することが出来ます。

cookieを設定する場合は、setcookie関数を使用します。

<?php
class cookieTest{
    function testCookie {
        setcookie("cookie_value", "今日は晴れでした!"); // クッキーに値を設定する
        var_dump($_COOKIE["cookie_value"]);
    }
}
?>
今日は晴れでした!

簡単にcookieに値を設定したり、値を読み込んだりできました。

まとめ

今回はphpの設定について色々お話しましたが、いかがだったでしょうか。

一口にphpの設定といっても色んな設定があります。

今回の記事の中にあなたの探していた情報があれば嬉しく思います。

それでは、また。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次