• ベストアンサー

サーバー引越し

Smartyをつかって運営しているサイトの サーバーを移しました。 旧サーバーは PHP 4.4.8 MySQL 4.0.27 ↓ 新サーバーは PHP 5(4 に対応せず) MySQL 5.1 テスト的にうつしてみたいんですが Smartyのテンプレートが表示されず、 真っ白な状態になってしまいます。 具体的な問題はソースの開示が必要になるかと 思いますので、そこまではできませんが、 どのような原因が考えられるでしょうか。 アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • seednyan
  • ベストアンサー率28% (448/1568)
回答No.1

こんばんは。会社のサーバーの管理をやってるものです。 同じような現象を経験した事があります。その時の原因は、phpのバージョン違いでした。詳しくはわかりませんが、4で有効でも、5でダメなもの、その逆もありました。 参考になればと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4852/10267)
回答No.2

一般にPHP4からPHP5へのバージョンアップでは、プログラム修正が必要です。 PHP5での変更点を調べて、プログラム全体にわたってチェックします。 MySQL4 -> 5のバージョンアップでも、文字コードあたりの修正が必要かもしれません。 自分で出来ないなら、ソフト開発会社に依頼するんでしょうね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SmartyでMySQLに登録したテンプレートを使用するには?

    現在、Smartyを使用してブログを作成しようとしています。 テンプレートファイル(htmlソース)をMySQLに登録し、 これを呼び出して出力する方法を教えてください。 ※各ユーザーでレイアウトを変更するため Smartyマニュアルの「テンプレートリソース」等を確認しましたが、 なかなかうまく表示されません。 http://smarty.php.net/manual/ja/template.resources.php MySQLに「template」フィールド作成し、ここにHTMLソースを記述しています。 試した方法は 1.display時に「template」フィールドを呼び出し ×変数が呼び出されない 2.custom.tplを作成し、「template」フィールドをecho。そしてdisplay ×変数がそのまま出力 3.「テンプレートリソース」の利用 ×うまく表示されない クラス「SQL」を作成しないといけない? サンプルや他に方法が記載されているサイトがあれば教えてください。

    • 締切済み
    • PHP
  • Pleskサーバ利用時にSmartyのassignが出来ません

    現在、Pleskサーバを利用して、 Apache+Smarty+PHPのWEBプログラミングを行っているのですが、 PHPのユーザ関数内で、Smartyのassign()関数を使用した場合に、Smarty変数の生成を行うことが出来ません。 例としては以下のような感じになります。 ================================================================ <? $smarty->assign( 'a', 'a' ); // テンプレート上で{$a}とするとaと表示される test( $smarty ); $smarty->display('index.tpl'); // index.tplを表示する function test( $smarty ) { $smarty->assign( 'b', 'b' ); // テンプレート上で{$b}としてもbは表示されない } ?> ================================================================ $smartyというのは、$smarty = new Smarty();を行ったものです。 このプログラム自体は、Plesk導入前は動作しておりましたが、 Plesk導入後は上記のように、ユーザ関数外では、通常通りassign()を行うことが出来るのですが、ユーザ関数内だと無効となってしまいます。 また、Pleskのsafe_modeはOffにしております。 Pleskは初めて使用するため、動作上まだ知らないことばかりで、とても初歩的なミスをしているかと思いますが、Pleskに詳しい方がおりましたらどうか教えて頂きたいと思います。

    • ベストアンサー
    • PHP
  • Smarty の Undefined Index

    CentOS5.5 のサーバ上にて、Apache + PHP + Smarty + Zend Framework で 構築されたサイトを、事情により異なるサーバへ引っ越すことになりました。 新しいサーバにも CentOS5.5 がインストールされたものを用意し、 Apache と PHP は旧サーバと同じバージョンのものをインストールし、 Smarty と Zend Framework は旧サーバから tar ball でまとめて コピーし展開しました。 その他ソースコードも tar ball でまとめて持ってきましたので、差異はないと 思っていたのですが、新しいサーバのページを表示させると、あちこちに 下記のようなエラーメッセージが表示されてしまいました。 [8] Undefined index: checked /file_path_to_smarty/templates_c/%%A6^A6C^A6C4B1AA%%index.tpl.php(143) PHPで書かれたプログラムの内容については、開発に携わっていなかったので 詳しいことは分からないのですが、ソースコードを見ると、確かに変数が 初期化されないまま来ているので Undefined Index が表示されるのは 当然という感じです。 error_reporting や display_errors の設定の問題かと思いましたが、 設定やソースコードを変えてもエラーが表示されてしまいました。 Smarty には default という修飾子がありますが、もともとのソースコードでは 書かれていないので旧サーバでは default 無しでもメッセージが表示されない ようです。 旧サーバでは、変数が初期化されていなくてもメッセージが表示されずに 処理される設定になっているのではないかと思うのですが、どこをどう変えれば 良いのかわからない状態です。 あと数週間は旧サーバも稼働していますので比較することは可能ですが、 チェックすべきポイント等ありましたら教えていただければありがたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Smarty3のリソース・プラグイン

    Smarty3のリソース・プラグインについて Smarty3(3.0.9)でリソース・プラグインを行うと以下エラーが出力され、データベース内のテンプレートを呼び出すことができません。 Uncaught exception 'SmartyException' with message 'Unable to load template db 'test.tpl'' in /usr/local/lib/php/smarty/sysplugins/smarty_internal_template.php:165 Stack trace: #0 /usr/local/lib/php/smarty/sysplugins/smarty_internal_template.php(554): Smarty_Internal_Template->isExisting(true) #1 /usr/local/lib/php/smarty/Smarty.class.php(340): Smarty_Internal_Template->getRenderedTemplate() #2 /usr/local/lib/php/smarty/Smarty.class.php(384): Smarty->fetch('test.tpl', NULL, NULL, NULL, true) #3 /usr/local/apache2/htdocs/test.php(18): Smarty->display('test.tpl') #4 {main} thrown in /usr/local/lib/php/smarty/sysplugins/smarty_internal_template.php on line 165 同様のプログラムでSmarty2*で実行するとうまく表示します。 Smarty3のマニュアル(英語版)を見てもうまくいきません。。 ご存知の方、ぜひ教えてください。 (環境) OS:Debian 6.0.1 WebServer:Apache2.2.19 PHP:PHP5.3.6 MySQL:MySQL5.0.87 (プラグイン) <?php require('DB.php'); define("DB_FILE","mysqli://*****:*****@localhost/*****"); function smarty_resource_db_source ($name, &$source, $o_smarty) { $db = DB::connect(DB_FILE); $stt = $db->prepare("SELECT source FROM templates WHERE name =?"); $rs = $db->execute($stt,array($name)); if(is_null($row=$rs->fetchRow(DB_FETCHMODE_ASSOC))){ return FALSE; }else{ $source=$row["source"]; return TRUE; } } function smarty_resource_db_timestamp($name, &$modified, $o_smarty) { $db = DB::connect(DB_FILE); $stt = $db->prepare("SELECT * FROM templates WHERE name =?"); $rs = $db->execute($stt,array($name)); if(is_null($row=$rs->fetchRow(DB_FETCHMODE_ASSOC))){ return FALSE; }else{ $modified=$row["modified"]; return TRUE; } } function smarty_resource_db_secure($name, $o_smarty) { // 全てのテンプレートがセキュアであると仮定します return true; } function smarty_resource_db_trusted($name, $o_smarty) { // テンプレートから使用しません } ?> (呼び出しファイル) <?php set_include_path('/usr/local/lib/php/smarty/:' . get_include_path()); @include('Smarty.class.php'); $o_smarty = new Smarty(); // Smartyのテンプレートのキャッシュファイル格納先を指定 $o_smarty->compile_dir = "/usr/local/apache2/htdocs/template_c"; $o_smarty->plugins_dir[]="/usr/local/apache2/htdocs/plugin"; $o_smarty->default_resource_type="db"; // phpスクリプトからテンプレートリソースを使用します $o_smarty->display("test.tpl"); ?> (データベース) CREATE TABLE templates ( name VARCHAR(100) NOT NULL default '', modified TIMESTAMP, source TEXT, PRIMARY KEY (name) ) DEFAULT CHARACTER SET utf8; -- Dumping data for table 'templates' INSERT INTO templates VALUES('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');

    • 締切済み
    • PHP
  • サーバ移転について

    いつもお世話になっております。 今回はサーバ移転について質問させていただきます。 現在運用中のサーバを移転することになりました。 (1)旧サーバには、osCommerceがインストールされていて、運用中のサイトがあります。 新サーバにもosCommerceのインストールは必要になりますでしょうか。 (2)FFFTPで接続した時に所有者名が数字で表示されます。 これを所有者名で表示させることは可能でしょうか。 (3)旧サーバにてバーチャルドメインで運用しているサイトがいくつかあります。 新サーバに移転する前に動作確認のテストを行いたいと思っております。 動作確認はサブドメインで行なうしか方法はないでしょうか。 (4)サーバ移転を行なう上で、何か注意する点等ありましたら アドバイスお願いいたします。 <旧環境> OS:Red Hat Linux 8.0 3.2-7 PHP:4.3.2(cli) Apache:2.0.40 MySQL:3.23.56 PostgreSQL:7.3.3 <新環境> OS:Red Hat Enterprise Linux 5 PHP:5.1.6(RPM) Apache:2.2.3(RPM) MySQL:5.0.22(RPM) PostgreSQL:8.1.9(RPM) Ftpd:vsftpd-2.0.5(RPM) 長文になりましたが、何卒ご教示お願いいたします。 よろしくお願いいたします。

  • 格安サーバー

    現在、独自ドメインが使用可能な広告有無料サーバーを使用して、ホームページを運営しているのですが、以下の条件が当てはまるサーバーってありますか? ・年間1000円程度(コンビニ振込のみ) ・広告なし ・PHP/CGIが使用できる ・MySQL(使えなくてもいい)が使用できる ・容量は1GB以上 MySQLは必須ではありません。 外国サーバーでもよいのですが、 ・わかりやすい ・日本語サイトにも対応 の条件でお願いします。 こんなよいサーバーはないと思いますが、よろしくお願いします。

  • Smarty コンバートエラー??

    はじめまして。 PHP初心者です。 テンプレートにオブジェクト配列を渡して、表示させたいのですが、 テンプレートをコンパイルする際にエラーがでてしまいます。 呼び出し元のtest.phpに”echo $objArray[0] -> get_id();”と書くと正常に表示されるのでテンプレートと問題と思うのですが、原因が解らずこまっております。。。 ご指導お願い致します。 ■環境 OS:Fedora 4 php-5.2.0 Smarty-2.6.13 ■ブラウザに表示されるエラー Catchable fatal error: Object of class User could not be converted to string in /home/dev/board/templates_c/%%6D^6D7^6D7C5625%%test.tpl.php on line 3 ■テンプレート(test.tpl) {$users[0] -> get_id()} ■テンプレートの呼び出し元(test.php) require_once("DB.php"); require_once("Smarty/libs/Smarty.class.php"); $o_smarty = new Smarty(); $o_smarty -> template_dir = "../templates"; $o_smarty -> compile_dir = "../templates_c"; $o_smarty -> debugging = TRUE; $db = DB::connect("mysql://*********************"); $objArray = User::getUserInfos($db); echo $objArray[0] -> get_id(); $o_smarty -> assign("users",$objArray); $o_smarty -> display("test.tpl"); class User { private $_id; public function get_id(){return $this -> _id;} public function set_id($_id){$this -> _id = $_id;} public static function getUserInfos($db){ ・・(中略)・・ } return $aryUsr; } }

    • ベストアンサー
    • PHP
  • サーバーダウンについて

    サーバーダウンについて 最近、アクセスが増えてからサーバーダウンが 度々起きてしまいます。「DB Error connect」というエラー表示が出ます。 サーバーは下記のサーバーを使っています。 http://server.sakura.ad.jp/dedicated/entry/index.html メールマガジンなどで当サイトが宣伝されてるようで、 一時的にアクセスが急激に増えることがあります。 アクセスログなどを確認しますと、そういうアクセスが集中している時に 落ちやすくなります。 といっても多くても1分間に100アクセス程度です。 大抵リブートしたら直ります。 ただ1日に何度もサーバーダウンが起きてますので、 そうなるとサイトの運営が成り立たなくなり、大変厳しい状況です。 どなたか助けていただけますでしょうか。 なお、言語はPHP・Smarty、DBはMySQLを利用しています。 DBへ接続した後のdisconnectはしていません。 そのあたりがまずいのかなと感じてます。 最大同時接続数とかあるんですよね? アクセスが増えたときにdiscconectしてないために DBへの同時接続数が増えてしまったことがサーバーダウンの 原因となりますでしょうか?

    • ベストアンサー
    • PHP
  • MySQLのGPLライセンスとPHPライセンス

    いつもお世話になっております。 MySQLのライセンスとPHPのライセンスについて質問です。 過去のログを見たのですがよくわかりませんでした。 フリーツールで開発を行い、製品化を行いたいと思います。 基本的にライセンス料を支払わない方向にしたいです。 そして開発したソースは依頼会社はともかく、一般人に求められても開示はしたくはありません。 以下のパターンでソース開示(誰かに要求された場合)が必要かどうかお願いします ■MySQL ・WebレンタルサーバにMySQLが入っており、PHPでショッピングサイトの情報をMySQLに登録しました。PHPのソース開示は必要でしょうか? ・社内システムでMySQLをインストールし、PHPを使用して開発しました。PHPのソース開示は必要でしょうか? ・同じく社内システムでMySQLをインストールし、C#.NETで開発しました。C#のソース開示は必要でしょうか? 上記に共通しているのは、MySQL自身は一切改造していません。 ■PHP ・PHPで開発したWebシステム(例えばメールツール)はソース開示は行わなくてよいでしょうか?

  • さくらレンタルサーバでのsmartyの設定

    プログラム初心者なのですが、以下教えて頂けないでしょうか。 さくらレンタル(スタンダード)にsmartyを設置を試みているのですが、エラーメッセージが出てしまいます。 環境:PHP 5.2.6 / Smarty 2.6.19 /home/(アカウント)/www/libs/smartyの直下にSmarty.class.php以下、公式サイトからダウンロードしたものをそのままアップし、/home/アカウント/www/smartytest/helloの直下に以下のファイルをアップしました。 (index.php) <?php define('SMARTY_DIR','/home/アカウント/www/libs/smarty/'); define('SMARTY_TEST','/home/アカウント/www/smartysample/hello/'); require_once(SMARTY_DIR.'Smarty.class.php'); $smarty = new Smarty; $smarty->template_dir = SMARTY_TEST.'templates/'; $smarty->compile_dir = SMARTY_TEST.'templates_c/'; $smarty->config_dir = SMARTY_TEST.'configs/'; $smarty->cache_dir = SMARTY_TEST.'cache/'; $smarty->assign('msg','Hello World!'); $smarty->display('index.tpl'); ?> そして、このindex.phpにアクセスすると、下記のようなエラーメッセージが表示されます。 Warning: Smarty::require_once(/home/アカウント/www/libs/smarty/internals/core.write_compiled_resource.php) [smarty.require-once]: failed to open stream: No such file or directory in /home/アカウント/www/libs/smarty/Smarty.class.php on line 1429 Fatal error: Smarty::require_once() [function.require]: Failed opening required '/home/アカウント/www/libs/smarty/internals/core.write_compiled_resource.php' (include_path='.:/usr/local/php-5.2.6/lib/php') in /home/アカウント/www/libs/smarty/Smarty.class.php on line 1429 Smarty.class.phpの1429行目に問題があるのかとファイルを開いてみたものの、初心者のためよく理解できません。あと、Smarty.class.phpを呼び出すのに絶対パスを指定しているのは、さくらの管理画面からphp.iniでinclude_pathを指定しようとしても、うまくいかなかったためです(上記の場合、$smarty = new Smarty;を削除すれば、エラー画面は表示されません。変わりに何も表示されませんが・・)。 初心者のため、基本的なところで見落としがあるのかもしれませんが、教えて頂ければと思います。どうか、宜しくお願いします。

    • 締切済み
    • PHP