LoginSignup
1
1

More than 5 years have passed since last update.

ラピッドVPSで Class 'RuntimeException' not found 出た(CakePHP)

Last updated at Posted at 2015-01-30

PHP5.2 でCakePHP2が動かない?!

ラピッドサーバの古いVPS環境でCakePHP2を動かそうとしたら、

Fatal error: Class 'RuntimeException' not found

でまったく動かない。とりあえず、PHPのバージョンを確認
# php -v

PHP 5.2.17 with Suhosin-Patch 0.9.7 (cli) (built: Jan 12 2011 20:44:22)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

PHPのバージョンは5.2。CakePHP2の動作には問題ないはず。
そもそも、RuntimeExceptionクラスはどこが提供しているのか調てみると。。

PHP公式だった。
マニュアルを見ると、RuntimeExceptionは SPLという機能の一部で、PHP5.1以上なら標準で付属してますとの事。サンプルにあるコードでSPLが使えるか検証。

spltest.php
<?php
print_r(spl_classes());
?>

Fatal error: Call to undefined function spl_classes()
何も使えません。

という事は、このサーバ固有のPHP設定がされているようなので、変更可能かラピッドVPSのマニュアルを検索してみた。

ラピッドVPSでのPHP環境方法

マニュアルを見ると、vinstall コマンドで各種環境変更を行う仕組みになっていた。まずは実行する

# vinstall

Select an option:
? view list of programs
install enter install mode
module_name view information about program name
quit exit vinstall program
-->

メニューが起動する。?で変更できるプログラム一覧を確認できる。今回は、php5.2の変更を行うので、
-->install
Enter module name to install -->php5.2

スクリーンショット 2015-01-30 11.45.24 のコピー.png

make configとかでよく見る画面がでてきた。ここでモジュールの有効/無効を設定できる。(カーソルで移動、スペースでON/OFF)
よく見るとSPLだけでなく、足りないモジュールがあったので以下を有効な状態にした
* bz2
* CTYPE
* CURL
* DBA
* DOM
* GD
* GETTEXT
* HASH
* ICONV
* JSON
* MBSTRING
* MCRYPT
* MHASH
* MYSQL
* MYSQLI
* OPENSSL
* PDO
* PDO_MYSQL
* SESSION
* SIMLEXML
* SOCKETS
* SPL

モジュールの追加をしたので
# service httpd restart
でWebサーバの再起動を行なっておく。

再トライ

CakePHPを再度導入してみる。動いた! もう問題なさそう

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1