Table of Contents
回复讨论(解决方案)
Home Backend Development PHP Tutorial php利用exec执行shell脚本问题

php利用exec执行shell脚本问题

Jun 23, 2016 pm 01:32 PM

先说下我想做的事情:
     将Linux下的操作,web化,使用户可以通过web端进行基本的操作,但是现在在写创建目录的代码:
      $mkdir_command = "/home/myname/myshell/mkdir.sh /$directory/ $name";
      exec($mkdir_command,$output,$return);
       .....
     我也知道在web端执行shell脚本,其实在Linux下是以Apache的权限来运行的,
      但是在Linux下我将mkdir.sh在运行时的权限修改为root的了,也就是说任何调用该文件的用户在执行的时候都是以root的权限来执行的:chmod 777 mkdir.sh ;  chmod u+s mkdir.sh   
但是在网页端还是执行不成功。
单独在Linux下是可以执行成功的,
希望大家发表一下意见或者看法,谢谢!!


回复讨论(解决方案)

Apache对该目录要有写的权限

Apache对该目录要有写的权限


谢谢您的回复,可以说一下具体应该怎么设置吗?

mkdir.sh权限修改为root的
那 apache 就更无权访问了

本帖最后由 xuzuning 于 2012-11-28 19:32:59 编辑mkdir.sh权限修改为root的
那 apache 就更无权访问了


额。。。mkdir.sh本身就是root用户创建的,只是当执行这个文件的时候,为普通用户赋予root的权限。
版主回复深感荣幸,嘿嘿,说正事。。。 您有什么好方法吗?

1.web将结果写到 一个文件里 例如需要创建什么 到哪创建

2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容 
如果是 这个时候就是用root 来操作了


建一个定时器就是了.

楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh  ,是那个跑shell 的php .设了执行权限没?

1.web将结果写到 一个文件里 例如需要创建什么 到哪创建

2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容 
如果是 这个时候就是用root 来操作了


建一个定时器就是了.


您的意思是利用Linux的crond服务来实现?每隔一段时间就执行php写入的那个文件,然后再删除?这个办法好吗?

楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh  ,是那个跑shell 的php .设了执行权限没?


php的运行权限肯定是有的。

你得查看你有没有执行权限
system/exec先执行一条其他简单的命令比如:ls 、ifconfig看看能否执行成功
再去检查.sh文件的权限问题

linux下输入visudo
然后我们在最后追加
apache ALL=NOPASSWD:/bin/sh
然后
php执行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要执行的脚本

看看这篇文章吧,可以解决你的问题
http://blog.csdn.net/vindo/article/details/3610587

加 sudo

linux下输入visudo
然后我们在最后追加
apache ALL=NOPASSWD:/bin/sh
然后
php执行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要执行的脚本

看看这篇文章吧,可以解决你的问题
http://blog.csdn.net/vindo/article/details/3610587……


谢谢各位,问题已经解决。谢谢!

谢谢上面各位的回答,综合一下,问题解决!嘿嘿!

求教怎么解决的?我的脚本是获取虚拟机ip的,现在也无法执行

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Explain the concept of late static binding in PHP. Explain the concept of late static binding in PHP. Mar 21, 2025 pm 01:33 PM

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

Framework Security Features: Protecting against vulnerabilities. Framework Security Features: Protecting against vulnerabilities. Mar 28, 2025 pm 05:11 PM

Article discusses essential security features in frameworks to protect against vulnerabilities, including input validation, authentication, and regular updates.

Customizing/Extending Frameworks: How to add custom functionality. Customizing/Extending Frameworks: How to add custom functionality. Mar 28, 2025 pm 05:12 PM

The article discusses adding custom functionality to frameworks, focusing on understanding architecture, identifying extension points, and best practices for integration and debugging.

How to send a POST request containing JSON data using PHP's cURL library? How to send a POST request containing JSON data using PHP's cURL library? Apr 01, 2025 pm 03:12 PM

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

Describe the SOLID principles and how they apply to PHP development. Describe the SOLID principles and how they apply to PHP development. Apr 03, 2025 am 12:04 AM

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How does session hijacking work and how can you mitigate it in PHP? How does session hijacking work and how can you mitigate it in PHP? Apr 06, 2025 am 12:02 AM

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

See all articles