XAMPP × FuelPHPでPHP開発環境を構築してみた


概要

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を行います。

Composer

>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です。