MAMPで環境構築✏
使用OS:mac(M1)
MAMP/XAMPPはPCに開発環境を作れるソフトウェアのパッケージ。
MAMPはmacと相性が良くて、XAMPPはWindowsと相性が良い。
■MAMP
「Macintosh」+「Apache」+「MySQL」+「PHP」を合わせた略で、
MAMPをインストールすれば上記の内容でwebサーバー、DBサーバーの環境が整う🤹♀️
使用PCがWebサーバーとなる。
(ちなみにXAMPPは「Linax」+「Apache」+「MySQL」+「PHP」)
■実務録
会社ではWindowsを使用している方が多く、自分はMac(M1)を使用してたので環境構築に詰まったところをメモする。
やること
・既存プログラムを自分のローカル環境に持ってくる。
・自分のローカル環境でWebサイトを見れるようにする。
手順
①MAMPのインストール
②MAMPの起動
③MAMPとPHPアプリ(ソースコードのファイル)を繋げる
■②MAMPの起動でちょっと詰まったところ
MAMPの環境構築方法は沢山ころがっていたので割とできたけど、
インストールしたMAMPアプリを起動してエンジン選択で、
「Nginx」ではwebサイトを開くことができたけど、「Apache」ではwebサイトが開くことができなかった。
→ 解決方法
PHPのバージョンを変更したら「Apache」で開くことができた。
MAMPアプリ画面に表示されるPHPバージョンは、/Applications/MAMP/binにある最新上位2つのPHPバージョンディレクトリのみが選択肢として表示されているので、PHPバージョンフォルダ名の頭に「__」など何か付けての名前変更する)
■③MAMPとPHPアプリ(ソースコードのファイル)を繋げる
ブラウザでPHPファイルを開くには、アプリケーションをからMAMPを開いてhtdocsフォルダに開きたいフォルダを設置する。
(/Applications/MAMP/htdocs/にPHPフォルダを置く)
・htbocsには何個もPHPフォルダを置くことができる。
ドキュメントルートとは
MAMP/htdocs=MAMPのドキュメントルート
ドキュメントルートとはwebサーバーが最初に読み込むファイルのこと。
ドキュメントルートに設定されたフォルダ内にあるindex.htmlやindex.phpなどのファイルが1番最初に読み込まれる。
ここで問題!
PHP Fatal error: require_once(): Failed opening required '/var/www/html/××××/××××/××××/~~~~
ソースコードには沢山include_once("/var/www/html/×××××)
が記載されていた。
__DIR__
が使用されていないので、サーバーのルートそのまま使用されることになる🥲
MAMPの場合、サーバーのドキュメントルートは/Applications/MAMP/htdocs/
なので、includeのパスと合わない。。。。!
mac内に /var/www/html を作成してファイルを配置する or シンボリックリンクを作成する必要がある。けど、自分のPCでファイル設置してると気にかけることとか多くなって複雑になりかねない。
Dockerでは仮想空間でドキュメントルートを自由に決めれるので、Dockerを使って環境構築し直すことにした。🙃
■ドキュメントルートはOSやWebサーバの設定によって異なる
-
/var/www/html/
は、Linux(Ubuntu)における、Apacheのドキュメントルート -
¥C:xampp/htdocs/
は、XAMPP(windows)のドキュメントルート -
/Applications/MAMP/htdocs/
は、MAMP(mac)のドキュメントルート
他、詰まったエラー
PHP Parse error: syntax error, unexpected end of file in /Applications/MAMP/htdocs/×××××
index.phpでは変な箇所はないのに、上記エラーが出て詰まった。
MAMPのphp.iniファイルを開いて、
short_open_tag定義を2箇所、Off→Onに変更すると解決した。
(PHPアプリにphp.iniがある場合はそれも確認する)
Discussion