Dockerを使ったZend Framework1系の環境構築

### ディレクトリ構成
--

/html/ここにzend1を解凍する
/mysql
./docker-compose.ymlなど

--

ダウンロードしたzend1を解凍し、こちらのサイトを参考にディレクトリを整えました。
大変参考になり助けてもらいました。

[Zendがバージョン１と２\(zf2\)でぜんぜん違い、初期画面を出すにも大変な件 \- ウィリアムのいたずらの開発？日記](https://blog.goo.ne.jp/xmldtp/e/488ba48f3d3dccb631f2265c979064be)

2020年現在においてzend１をDockerで環境構築する情報が少なく、いろいろ試行錯誤しました。
そのファイル内容などを書きました。

### 注意
Zend Framework１のサポートは切れていますので、ご注意ください。

### 準備するファイルたち

```docker-compose.yml
version: "3"

services:
  php:
    build: .
    volumes:
      - "./php.ini:/usr/local/etc/php/php.ini"
      - "./html:/var/www/html"
      - "./000-default.conf:/etc/apache2/sites-available/000-default.conf"
      - "./.htaccess:/var/www/html.htaccess"
    ports:
      - 8080:80
    tty: true
  mysql:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test
```

```Dockerfile
FROM php:5.6-apache

RUN apt-get update
RUN apt-get install -y vim default-mysql-client
RUN docker-php-ext-install pdo_mysql
```

```php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

; UNIX: "/path1:/path2"
include_path = ".:/var/www/html/library"

extension=php_pdo.dll
extension=php_pdo_mysql.dll
```

```000-default.conf
<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
```

```.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^api/(.*)$ index.php
</IfModule>
```

Apacheのmod_rewriteの設定がよくわからずつまりました。

```bash
docker-compose up -d
docker-compose exec php a2enmod rewrite
docker-compose exec php service apache2 restart
docker-compose restart
```

### 参考サイト
[Manual \- Documentation \- Zend Framework](https://framework.zend.com/manual/1.12/ja/learning.quickstart.create-project.html)

[超絶簡単！？Zend Framework 1\.xインストール方法 \- Qiita](https://qiita.com/kakky0418/items/d12b98d6ea56cfd1a6d4)

[Dockerを使ってLaravel開発環境構築\(Apache\) \- Qiita](https://qiita.com/A-Kira/items/9a03d7b230741ed7b1de)

[Apacheのmod\_rewrite設定メモ \- Qiita](https://qiita.com/Y-Kanoh/items/42af3c2f635653c4eaf7)