前回、Eclipse Cheでapacheを実行して簡単なページの表示を実施しましたが、今回はその続きになります。
通常、ロジック部分のPHPファイルは公開しないと思います。ここでは公開ファイルと非公開ファイルを分けることができることを確認していきたいと思います。
準備
事前にワークスペースを用意しておいてください。
PHP with MySQL
「PHP with MySQL」ををベースに試して行こうと思います。
Devfile
Devfileを確認すると以下のコマンドが用意されていることが分かります。
- Start Apache Web Server
- Stop Apache Web Server
- Restart Apache Web Server
- Configure database
- Configure Apache Web Server DocumentRoot
このうち、「Configure database」は今回の話とは関係ないので無視します。
他のコマンドは前回と同じに見えますが「Configure Apache Web Server DocumentRoot」は以下の差分があります。
- 前回:DocumentRoot /projects/php-web-simple
- 今回:DocumentRoot /projects/crud-php/public
プロジェクト名が違うので、その分の差分もありますが、「/public」というディレクトリが指定されている点が前回と大きく異なっている部分です。
apacheの起動(DocumentRootの構成なし)
今回もまずはそのままapacheを起動してみます。
最初のページ
画面を表示するところまでの流れは前回と同じなので省略します。以下のような画面が表示されました。
public
publicフォルダを表示してみます。ますはプロジェクトのフォルダ(crud-php)を選択します。
画面が遷移するので「public」を選択してみます。
以下のような画面が表示されました。
public以外
public以外のファイルにアクセスできるか確認してみます。
Eclipse CheのPREVIEWで画面表示している場合は、一度リロードしてください。
別ウィンドウで表示している(ブラウザで表示している)場合は、ブラウザの戻るで最初のページまで戻ってください。
最初のページまで戻ったらプロジェクトのフォルダを先ほどと同様に選択し、適当なファイルを選択します。どのファイルでも良いのですが、エラー表示が出て分かりやすいので「install.php」を選択することにします。
すると以下のような画面が表示されました。
apacheの起動(DocumentRootの構成後)
次にDocumentRootの構成の後にapacheを起動してみます。
画面表示(public)
DocumentRoot構成と画面の表示までの流れは前回の記事を見てください。今回は以下のような画面が表示されました。
DocumentRoot構成前のpublicフォルダと同じ画面が表示されていることが分かります。
public以外
public以外のファイルにアクセスできるか確認してみます。
publicフォルダからの相対パスを考えて、「/../install.php」をつけてアクセスしてみます。
以下のようなURLです。
- https://xxxxxx.xxxxxxxxxx.com/../install.php
アクセスしてみると以下の画面が表示されました。
そもそも「/../install.php」のような相対パスを含んだURLは「/install.php」と変換されるようです。
他にも以下のようなURLも試してみましたが、いずれもアクセスできませんでした。
- https://xxxxxx.xxxxxxxxxx.com/projects/crud-php/install.php
- https://xxxxxx.xxxxxxxxxx.com/crud-php/install.php
公開ファイル(public)と非公開ファイル(public以外)を分けることができるできることが確認できました。
コメント