質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

2368閲覧

CakePHP3.4.5をphp7.0.18で動作させるとエラー

rik

総合スコア1151

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

2クリップ

投稿2017/04/30 14:24

編集2017/04/30 14:26

CakePHP3.4.5をphp7.0.18で動作させるとエラーが出ます。回避方法をご存じないでしょうか?
エラーメッセージ:
mod_fcgid: stderr: PHP Parse error: syntax error, unexpected T_USE, expecting T_FUNCTION in
(パス)/vendor/cakephp/chronos/src/Chronos.php on line 52

こちらがChronos.phpです。コメントは削除してあります。
このファイルはcakephp3.4.5の本体の一部です。私が記述したものではありません。

php

1<?php 2namespace Cake\Chronos; 3 4use DateTimeImmutable; 5use DateTimeZone; 6 7class Chronos extends DateTimeImmutable implements ChronosInterface 8{ 9 use Traits\ComparisonTrait; //<--- ここが52行目です。ここでエラーが出る 10 use Traits\DifferenceTrait; 11 use Traits\FactoryTrait; 12 use Traits\FormattingTrait; 13 use Traits\MagicPropertyTrait; 14 use Traits\ModifierTrait; 15 use Traits\RelativeKeywordTrait; 16 use Traits\TestingAidTrait; 17 use Traits\TimezoneTrait; 18 19 protected static $toStringFormat = ChronosInterface::DEFAULT_TO_STRING_FORMAT; 20. 21. 22.

エラーメッセージから、useをclass内部で宣言している為エラーになっているという事は分かりますが、cakephp3.4.5はphp7.1~5.6.0で動作するはずですので、php.iniの設定が問題なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki84web

2017/04/30 16:42

"cakephp3.4.5はphp7.1~5.6.0で動作するはずですので"→これはコアシステムのことでしょうが、"vendor"以下に格納されたプログラムということは外部ライブラリではないのでしょうか。それは本当に7系に対応していますか?
argparse

2017/04/30 17:10

試しに同じバージョンを揃えてみたところ、手元では問題なく動作するようでした。 cake console から chronos を使っても同じエラーが出ますでしょうか? エラーからすると、 fcgid で使用している PHP が古いような気もします。
rik

2017/04/30 18:15

Cakephp3はコアシステムがvendor以下に有ります。外部ライブラリではありません。 色々試しましたが、どうやらphp5.3.3で動作しているようです。 サーバーの監理システムはPlesk12.5.30で、PHP7.0.18、FPM + nginx で動作させていて、phpinfo()もVer.7.0.18で表示されるのですが、 # php ./bin/cake.php では Minimum PHP version: 5.6. You are using: 5.3.3. と表示されます。 Pleskの問題なのか、Pleskの設定が何か足りないのか。 セットアップしたCakephpのルート(Welcome to CakePHP 3.4.5 Red Velvet. Build fast. Grow solid.のページ)にアクセスするとEnvironmentでYour version of PHP is 5.6.0 or higher (detected 7.0.18).と表示されます。 まずはこのあたりを調査しますが、何かお知恵は有りますでしょうか?
yuki84web

2017/04/30 21:57

サーバーによってはhtaccessでPHPのバージョンを指定したりしますが、Pleskは使ったことはあるものの詳しくはないのでサポートに問い合わせてみる等してみて下さい
guest

回答1

0

自己解決

以下の方法でとりあえず解決いたしました。皆様からのコメントが解決に結びつきました。誠にありがとうございました。

mv /usr/bin/php /usr/bin/php.533.backup
mv /usr/bin/php-cgi /usr/bin/php-cgi.533.backup

ln -s /opt/plesk/php/7.0/bin/php /usr/bin/php
ln -s /opt/plesk/php/7.0/bin/php-cgi /usr/bin/php-cgi

plesk側での懸念事項が残る為、別途調査いたします。

投稿2017/05/01 01:22

rik

総合スコア1151

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rik

2017/05/01 03:11

ただし、この解決方法では、pleskの自動セキュリティパッチアップデートの動作に影響を及ぼす可能性がある為、元に戻しました。 原因は分かりましたので他の解決策を探ります。
rik

2017/05/06 01:49

その後、設定を元に戻し、 「 php7 FPM NGINX 」での動作を「 php7 FastCGI Apache 」に変更すると正常動作しました。 FPM-NGINX では動作phpが5.3.3になるようです。 これはPlesk12.5.30での検証です。おそらくPlesk独自の問題です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問