linuxnginx与php
1. linux+NGINX下的php shell_exec()函数执行linux命令 2019-08-08
LINUX+NGINX下的PHP shell_exec()函数执行linux命令
环境说明
手燃衫头有一台linux的测试服务器,最近因为业务需要,需要通过php访问另一台服务器去执行某些命令。
由于另一台服务器已经对这台服务器开了私钥,所以在终端上是可以直接执行命令而不需要输入密码的。
问题
PHP无法使用exec命令,没有任何返回值。
解决途径
1.php.ini的配置有问题。
由于php是7.0以上的版本,取消了安全模式,所以考虑PHP.ini文件配置。
打开php配置文件,里面有一行disabel_function的值,此处记录了禁止运行的函数,在里面讲exec和shell_exec,system等函数删除。
2.权限问题
修改以后PHP可以运行部分命令了,但是部分外部程序和命令仍然不能运行。使用sudo返回失败。
于是运行“whoami”查看,环境下php-frm的运行角色镇段唯是www。
于是修改sudoers文件。
vi /etc/sudoers
将www添加到
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
下面:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
www ALL=(ALL) NOPASSWD:ALL
然后找到Default requiretty这一行,把他注释掉
# Default requiretty
ps:意思就是sudo默认需要tty终端,注释掉就可以在后台执行了.
重启nginx和php-fpm
service nginx restart
service php-fpm restart
这样,PHP就可以在需要御培执行外部命令的时候使用sudo利用root身份执行命令,而不会报错或者执行失败了!
2. 问下大神们,h5全栈前端方向和php后端方面哪个比较好,比较有前途
PHP全栈~
全球前100万的站点中,有70%左右的站点用PHP开发,它与Linux/Mysql/Apache/Nginx等组成黄金搭档,无论从成本投入和开发周期的考虑,PHP都是一个不错的选择。
PHP可用在网站开发,API接口开发,服务器端开发,广告系统开发,内部OA系统开发,移动端后台开发,游戏开发等,特别在移动互联网发展迅猛的今天,PHP借机上位,重回一线开发语言行列。
全栈是全面横向发展,单学PHP是专精纵向发展。PHP学精了,也是有前途的。但是,现在有几个做PHP的自己不会写点前端?再说你不可能一来就进大公司做团队开发,你只负责PHP开发。而小公司基本上也不会让你只写PHP,都是一个人当几个人用。这就是为什么全栈更有前途的原因。
最近国内外都在流行一个词叫Full Stack,中文翻译过来叫全栈工程师,也叫全端工程师。微博上很多专业人士都在讨论全端工程师,有赞有毁的。我对全端工程师的定义是:掌握多种技能,并 能利用多种技能独立完成产品的人。打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人。至于 要掌握哪些技能,我觉得这个要跟从事的行业与技术方向有关,做互联网的和做软件的是不一样的,即使是做互联网的,后端也可以分为很多种技术流派。