簡體   English   中英

從 php 網頁運行 bash 腳本

[英]Running a bash script from php webpage

我有一個由 apache 服務器運行的 php 網頁,它存儲在/var/www/myweb/並稱為index.php

現在我正在嘗試從 php 網頁調用/home/me/名為test.sh的腳本。 它所做的只是在/home/me/上創建一個 file1

測試.sh:

#!/bin/bash


touch file1
~                                                                                                     
~                                                                                                     
~                                                                                                     
~  

index.php ,我試圖調用腳本

索引.php:

  if ($_GET['run'])
                   {
                                          exec('/home/me/test.sh');
                   }

不幸的是,這不起作用,似乎原因是權限問題。 我繼續嘗試從/var/www/myweb/運行此命令

/home/me/test.sh

我收到了這個錯誤:

觸摸:無法觸摸“file1”:權限被拒絕

有沒有辦法解決這個問題?

如果您不更改目錄,則您不是嘗試觸摸/home/me/file1 ,而是/var/www/myweb/file1 但是, /var/www/myweb允許rootrwx www-data group 到rx ,其他人也到rx 當Apache運行它,它正在運行它作為www-data ,在www-data組; 它獲得組權限rx ,禁止創建新文件。 當你運行它時,它以me身份運行,大概不在www-data組中,它需要最后一組權限:仍然rx ,仍然無法寫入。

理想情況下,您需要提供正在創建的文件的完整路徑,以避免混淆您在文件系統中的位置,並且該位置需要為me和組擁有drwxrwxr-x (或drwxrwsr-x )權限www-data

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM