7

コンポーネント、モジュール、またはプラグインをインストールしようとすると、以下のエラーが発生します。

JFolder::create: Could not create directory

問題は何ですか?

4

4 に答える 4

25

以下の変数を構成ファイル ( configuration.php) で次のように変更します。

public $log_path = '/logs';
public $tmp_path = '/tmp';

また、これらのフォルダにフォルダ権限 755 があることを確認してください。

続きを読む

于 2013-04-04T04:16:36.553 に答える
4

この問題を解決するための 2 つの解決策を見つけましたが、どちらも非常にうまく機能しています。

解決策 1:

tmpまず、次のトリックを使用して、フォルダーへの正確な絶対パスを見つけます。

たとえば、Web サイトのルートに PHP ファイルを作成します。path.php

このコード スニペットをファイルに配置し、保存ボタンをクリックします。

<?php
$path = getcwd();
echo "Your Absolute Path is: ";
echo $path;
?>

yourdomain.com/path.phpブラウザで に移動します

今後:

  1. Joomla 管理者パネルにログインします。
  2. グローバル構成に移動
  3. 「サーバー」タブをクリック
  4. へのパスを変更します。"Absolute Path(you've just found)"/tmp
  5. 次のコード行を .htaccess ファイルに挿入します。php_value open_basedir NULL

    このソリューションは私にとって非常にうまく機能しており、Joomla のコア ファイルのハッキングには対応していません。

解決策 2:

  1. Joomla 管理者パネルにログインします。
  2. グローバル構成に移動
  3. 「サーバー」タブをクリックしない
  4. パスを/public_html/tmpから just に変更しますtmp
  5. コントロール パネル(CPanel)にログインします (または、この目的のために FTP アカウントを使用できます)。
  6. ファイル マネージャーを開きます (FTP を使用している場合は、この手順をスキップする必要があります)。
  7. フォルダ「ライブラリ」を開く
  8. フォルダ「joomla」を開く
  9. フォルダ「ファイルシステム」を開く
  10. 「folder.php」を右クリックし、「編集」をクリックします。
  11. 次の行を探します (search = obd): $obd = ini_get('open_basedir');その行の先頭に // を付けてコメント アウトし、次のようにします。//$obd = ini_get('open_basedir');
  12. 保存して閉じます。
于 2014-09-27T03:22:31.357 に答える
1

Joomla フォルダーの所有者を Apache サーバー ユーザーに変更できます。

次のコマンドを使用して、Apache サーバーのユーザーを見つけることができます。

ps aux | grep -v root | grep apache | cut -d\  -f1 | sort | uniq

ソース: https://serverfault.com/questions/125865/finding-out-what-user-apache-is-running-as

Ubuntu の場合はwww-data.

Apache ユーザー名がわかったら、Joomla インストールのすべてのフォルダーとファイルの所有者を変更できます。これを行うには、次のコマンドを使用できます。

(あなたの apache ユーザーは だと思いますwww-data)

sudo chown -R www-data:www-data /path/to/your/joomla

すでに Joomla ディレクトリ内にいる場合は、次のコマンドを実行できます。

sudo chown -R www-data:www-data .
于 2016-06-10T12:06:43.980 に答える
0

このエラーで多くのトラブルが発生した後、私は突破口を得ました。configuration.php ファイルで、var logpath n tmppath の値を次のように編集します。var $log_path = '/home/public_html/sitename/logs'; var $tmp_path = '/home/public_html/sitename/tmp';

これは間違いなく機能します。そして私のために働きます。

于 2015-03-05T06:29:02.040 に答える