Exec php shellscript

Få hjælp og support til alt server-relateret. Guides og How-to's i forbindelse med servere hører også til her.
Brugeravatar
Martin Jørgensen
Indlæg: 406
Tilmeldt: 24. dec 2010, 15:58
IRC nickname: Martinjo84

Exec php shellscript

Indlæg af Martin Jørgensen »

Jeg kan godt bruge lidt råd og tips til hvordan jeg kan løse min problem stilling

Kort fortalt

LEMP Løsning

Har et shellscript som kopirer nogle biblioteker under /var/www
Tilføjer vhost under /etc/nginx
Retter config og reloader servicen

Dette script kræver root eller sudo for at køre.

Scriptet bliver kørt fra en php fil med exec, php filen lopper igennem en database og kaster 2 variabler til shell scriptet. PHP Scriptet er også sat til root:root og kan ikke eksekvere fra nginx. det ligger hellere ikke i /var/www

crontab kører php scriptet hver 2min som så kører shell scriptet

Jeg kunne godt tænke mig at vide hvordan jeg kan gøre så php kan eksekvere fra selv siden af?
Hvordan rent sikkerhed kan det lade sig gøre. Hvis Nginx kalder php scriptet, så vil shell ikke køre da Nginx ikke har de rette rettigheder?

Kunne jeg gøre dette med sudoer, altså give adgang til CP, ECHO som sudo (passwordless)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Exec php shellscript

Indlæg af AJenbo »

Kør det hvert minut og sæt et flag i databasen om den skal gøre noget eller blot afslutte. På websiden laver du en side hvor du kan sætte flaget til JA, og når scriptet har kørt sætter den flaget til NEJ. På den måde kan du afvikle scriptet inden for 1 minutter af når du trykker på knappen på din webside uden at websiden har mulighed for at køre noget som root. Hvis det er vigtig at det sker hurtigere end et minut bør du enten se på noget der kan afvikle scriptet oftere eller have det til at lytte på databasen i et minuts tid.
Brugeravatar
Martin Jørgensen
Indlæg: 406
Tilmeldt: 24. dec 2010, 15:58
IRC nickname: Martinjo84

Re: Exec php shellscript

Indlæg af Martin Jørgensen »

Hej Ajenbo

Det er også det jeg er kommet frem til og sådan det kører nu.
Og det virker faktisk godt, og jeg er sikker på services/kørelsen kører uden min opmærksomhed

Måske det er bedst practices