2013-11-15 3 views
5

Wenn ich mein YII-Projekt auf dem Server ausführen, habe ich diesen Fehler erhalten.CAsetManager.basePath "/ Assets" ist ungültig. Stellen Sie bitte sicher, dass das Verzeichnis existiert und vom Webserverprozess beschreibbar ist.

CException 

CAssetManager.basePath "/var/www/html/v2/assets" is invalid. Please make sure the directory exists and is writable by the Web server process. 

/var/www/html/v2/yii/framework/web/CAssetManager.php(116) 

104  } 
105 
106  /** 
107  * Sets the root directory storing published asset files. 
108  * @param string $value the root directory storing published asset files 
109  * @throws CException if the base path is invalid 
110  */ 
111  public function setBasePath($value) 
112  { 
113   if(($basePath=realpath($value))!==false && is_dir($basePath) && is_writable($basePath)) 
114    $this->_basePath=$basePath; 
115   else 
116    throw new CException(Yii::t('yii','CAssetManager.basePath "{path}" is invalid. Please make sure the directory exists and is writable by the Web server process.', 
117     array('{path}'=>$value))); 
118  } 
119 
120  /** 
121  * @return string the base url that the published asset files can be accessed. 
122  * Note, the ending slashes are stripped off. Defaults to '/AppBaseUrl/assets'. 
123  */ 
124  public function getBaseUrl() 
125  { 
126   if($this->_baseUrl===null) 
127   { 
128    $request=Yii::app()->getRequest(); 

Ich weiß nicht, wie man es löst? Bitte erklären Lösung davon?

Das ist meine Projektstruktur

assets 
protected <-- Yii app 
js 
css 
yii 
+1

übereinstimmen Wenn '/ var/www/html/v2/assets' existiert, dann ist es "/ var/www/html/v2/assets" ist nicht das Verzeichnis "Assets" Ihres Projekts, dann ist Ihre Anwendung nicht richtig konfiguriert. – Ezze

+0

Was soll ich jetzt tun? – unknownbits

+1

Wenn das Verzeichnis existiert, sollten Sie schreiben Berechtigungen für den Webserver Prozess wie Manquer schrieb Auch das 'protected/runtime' Verzeichnis muss erstellt und beschreibbar sein – Ezze

Antwort

4

Vermögenswerte Ordner sollten von Ihrem Web-Server-Prozess beschreibbar sein. Normalerweise ist es www-data wenn auf Apache standardmäßig konfiguriert. Sie können entweder den Benutzer in den Ordner Gruppe hinzufügen die Erlaubnis, mit ‚+ w‘ Modifikationen

Alternativ nur die Berechtigungen auf 777 ändern als Vermögenswerte Ordner nur Ihre js und CSS-Dateien enthalten, die ohnehin der Öffentlichkeit ausgesetzt werden aus Ihr Stammverzeichnis

chmod 777 -R ./assets 

Sie werden auch mit der Laufzeit und Daten/Auth.php das gleiche Problem konfrontiert (wenn App für die Verwendung von Yü auth Rollen konfiguriert ist), können Sie ähnliche geeignete Modifikationen auch dort

tun

UPDATE :: Zusätzliche Einstellungen für PHP < 5.4 ist erforderlich, wenn Safe-Mode-Flags gesetzt sind (dies wurde in 5.4 abgeschrieben). Siehe http://php.net/manual/en/ini.sect.safe-mode.php zur Konfiguration von Safe-Mode-Einstellungen in Ihrer php.ini-Datei. Entweder können Sie die Flags vollständig deaktivieren oder die entsprechenden Verzeichnisse ausschließen. (Dieser Schritt ist nicht erforderlich, wenn Sie www-data hinzugefügt haben (Ihre Web-Prozess) zu Ihrer Gruppe als die gid dann automatisch

+1

Großer Zufall Ich habe genau diesen Fehler und das ist deine Antwort ist neulich Die Änderung der Berechtigungen hat aber zu einem anderen Fehler geführt:' copy() [function.copy]: SAFE MODE Einschränkung in Kraft Das Skript, dessen UID/GID 219804/219804 nicht ist Zugriff erlaubt/f5//public/assets/27ff0fb6 gehört zu uid/gid 25000/25000'. Die seltsame Sache ist, ich habe keinen Assets-Unterordner mit dem Namen '27ff0fb6' –

+0

Sie verwenden die PHP-Version <5.4 und haben auch die Sicherheitsmodus-Flags gesetzt, um nach uid (userId)/gid (groupId) zu überprüfen und gleichzeitig Berechtigungen zu erlauben zusätzlich zu den Berechtigungsstufen für Systemdateien. Einzelheiten zur Verwendung/Konfiguration des abgesicherten Modus finden Sie auf dieser Seite http://php.net/manual/en/ini.sect.safe-mode.php – Manquer

+1

@Manquer Danke Es hat funktioniert. – unknownbits

Verwandte Themen