Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

XAMPP アレンジ

IED

WSL2

道具箱

リポジトリ編

フレームワーク編

公開ソフトウェア

メタ
リンク


このページへのアクセス
今日: 2 / 昨日: 3
総計: 1331

apricot:public

文書の過去の版を表示しています。


Apricot 公開フォルダ

y2sunlight 2020-03-24

Apricot に戻る

関連記事

以下の作業はEclipseで行います。


公開フォルダの作成

以下に示すようにプロジェクトフォルダ下に、公開用のフォルダ public を作成し、その下に4つのフォルダ(css,img,js,resources)と2つの空のファイル(.htaccess,index.php)を作成します。

/apricot

apricot [プロジェクト]
 |
 ├── public [公開フォルダ]
 |    |
 |    ├── css/        [css保存用]
 |    ├── img/        [画像保存用]
 |    ├── js/         [JavaScript保存用]
 |    ├── resources/  [ライブラリリソース保存用]
 |    ├── .htaccess   [Apacheの設定]
 |    └── index.php   [フロントコントローラ]


.htaccess

アプリケーションへの全てのリクエストを1つのフロントコントローラ(index.php)で処理する為に、.htaccess を以下のように編集します。

apricot/public

.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
</IfModule>

この設定では、ApacheのRewriteEngineを有効にして、publicフォルダ下に実在しないファイル及びフォルダに対する全てのリクエストをindex.phpに転送しています。詳しくはApacheのマニュアルを参照して下さい。


index.php(暫定版)

以下にように index.php を編集します。

/apricot

index.php
<?php
//-------------------------------------------------------------------
// オートローダーの登録
//-------------------------------------------------------------------
require dirname(__DIR__).'/vendor/autoload.php';
 
//-------------------------------------------------------------------
// パスの設定
//-------------------------------------------------------------------
$project_path = dirname(__DIR__);
$public_path = __DIR__;
 
//-------------------------------------------------------------------
// Debug Write
//-------------------------------------------------------------------
header("Content-type: text/plain; charset=UTF-8");
 
echo "project_path : {$project_path}\n";
echo "public_path : {$public_path}\n";
echo "\n";
echo "METHOD : {$_SERVER['REQUEST_METHOD']}\n";
echo "URI : {$_SERVER['REQUEST_URI']}\n";

今の index.php では以下の事を行っています。

  • オートローダーの登録
  • プロジェクトパスの設定
  • 公開パスの登録

こられ全ての設定は、index.phpの存在するフォルダからの相対パスで行われていいる点に注目して下さい。これは、公開フォルダとプロジェクトフォルダの関係が相対的に表現できる場所であれば、どこにでも公開フォルダを設定できることを示しています(vendorフォルダはプロジェクトフォルダの直下にあることが決められています)。

通常、プロジェクトフォルダはユーザからアクセスできない場所に設置されます。しかし同時に、これは必ずしもプロジェクトフォルダの直下に公開フォルダがなくてもよいことも意味しています。例えば以下のような構成も可能です。

 ┌── apricot [プロジェクトフォルダ]
 |
 ├── public [公開フォルダ]
 ┌── apricot [プロジェクトフォルダ]
 |
 ├── html
 |    |
 |    └── public [公開フォルダ]

index.phpの起動

ブラウザ上で以下のURLにアクセスしてみて下さい。

http://localhost/ws2019/apricot/public/home

次のように表示されます:

project_path : D:\usr\ws2019\apricot
public_path : D:\usr\ws2019\apricot\public

METHOD : GET
URI : /ws2019/apricot/public/home


コメント

コメントを入力. Wiki文法が有効です:
 
apricot/public.1587997819.txt.gz · 最終更新: 2020/04/27 23:30 by y2sunlight