XAMPPでSmarty3のwebサーバーに書き込み権限を与えるには
macOS MojaveでXAMPPを使っています。
smarty3を導入したのですが、htdocsディレクトリ以下にtemplates、templates_c、cache、configsディレクトリを作り、PHPにてコードを書いたのですが、コンパイルの時点で弾かれてしまいます。webサーバーに書き込み権限を与えるといいというところまで辿りつきましたが、XAMPP上ではどこをいじれば権限を与えることになるでしょうか。
「Webとプログラミングのきほんのきほん」という本の中のコードなのですが、なぜかエラーが出てしまいます。
発生している問題・エラーメッセージ
Fatal error: Uncaught --> Smarty: unable to write file /opt/lampp/htdocs/templates_c/wrt5da62515d2fa90_11555665 <-- thrown in /opt/lampp/htdocs/libs/sysplugins/smarty_internal_runtime_writefile.php on line 60
該当のソースコード
PHP
1<?php 2 require_once('libs/Smarty.class.php'); 3 4 5 $smarty = new Smarty(); 6 $smarty->template_dir = 'templates/'; 7 $smarty->compile_dir = 'templates_c/'; 8 $smarty->config_dir = 'configs/'; 9 $smarty->cache_dir = 'cache/'; 10 11 12 $a = array ( "リンゴ", "バナナ", 13 "ミカン", "ジャガイモ", "トマト"); 14 $smarty->assign("items", $a); 15 16 17 $smarty->display("example6-3-2.tpl"); 18?>
またテンプレートは下記です。
<html> <body> <table border='1'> {foreach from=$items item=val} <tr><td>{$val}</td></tr> {/foreach} </table> </table> </body> </html>
試したこと
PHPコードの中に「$smarty->testInstall();」を書いてみて、以下の結果が得られました。
Smartyインストールテスト...
テンプレートディレクトリをテストしています...
/ opt / lampp / htdocs / templatesは問題ありません。
コンパイルディレクトリをテストしています...
失敗:/ opt / lampp / htdocs / templates_cは書き込み不可です。
プラグインディレクトリをテストしています...
/ opt / lampp / htdocs / libs / pluginsは問題ありません。
キャッシュディレクトリをテストしています...
失敗:/ opt / lampp / htdocs / cacheは書き込み不可です。
configsディレクトリをテストしています...
/ opt / lampp / htdocs / configs /はOKです。
syspluginファイルをテストしています...
... OK
プラグインファイルをテストしています...
... OK
テストが完了しました。
補足情報(FW/ツールのバージョンなど)
XAMPP7.3.10(PHP 7.3.10)、smarty3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/16 10:19
退会済みユーザー
2019/10/16 10:27
2019/10/16 10:33
退会済みユーザー
2019/10/16 10:38
退会済みユーザー
2019/10/16 10:39
退会済みユーザー
2019/10/16 10:40
2019/10/16 11:12
退会済みユーザー
2019/10/16 12:07
2019/10/16 12:12