0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker httpdイメージで.htaccessを有効にする

Posted at

はじめに

.htaccessを使いたくてDocker apache .htaccessと検索かけてみたらphp-apacheイメージ使った記事ばっかり出てきた、phpは使ってないんだけどなーな人向けです

環境

  • Docker version 20.10.14
  • docker-compose version 1.29.2

とりあえず環境作る

.
├── docker-compose.yml
├── index.html
└── .htaccess
version: "3"
services:
  web:
    image: httpd:2.4
    ports:
    - "8080:80"
    volumes:
    - .:/usr/local/apache2/htdocs/
    working_dir: /usr/local/apache2/htdocs/

コンテナを起動させるとindex.htmlの内容が表示されます。が、.htaccessは反映されません。デフォルトでは.htaccessが無効になっているようです。

.htaccessを有効にする

httpd.confを変更できるようにする

.htaccessを有効にするには設定ファイルhttpd.confを変更する必要があります。httpd.confは/usr/local/apache2/conf/にあるので、一旦中身をコピーしてローカルhttpd.confを作ります。

.
├── docker-compose.yml
├── index.html
├── .htaccess
└── httpd.conf <-- コンテナ内のhttpd.confの中身コピーして追加

docker-compose.ymlいじってローカルとコンテナ内のhttpd.confが同期するようにします

version: "3"
services:
  web:
    image: httpd:2.4
    ports:
    - "8080:80"
    volumes:
    - .:/usr/local/apache2/htdocs/
    - ./httpd.conf:/usr/local/apache2/conf/httpd.conf # <-- 追加
    working_dir: /usr/local/apache2/htdocs/

これでhttp.confを変更できるようになりました。

http.conf変更する

.htaccessを有効にするために必要な変更は2箇所

#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so <-- コメントアウト外す

<IfModule unixd_module>
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All <-- NoneからAllに変更

これで.htaccessが有効になります。めでたい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?