سوال

اجرای دستورات شل از طریق اسکریپت php

بازدید 24.7k پست ها 1 آخرین فعالیت 1 سال پیش
0
2

چطوری میشه یک دستور لینوکس رو در php اجرا کرد مثل دستور touchدر ابونتو برای ساخت فایل است چطوری میشه این دستور را در محیط php اجرا کرد
اینم کدم

$ffmpeg="usr/bin/ffmpeg";
$cOM = "$ffmpeg -i /opt/lampp/htdocs/1.mp4 out.avi";
 shell_exec($cOM);
آخرین ویرایش: 27-12-2018 ساعت 21:26، توسط Reza

1 پاسخ

1

کدتون مشکلی نداره/

این کد الان تست شده مشکلی نداره

<?php
	echo "Starting ffmpeg...\n\n";
	echo shell_exec("ffmpeg -i input.mp4 output.avi &");
	echo shell_exec("mkdir script && cd script && touch testfile.php");
	echo "Done.\n";
?>

اگر تو هوست اشتراکی امتحان کنید احتمالا کار نمیکنه چون تابع shell_exec رو بدلایل امنیتی غیر فعال میکنن.

من در لوکال انجام میده کار نمیکنه و این ارور رو میده Permission denied کدم هم اینه $r= shell_exec("/usr/bin/ffmpeg -i 1.mp4 ali.avi 2>&1"); echo "<pre>".$r."</pre>"; – masoud-fathi 1 سال پیش
تو لوکال علتش اینه که کاربر فعلی(شما) تو دایرکتوری که متعلق به root هست(/opt) نمیتونه فایل بسازه. تو لوکال یا فایلو انتقال بدید به اونجا دسترسی درست بهش بدید یا از طریق کامند لاین sudo کنید. sudo php run.phpReza 1 سال پیش
متوجه نشدم میشه بیشتر توضیح بدید – masoud-fathi 1 سال پیش
نمیدونم چطور واضح تر بگم. owner اسکریپتی که ران میکنید شما هستید وسعی دارید تو یه فولدر که واسه شما نیست کاری انجام بدید. به همین علت خطای دسترسی میده. راه حلشم بالا گفتم. میتونید در مورد دسترسی ها تو لینوکس تحقیق کنید. – Reza 1 سال پیش
فایل رو چطوری انتقال بدم من که میتونم داخل opt هم فایل هم فولدر بسازم دسترسی دارم مشکل پس چیه توی کامند لاین هم یکبار اجرا میکنم و سیستم هنگ میکنه – masoud-fathi 1 سال پیش

این سوال حل نشده است!

این سوال هنوز حل نشده یا به پاسخ بهتری نیاز دارد. برای پاسخ به این سوال کافیست وارد حساب کاربری خود شوید.