目次
実現したい事
phpプロジェクトをDockerで開発しレンタルサーバーにアップロードしたい
githubリポジトリportfolioフォルダで管理(ローカル環境、本番環境でおなじ構成)
本番環境はさくらドキュメントルートのサブディレクトリ(名前はportfolio)
portfolioフォルダ内でsrc/public(公開ディレクトリ)とsrc/○○(非公開ディレクトリ)でセキュリティ
→.htaccessで制御
トップページへのアクセス
ローカル環境:localhostでportfolio/src/public/index.phpが表示
本番環境:https://siennahare23.sakura.ne.jp/portfolioでportfolio/src/public/index.phpが表示
環境変数を等セキュリティ
ディレクトリ構成
Webサーバーのドキュメントルートが src/public
ディレクトリに設定されていることを前提
例)
プロジェクトルート/
├── src/
│ ├── public/
│ │ ├── css/
│ │ │ └── style.css
│ │ ├── index.php
│ │ ├── article.php
│ │ ├── wordpress-posts.php
│ │ └── .htaccess
│ ├── includes/
│ │ └── header.php
│ └── config/
│ └── config.php
├── vendor/
├── composer.json
├── composer.lock
├── Dockerfile
└── docker-compose.yml
Windowsの場合は、以下のPowerShellコマンドを使用でディレクトリ構造を出力できるので、はりつけで生成AIに状況を共有できます
Get-ChildItem -Recurse -Depth 3 | Where-Object { $_.PSIsContainer } | Select-Object FullName | ForEach-Object { $_.FullName.Replace($PWD.Path, "") }
ApacheのDocumentRootの設定と.htaccessのアクセス制御
DocumentRootの特徴:
- Apacheの設定ファイル(通常はhttpd.confやapache2.conf)で指定します。
- ウェブサーバーが公開するファイルシステムのルートディレクトリを定義します。
- このディレクトリ以下のファイルのみがウェブを通じてアクセス可能になります。
- サーバー全体またはバーチャルホスト単位で設定します。
.htaccessの特徴:
- ディレクトリ単位で配置する設定ファイルです。
- DocumentRoot内の特定のディレクトリやファイルへのアクセスをより細かく制御できます。
- URLリライティング、リダイレクト、アクセス制限などの設定が可能です。
- サーバー設定を変更せずに、特定のディレクトリの動作を変更できます。
疑問点
src/public
ディレクトリがウェブルートとして機能するよう設定する方法
・Dockerfileでの設定
・.htaccessでの設定
・レンタルサーバーでも機能するのか