2016-08-09 350 views
1

Ich bin gerade in Drupal 8 gesprungen, und ich habe Probleme beim Aktivieren der dateibasierten Konfiguration in meinem Projekt. Ich verwende diese Anweisungen: https://www.drupal.org/node/2416555Wie kann ich Drupal 8 Zugriff auf Konfigurationsdateien außerhalb des Webstamms gewähren?

ich alle Schritte befolgt haben, aber jedes Mal, wenn ich versuchen, eine Konfigurationsänderung zu machen, bekomme ich folgende Fehlermeldung:

Drupal\Core\Config\StorageException: Failed to create config directory 
./../config/active in Drupal\Core\Config\FileStorage->ensureStorage() 
(line 72 of /Users/bbalan/Sites/d8project/web/core/lib/Drupal/Core/Config/FileStorage.php). 

Ich denke, es ist etwas falsch mit der Pfade in meiner settings.php. Die Anweisungen sagen, einen Pfad außerhalb des Webstamms zu verwenden, wahrscheinlich aus Sicherheitsgründen. Hier ist, was ich habe:

$config_directories = array(
    CONFIG_ACTIVE_DIRECTORY => './../config/active', 
    CONFIG_STAGING_DIRECTORY => './../config/staging', 
    CONFIG_SYNC_DIRECTORY => './../config/sync', 
); 

ich auf 777 alle Konfigurationsverzeichnis Berechtigungen festgelegt, und die aktiven/staging/Sync-Verzeichnisse bereits manuell (auch mit 777) erstellt wurde. Hier ist der Inhalt meines Projektordner:

-rw-r--r-- 1 bbalan staff 18046 8 Aug 15:22 LICENSE 
-rw-r--r-- 1 bbalan staff 4787 8 Aug 15:22 README.md 
-rw-r--r-- 1 bbalan staff 2299 8 Aug 17:35 composer.json 
-rw-r--r-- 1 bbalan staff 206302 8 Aug 17:35 composer.lock 
drwxrwxrwx 6 bbalan staff  204 8 Aug 15:36 config 
drwxr-xr-x 4 bbalan staff  136 8 Aug 15:22 drush 
-rw-r--r-- 1 bbalan staff  481 8 Aug 15:22 phpunit.xml.dist 
drwxr-xr-x 3 bbalan staff  102 8 Aug 15:22 scripts 
drwxr-xr-x 42 bbalan staff 1428 8 Aug 17:36 vendor 
drwxr-xr-x 19 bbalan staff  646 8 Aug 17:23 web 

Dies ist ein Drupal 8.1.8 gebaut Installation mit Composer von Anweisungen an https://github.com/drupal-composer/drupal-project. Alle Drupal-Site-Dateien befinden sich in /web. Hier ist meine httpd-vhosts.conf:

<VirtualHost *:80> 
    ServerName drupal-8.local 
    ServerAlias drupal-8.local 
    DocumentRoot /Users/bbalan/Sites/d8project/web/ 
    <Directory /Users/bbalan/Sites/d8project/web/> 
     Options FollowSymLinks 
     AllowOverride All 
     Order deny,allow 
     Allow from all 
    </Directory> 
</VirtualHost> 

Irgendwelche Ideen? Alles funktioniert, wenn ich das Verzeichnis /config an einen Speicherort im Webstamm verschiebe (zum Beispiel /sites/default/files/config), aber das scheint unsicher und entgegen den Anweisungen.

Vielen Dank für jede Hilfe!

Antwort

0

Ich würde nicht empfehlen, die Config-Verzeichnisse als 777 zu haben. 755 ist ein viel besserer Ansatz, da es den Besitzer und Gruppenmitglieder lesen und schreiben lässt. Sie können auch 775 versuchen, wenn Sie Gruppenmitgliedern die Ausführung erlauben möchten. Stellen Sie außerdem sicher, dass der Webserver-Benutzer Teil dieser Gruppe ist. Apache verwendet normalerweise www-Daten. Ich würde auch empfehlen, das Verzeichnis config auf sites/default/sync zu verschieben.

$config_directories = array(
    CONFIG_ACTIVE_DIRECTORY => 'sites/default/config/active', 
    CONFIG_STAGING_DIRECTORY => 'sites/default/config/staging', 
    CONFIG_SYNC_DIRECTORY => 'sites/default/config/sync', 
); 

Stellen Sie sicher, dass die Verzeichnisse vorhanden ist und der Web-Server ist Teil der Gruppe staff.

Die andere Sache, die ich überprüfen würde, ist Drupal Status und sehen, was es dir dort sagt.

+0

Vielen Dank! Ich habe die config-Verzeichnisse verschoben, die Berechtigungen auf 775 gesetzt, die 'settings.php' aktualisiert und den Apache-Benutzer' _www' zur Gruppe 'staff' hinzugefügt - das hat den Trick gemacht. –