حل شده

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

بازدید25.4kپست ها1آخرین فعالیت5 سال پیش
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، توسط رضا رمضانپور

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 5 سال پیش
تو لوکال علتش اینه که کاربر فعلی(شما) تو دایرکتوری که متعلق به root هست(/opt) نمیتونه فایل بسازه. تو لوکال یا فایلو انتقال بدید به اونجا دسترسی درست بهش بدید یا از طریق کامند لاین sudo کنید. sudo php run.phpرضا رمضانپور 5 سال پیش
متوجه نشدم میشه بیشتر توضیح بدید – masoud-fathi 5 سال پیش
نمیدونم چطور واضح تر بگم. owner اسکریپتی که ران میکنید شما هستید وسعی دارید تو یه فولدر که واسه شما نیست کاری انجام بدید. به همین علت خطای دسترسی میده. راه حلشم بالا گفتم. میتونید در مورد دسترسی ها تو لینوکس تحقیق کنید. – رضا رمضانپور 5 سال پیش
فایل رو چطوری انتقال بدم من که میتونم داخل opt هم فایل هم فولدر بسازم دسترسی دارم مشکل پس چیه توی کامند لاین هم یکبار اجرا میکنم و سیستم هنگ میکنه – masoud-fathi 5 سال پیش

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.