概要
FuelPHPのWebアプリケーションをWindowsのローカル環境で実行するための環境を構築します。
環境
- Windows10 Pro
- XMAPP v7.3.12
- Fuel PHP v1.8.2 ※2019/12/16現在の最新版
1. XAMPPインストール
XAMPP Installers and Downloads for Apache Friendsからダウンロード・インストールを実施
インストーラを起動したら、インストールの実行をします。
インストールが完了し、XAMPP Control Panelが起動されるkとを確認します。
※上記では、port:8080が使用中であったため、tomcatが起動しませんでした。
2. XAMPP起動確認
XAMPP Control PanelでApacheを起動し、疎通確認を行います。
http://localhost にアクセスし、以下のようなページが表示されれば疎通確認完了です。
3. PHPインストール確認
XAMPPをインストールすることで、あわせてPHPのインストールもインストールされています。
PHPを実行するために、システム環境変数のPathにC:/xampp/php
を追加します。
端末の再起動を行い、以下のコマンドでPHPのバージョンが表示されることを確認します。
>php -v
PHP 7.3.12 (cli) (built: Nov 19 2019 13:58:02) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.12, Copyright (c) 1998-2018 Zend Technologies
4. FuelPHPダウンロード
FuelPHP » A simple, flexible, community driven PHP5.3 framework.からFuelPHP v1.8.2のダウンロードをします。
ダウンロードした「fuelphp-1.8.2.zip」をC:/xampp
配下に回答します。
5. Fuel PHPのシンボリックリンク作成
FuelPHPでの作業フォルダをXAMPP管理のApacheから参照できるようにシンボリックリンクを作成します。
> cd C:\xampp\htdocs
>>mklink /d public "C:workspace\sample-project/public"
6. composerで依存ライブラリの最新化
FuelPHP v1.6からcomposerを使用して依存ライブラリのダウンロードを行います。
そのため、先ずはcomposerを最新版にupdateします。
> cd C:\xampp\fuelphp-1.8.2
>php composer.phar self-update
私の場合は、updateする前のcomposerのversionが1.6.4であった。
```terminal
php composer.phar -v
/ _/ ____ ___ ____ ____ ________ _____
/ / / __ \/ ____ \/ __ \/ __ \/ ___/ _ \/ ___/
``
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.6.4 2018-04-13 12:04:24
このバージョンで、self-updateを行うと、Exceptionが発生することを確認しています。
>php composer.phar self-update
Updating to version 1.9.1 (stable channel).
Downloading (100%)
[RuntimeException]
SHA384 is not supported by your openssl extension, could not verify the phar file integrity
self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--set-channel-only] [--] [<version>]
SHA384 is not supported by your openssl extension, · Issue #7802 · composer/composer · GitHub
そのため、手動でcomposerのself-updateを行います。
>php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
>php -r "if (hash_file('sha384', 'composer-setup.php') === 'baf1608c33254d00611ac1705c1d9958c817a1a33bce370c0595974b342601bd80b92a3f46067da89e3b06bff421f182') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
>php composer-setup.php
>php -r "unlink('composer-setup.php');"
composerのself-updateが完了後、最新版のcomposerで依存ライブラリのダウンロードを行います。
>php composer.phar update
>Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 15 installs, 0 updates, 0 removals
- Installing composer/installers (v1.7.0): Downloading (100%)
- Installing fuelphp/upload (2.0.6): Downloading (100%)
- Installing michelf/php-markdown (1.7.0): Downloading (100%)
- Installing psr/log (1.1.2): Downloading (100%)
- Installing monolog/monolog (1.25.2): Downloading (100%)
- Installing paragonie/random_compat (v9.99.99): Loading from cache
- Installing paragonie/sodium_compat (v1.12.1): Loading from cache
- Installing phpseclib/phpseclib (2.0.23): Downloading (100%)
- Installing fuel/core (1.8.2): Downloading (100%)
- Installing fuel/auth (1.8.2): Downloading (100%)
- Installing fuel/email (1.8.2): Downloading (100%)
- Installing fuel/oil (1.8.2): Downloading (100%)
- Installing fuel/orm (1.8.2): Downloading (100%)
- Installing fuel/parser (1.8.2): Downloading (100%)
- Installing fuel/docs (1.8.2): Downloading (100%)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
paragonie/sodium_compat suggests installing ext-libsodium (PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.)
paragonie/sodium_compat suggests installing ext-sodium (PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.)
phpseclib/phpseclib suggests installing ext-libsodium (SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.)
phpseclib/phpseclib suggests installing ext-mcrypt (Install the Mcrypt extension in order to speed up a few other cryptographic operations.)
phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
Writing lock file
Generating autoload files
7. 疎通確認
XAMPPのApacheを起動し、http://localhost/public が起動できることを確認します。
これで、実装したエンドポイントにリクエストを送信し、期待した結果が得られれば環境構築はOKです。