こんにちは!独学プログラマー&ライターのつぶらやです。
プログラムには設定が多すぎる!
嘆いている皆さまの声が聞こえます。
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の設定といっても色んな設定があります。
今回の記事の中にあなたの探していた情報があれば嬉しく思います。
それでは、また。