はじめに
- PHP 5.3.3 のサーバで動いている 1 ファイルの PHP を修正したい。
- Composer を使っていなかったが、使いたい。
- 手元のローカル開発環境は PHP 7.3
このような環境で、開発をするときの注意事項がわかりましたので、ノートいたします。
このような環境で、開発をするときの注意事項がわかりましたので、ノートいたします。
docs/README.md at master · docker-library/docs を見てみても、2019年9月3日現在、 PHP 5.3 のイメージはありません。
でも、古いサーバの PHP をメンテしたい時、 PHP 5.3 が欲しいのです。そこで、 Docker イメージを作ってみました。
また、古いサーバの古い PHP を、 Composer を使って管理するようにもしたいので、 Composer も Docker イメージに含めるようにしました。
composer update --help
から抜粋です。
The update command reads the composer.json file from the current directory, processes it, and updates, removes or installs all the dependencies.
カレントディレクトリの composer.json を読み込み、その内容を実行し、依存パッケージのアップデート、インストールまたは削除を行う。
--lock Only updates the lock file hash to suppress warning about the lock file being out of date.
無効となってしまった lock ファイルの警告を抑えるために、 lock ファイルの hash の更新を行う。
.
を指定する。composer create-project --prefer-dist laravel/laravel . "5.5.*"
# Composer の情報を表示 docker run --rm -it -v $PWD:/app composer:latest composer # Comoser の実行場所がホストの指定場所となっているかを、共有場所の一覧を表示することで確認 docker run --rm -it -v $PWD:/app composer:latest ls -al
From php:apache RUN apt-get update && apt-get install -y \ unzip \ zlib1g-dev \ && docker-php-ext-install \ zip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN curl -s http://getcomposer.org/installer | php && \ mv composer.phar /usr/local/bin/composer
これが最低限必要なものを追加した Dockerfile と思いますが、ちょっと及び腰で念の為という気持ちで、利便性や、参考ページにあったものも一応追加したものが次となります。
echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \
も無くてもよいと思う (未検証) が、一応入れた。From php:apache RUN apt-get update && apt-get install -y \ git \ unzip \ zlib1g-dev \ && docker-php-ext-install \ zip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN curl -s http://getcomposer.org/installer | php && \ echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \ mv composer.phar /usr/local/bin/composer
composer install
すること。$config['composer_autoload'] = TRUE;<
とすること。Docker の PHP 上で試しました。
cat /etc/issue
: Debian GNU/Linux 9 \n \lcat /etc/debian_version
: 9.5php -v
:PHP 7.2.9 (cli) (built: Aug 22 2018 23:59:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
root@794dbcc792c6:~# cat /etc/issue
vim Config/bootstrap.php
ファイルの最後に次を追記します。
// composerのautoloadを読み込み require APP . 'Vendor/autoload.php'; // CakePHPのオートローダーをいったん削除し、composerより先に評価されるように先頭に追加する // https://github.com/composer/composer/commit/c80cb76b9b5082ecc3e5b53b1050f76bb27b127b を参照 spl_autoload_unregister(array('App', 'load')); spl_autoload_register(array('App', 'load'), true, true);
参考ページですの♪