Win上の開発サーバの環境
- Apache 2.4.16 (Win64)
- OpenSSL 1.0.2d
- PHP 5.6.13
事前ステップ
Macの時と同様、インストールを進めます。
- ダウンロードしたソースコードの全部をルートディレクトリに設置
site/
,local/
,statamic/
,assets/
のディレクトリに書き込み権限を付与する。chmod -R 777 site local statamic assets
.htaccess
でリライトを有効にする。コマンドでルートにあるファイルをリネーム。mv sample.htaccess .htaccess
installer.php で表示されるエラーを順に解消する
/installer.php にアクセス。私のWin環境では次の項目で不適合(false)の表示が出た。
- OpenSSL PHP Extension
- GD Library for image manipulation
- FileInfo Extension for image manipulation
- always_populate_raw_post_data=-1
順に解決していく。
OpenSSL PHP Extensionを有効に
php.ini
ファイルを編集(L:893:コメントアウトを削除)
;extension=php_openssl.dll
↓
extension=php_openssl.dll
Apache再起動で無事解決。
GD Libraryを有効に
php.ini
ファイルを編集(L:881:コメントアウトを削除)
;extension=php_gd2.dll
↓
extension=php_gd2.dll
Apache再起動で無事解決。
FileInfo Extensionを有効に
php.ini
ファイルを編集(L:880:コメントアウトを削除)
;extension=php_fileinfo.dll
↓
extension=php_fileinfo.dll
Apache再起動で無事解決。
always_populate_raw_post_data=-1 にする
php.ini
ファイルを編集(L:704:コメントアウトを削除)
;always_populate_raw_post_data = -1
↓
always_populate_raw_post_data = -1
Apache再起動で無事解決。
以上ですべてのエラーは解決。次へ進むボタンが有効になったのでinstaller.php
を進める。
Permissionsエラー
進めた1項目目でChecking folder permissions, please wait...
と出っ放しで次に進まない症状に。.htaccess
が原因らしかったため、.htaccess
のL:23 ベースディレクトリを設定したら次へ進んだ。
#RewriteBase /
↓
RewriteBase /
ここまでのエラーは全て解消し、無事ログイン完了!
画像が表示されない事象が発生
無事ログインできたものの、公開画面・管理画面ともに、パスがimg/id/
で始まる画像が表示されない事象が発生。Chromeのコンソールでは画像の参照時に「500 Internal Server Error」が発生している。Apacheのログ、PHPのログを追ったが直接の対策は打てず、本家のサポートに投稿。
What's the error? There should be something added to your log file located in local/storage/logs when you see the 500 error.
とのことで、local/storage/logs
を確認すると、次のエラーを発見。
production.ERROR: exception 'Intervention\Image\Exception\NotSupportedException' with message 'Reading Exif data is not supported by this PHP installation.' in \statamic\vendor\intervention\image\src\Intervention\Image\Commands\ExifCommand.php:19
インストールされているPHPのextensionが足らないことが原因のようなので、php.ini
を編集(L:889)。
;extension=php_exif.dll
↓
extension=php_exif.dll
Apacheを再起動で無事画像が表示された!
.htaccess
がよろしくない
ドキュメントルートに設置されている.htaccess
について、2か所変更した。
リライトがうまくいかない
virtualhostの時に発生することがあるようだが、ベースディレクトリの設定が必要だった。.htaccess
のL:23、コメントアウトを削除。
# RewriteBase /
↓
RewriteBase /
無限ループが起きている
上記の「画像が表示されない事象」でApache(virtualhost)のログを見ていたら次のエラーが頻発していた。
[core:error] [pid 3440:tid 1112] [client 127.0.0.1:52602] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://statamic.dev/about
Request exceeded the limit of 10 internal redirects due to probable configuration error
となっている。調べたところ、内部リダイレクトが10の制限を超えて無限ループになっている、ということのよう。WordPressなどのプロダクトでも初期の.htaccess
だとこの症状になることがあるらしく、リダイレクトの実行処理コードを次のように変更した。(L:66)
RewriteRule ^ index.php [L]
↓変更
RewriteRule ^(.+)$ /index.php/$1 [L,QSA]
変更以降、エラーは発生しなくなった。
以上でstatamicのインストール・稼働確認は完了!