Permission denied beim Befehl bin/console

Servus

 

Aktuell versuch ich gerade ein neues Theme zu erstellen mit dem Befehl:

bin/console theme:create

Doch jedesmal erscheint eine Meldung :

bash: bin/console: Permission denied

Wo liegt hier der Fehler ?

 

Vielen Dank.

Gruss

Hallo,

die Datei muss ausführbar sein (755 Rechte) oder mit php aufgerufen werden (php bin/console)

Viele Grüße

1 „Gefällt mir“

Vielen Dank ich versuch es mal mit den Rechten,

bash: php: command not found

das hatt leider nicht geklappt, es kam die Meldung :

bash: php: command not found

Gruss

Hallo,

sonst versuche mal 

/usr/bin/php bin/console

und wenn das nicht geht, steht Dir möglicherweise je nach Hosting-Paket keine vollwertige Shell mit php zur Verfügung.

Viele Grüße

Den Befehl Chmod 755 httpdocs -R habe ich nun ausgeführt.

Nun kommt die Meldung wenn ich den Befehl eingebe bin/console theme:create testdemo folgendes:

bash: bin/console: No such file or directory

ich bin beim Verzeichniss:

httpdocs/public 

darin sind die Dateien vom Shopware bzw, der Shop lauft für den Test unter der Domain : Domain.de/public

Mach ich hier was falsch ?

 

Vielen Dank

Hi,

rekursiv das ganze Verzeichnis auf 755 zu setzen, war nicht notwendig :wink:

Wenn sich Deine Shopware Installation in httpdocs/public befindet, musst Du entsprechend vorher in dieses Verzeichnis wechseln - also:

cd httpdocs
/usr/bin/php bin/console

oder halt

cd httpdocs
bin/console

Viele Grüße

 

Vielen Dank für die Hilfe

Das habe ich versucht :

bash-4.3$ cd httpdocs/public
bash-4.3$ bin/console
bash: bin/console: No such file or directory

 

Beim Public Ordner sind folgende Dateien vorhanden:

bundles, fonts, maintenance.html, sitemap, theme etc…

 

Gruss
 

 

 

Hallo,

offenbar verwendest Du ein System mit Plesk. Schau’ mal unter “FTP Benutzer” nach, welche SSH Shell hinterlegt ist - falls /bin/bash und nicht /bin/bash (chrooted) dann musst Du erst in den vollen Pfad wechseln. Bei Plesk lautet dieser

/var/www/vhosts/ deinedomain.de /httpdocs

Wenn Du den Benutzer root verwendest, nie die Befehle als root ausführen, sondern mit dem FTP-Hauptbenutzer Deines Webspace - Beispiel:

cd /var/www/vhosts/ deinedomain.de /httpdocs

sudo -u deinftpbenutzer bin/console

ODER: falls es sich um ein älteres OS handelt, ist die PHP Version unter /usr/bin/php zu alt - dann nimmst Du die, die bei Plesk mitgeliefert werden. Der Aufruf wäre dann z.B.

sudo -u deinftpbenutzer /opt/plesk/php/7.3/bin/php bin/console

Viele Güße

arghh das mit dem Plesk…

Ja, genau benutze Plesk SSH : /bin/bash (chrooted).

Bin immer mit dem FTP Benutzer eingeloggt.

leider kommt bei cd /var nur noch der ordner tmp.

Ich denke ich habe wohl die abgespeckte Version (chroot) und bin eingeschränkt was die Funktionen betrifft daher ist es evt nicht möglich mit dem bin/console?

Gruss

 

 

 

Gut - wenn Du als Shell /bin/bash (chrooted) verwendest, reicht ein

cd httpdocs
bin/console

Funktioniert das nicht, ist in Deiner CHROOT Umgebung kein PHP installiert und Du hast auf /usr/bin/php keinen Zugriff da außerhalb von Deiner CHROOT. Falls möglich, entsprechend die Shell auf /bin/bash anstelle von /bin/bash (chrooted) umstellen.

 

Vielen herzlichen Dank für deine Hilfe.

Klappt leider immernoch nicht:

bash-4.3$ cd httpdocs
bash-4.3$ bin/console
bash: bin/console: /usr/bin/env: bad interpreter: No such file or directory
bash-4.3$

 

Leider lässt sich das auf dem aktuellen Hosting Anbieter das nicht umstellen kann nur chrooted verwenden.

PHP Version 7.2.34 ist installiert.

Werde nun das Lokal mit MAMP installieren, den Shop fertig stellen und dann bei einem neuen Hoster migrieren.

PS. Coole Webseite habt Ihr:)

Vielen Dank Gruss

 

Das hatte ich befürchtet - ja, entweder anderer Hoster oder den aktuellen bitten, die entsprechenden zusätzlichen Befehle freizuschalten in der CHROOT Umgebung - das sind aber einige, die für eine voll funktionsfähige Shopware Konsole benötigt werden - vermutlich handelt es sich um Shared Hosting, weshalb der aktuelle Hoster sich weigern wird, /bin/bash freizuschalten (Du könntest sonst alle Webspace Verzeichnisse auch von anderen Kunden sehen, wenn der Hoster z.B. kein CloudLinux mit CageFS verwendet).

Es gibt also 3 Optionen:

  • Hoster wechseln
  • Hoster ergänzt die chroot Umgebung
  • Hoster schaltet /bin/bash anstelle von /bin/bash (chrooted) für Dich frei

Viele Grüße

Ich werde die Option 1 nutzen, da der Hoster eh schon probleme macht etwas freizuschalten was nicht im Plesk für den Nutzer konfigurierbar ist.

 

Vielen Dank. Gruss

Bei meinem Hoster habe ich das gleiche Problem mit Plesk und chroot-Shell.

Der Hoster wäre aber bereit mit ein paar Kommandos freizuschalten.

Hat jemand eine Liste um welche Kommandos die chroot-Umgebung ergänzt werden muss?

Tausend Dank im Voraus.

Viele Grüße

Hallo,

puh das sind einige - müsste der Hoster einfach durchprobieren, bis keine Fehlermeldungen mehr kommen beim Aufruf der console - ggfs. sind bei Shopware 6 aber auch noch weitere hinzugekommen. Einfacher (und sicherer) für den Hoster wäre, in Cloudlinux zu investieren und CageFS zu verwenden, da chroot Umgebungen nicht 100% sicher sind und ausgehebelt werden können (siehe Is chroot a security feature? - Red Hat Customer Portal. Außerdem müssen diese ständig nachgepflegt werden.

Viele Grüße

Ein Tipp, weil bei aktuellen Plesk-Servern es sowohl als /bin/bash als auch als /bin/bash (chrooted) zu den folgenden Meldungen kommt:

/usr/bin/env: php: No such file or directory

/usr/bin/env: ‚php‘ Permission denied

Wenn euer Server-Admin dann einen Symlink wie folgt setzt (sofern ihr eben PHP7.4 einsetzt):

ln -s /opt/plesk/php/7.4/bin/php /usr/bin/php

…könnt ihr in eurem /bin/bash wieder ganz normal hiermit arbeiten:

php -v

bin/console

Ihr loggt euch einfach mit einem Plesk-User für das jeweilige Webhosting (nicht root) in der Konsole ein, wechselt in euer httpdocs (oder gebt es beim Befehl halt immer mit an) und auf geht’s. Es ist kein weiterer Wechsel erst zum Domainverzeichnis etc. erforderlich.

Ich hoffe das hilft zumindest denigen, die einfach selbst einen Plesk-Server betreiben und ebenso vor der Frage stehen, wieso aktuell „ab Werk“ kein /usr/bin/php mehr geht. 

Hallo,

ja das funktioniert, ist allerdings nicht OS update-sicher.

Viele Grüße

OS-Upgrades (nicht Updates) sind bei Plesk nicht wirklich automatisiert inbegriffen bzw. gängig. Mal davon abgesehen, dass der Zeitpunkt ziemlich eindeutig auffällt, wenn es nötig wird, muss man einen Befehl ausführen, um es wieder zum laufen zu bringen. Ganz davon abgesehen ist es äußerst unwahrscheinlich, dass dieser Symlink selbst bei einem OS-Upgrade entfernt wird. (Selbstverständlich ist es trotzdem nicht der allerbeste Weg. Aber dann würde man Plesk auch gar nicht erst nutzen.)

 

Eine Info noch, die ebenso relevant ist, angesichts von Plesk und dem eigentlichen Themeninhalt. Der im Standard zugewiesene Speicher (128 MB) reicht für die Theme-Aktivierung unter Plesk nicht aus und es wird dabei auch nicht das memory_limit vom Domain-Account beachtet. Hierfür gibt es zwei Lösungen:

  1. Den Befehl direkt mit Speicher-Parameter ausführen, Beispiel:

php -d memory_limit=1048M bin/console plugin:install --activate ThemeName
bzw.
/opt/plesk/php/7.4/bin/php -d memory_limit=1048M bin/console plugin:install --activate ThemeName

  1. Die php.ini hierfür anpassen und den Dienst neustarten – was man aber nur kann, wenn man zugleich Admin vom Server ist und nicht nur Hosting-Kunde:

/opt/plesk/php/7.4/etc/php.ini