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層小洋樓的人,而普通工程師,則是可以和一群人蓋一幢摩天大樓的人。至於 要掌握哪些技能,我覺得這個要跟從事的行業與技術方向有關,做互聯網的和做軟體的是不一樣的,即使是做互聯網的,後端也可以分為很多種技術流派。