Hallo, das ist Takafumi.
Als die Entwicklung des Systems, an dem ich derzeit beteiligt bin, abgeschlossen war, dachte ich: "Ich bin dabei, die Staging-Umgebung vorzubereiten" und versuchte, den Befehl "php aritisan migrate" auszuführen, um eine Tabelle zu erstellen.
Operation not permitted
"Ich kann nicht migrieren!"
Der heutige Artikel löst das Problem, dass in einer mit EC2 von AWS erstellten Staging-Umgebung keine Migration möglich ist!
Werden Sie der besitzende Benutzer und erteilen Sie der besitzenden Gruppe eine Schreibberechtigung
UnexpectedValueException : The stream or file "/var/www/mcfhfs/storage/logs/laravel-2019-11-20.log" could not be opened: failed to open stream: Permission denied
at /var/www/mcfhfs/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111
107| restore_error_handler();
108| if (!is_resource($this->stream)) {
109| $this->stream = null;
110|
> 111| throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url));
112| }
113| }
114|
115| if ($this->useLocking) {
Exception trace:
1 Monolog\Handler\StreamHandler::write()
/var/www/mcfhfs/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php:120
2 Monolog\Handler\RotatingFileHandler::write()
/var/www/mcfhfs/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:42
Please use the argument -v to see more details.
In der Fehlermeldung heißt es: "Sie haben keine Schreibberechtigung für die Protokolldatei." Anscheinend haben Sie keine Schreibberechtigung für die Protokolldatei.
Als ich die Berechtigungen mit ls -la
überprüfte, war es rw ---- r ---- r --
.
In diesem Fall ist es "Benutzer besitzen (Lesen / Schreiben) - Eigentümergruppe (Lesen) - anderer Benutzer (Lesen)". Ich bin nicht der besitzende Benutzer, ich gehöre zur besitzenden Gruppe, daher habe ich nur Leseberechtigung.
"Warum also nicht die Berechtigungen der besitzenden Gruppe um eine Schreibberechtigung (w) erweitern?"
Führen Sie also chmod 664 laravel-2019-11-20.log
aus.
Infolgedessen wurde "Betrieb nicht zulässig" angezeigt.
Bei der Prüfung scheint es, dass Dateiberechtigungen nur vom Dateibesitzer geändert werden können. (Referenz: https://marunouchi-tech.i-studio.co.jp/3341)
"Warum werde ich dann nicht der Besitzer der Datei?"
Löschen Sie die entsprechende Protokolldatei und erstellen Sie sie erneut. Führen Sie die Migration erneut aus, nachdem Sie bestätigt haben, dass Sie der Dateieigentümer sind.
php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
"Erfolg!"
Ich dachte, dies sei die Lösung, und als ich versuchte, die Seite durch Herstellen einer Verbindung zur Staging-Umgebung über den Browser anzuzeigen, wurde erneut die Meldung "Sie haben keine Schreibberechtigung für die Protokolldatei" angezeigt. Anscheinend ist es notwendig, eine Schreibberechtigung vom Webserver zu erteilen.
chmod 664 laravel-2019-11-20.log
ls -la
-rw-rw-r--
Nachdem der besitzende Benutzer und die besitzende Gruppe über Schreibrechte verfügen, greifen Sie erneut auf die Site zu. Es wurde sicher angezeigt!
-Permissionen können nur vom Dateibesitzer geändert werden. ・ Vergessen Sie nicht, die Schreibberechtigung vom Webserver zu erteilen! -Überprüfen Sie die Berechtigungen, wenn "Vorgang nicht zulässig" oder "Berechtigung verweigert"!
Ich hatte noch nie einen Fehler mit meinen Berechtigungen, daher bin ich froh, dass ich das erfahren habe. Es ist sicher, dass die Berechtigung damit verweigert wird. Na dann!
Recommended Posts