そーくのつれづれぶろぐ

web系エンジニアの勉強したことなど

【メモ】Macでapache+php環境の構築(phpinfo()表示まで)

ゴール

PHPほぼ未学習なので、生のPHPでのwebアプリプログラミングでPHPに慣れる、ための環境を準備する

環境

  • macOS Mojava 10.14.5
    • (おそらくプリインストールされてる)php7系
    • (おそらくプリインストールされてる)apache

手順

だいぶ自信はないが、別途拡張モジュールをDLする作業は必要はない。 apacheの拡張モジュール(libphp7.so)もすでにDL済でかつ、apache.confコメントアウトでロード文が用意されている。 初学者にはありがたい。

  1. apache.confに以下内容を記述
  2. apachephpを実行させる拡張モジュールをロードする(LoadModule php7_module [path])
  3. ルートアクセス時のデフォルトページを設定(DirectoryIndex)
  4. MIMEphpを登録(AddType application/x-httpd-php .php)
  5. php.iniの場所を指定(PHPINIDir)
  6. (任意)ルートディレクトリ設定

  7. apacheを再起動(sudo apachectl restart)

  8. ルートディレクトリにphpinfo()を記載したphpファイル(phpinfo.php)を作成
  9. http://localhost/phpinfo.phpにアクセス
  10. phpinfo表示される!

雑感

  • サーバ起動スクリプトはいつもCentOS6系の/etc/init.d/*でやっていたのでapachectlほぼ初めてで少し新鮮だった(CentOS7はよなれておかないと...とも思った)
  • 設定ファイルどこかわからなくて探すのに時間がかかった
    • httpd.conf ... /etc/apache2/httpd.conf
    • php.ini ... /etc/php.ini.defaultphp.iniはいなかったので左記をコピペして作成。*php環境変数のパス情報はphp -iでわかる**のでこのコマンドを覚えていたら汎用性高いし良さそう
  • mac標準インストールのhttpdの設定ファイルや拡張モジュールなどの/sbin:/bin実行プログラム以外のものは基本的にUnix系共通の、/etc/にいたはいたが、サーバを再起動したりすると/private/という基本的に書き込みできないディレクトリにコピーされて、そのコピーしたやつで実行する、というようにして直接いじらないようにしているようだった。それをする理由がよくわからず腑に落ちない。低レイヤはなるべくユーザに使わせたくないっていうMacのあれなのか。
  • 1年前くらいに下の本を読んでいたのが今回大きかった。設定ファイルをいじるのに未知への漠然とした不安がないのはよかった。この本読み返したいな...でも今じゃないな
  • postgresの設定は次のときにやろう

参考