1. 程式人生 > 其它 >ubuntu16.04+php7.0安裝 ssh2

ubuntu16.04+php7.0安裝 ssh2

技術標籤:Linuxlinux伺服器

目錄

需求: 當在 php 中執行 shell 指令碼時,發現有些command不成功,檢視日誌:沒有相應的許可權,使用
echo whoami 發現打印出的使用者名稱為 www-data

查詢一番資料後,有兩個想法:

  • 更改www-data的許可權,在 visudo 中新增該使用者無密碼NOPASSWD選項(好像有點騷
  • 使用 php-ssh2擴充套件,能夠通過密碼/祕鑰的形式連線主機,並執行 command;這樣不就改變user了

果斷採取行動二,方便在主機上對許可權進行配置,便於隔離。

安裝 php-ssh2

  • 環境:Ubuntu16.04 php7.0(其他沒試)

安裝過程並不順利,找到了多篇教程,好多推薦下載原始碼包編譯安裝,再修改 php.ini 檔案載入進去,
但過程繁瑣就沒試(懶)

後來在這裡發現僅用:

sudo apt-get install php7.0-cli
sudo apt-get install libssh2-1 php-ssh2

就可以啦;

課後小記

當採用PECL安裝或直接用原始碼包編譯安裝這些擴充套件時:

  • 如果你要尋找 php.ini 並進行配置它的位置在:
/etc/php/7.0/apache2/php.ini (Apache) 
/etc/php/7.0/fpm/php.ini (Nginx)
  • PECL與PEAR到底是啥呢?
PECL stands for PHP Extension Community Library, it has extensions written in C, that can be loaded into PHP to provide additional functionality. You need to have administrator rights, a C compiler and associated toolchain to install those extensions.

PEAR is PHP Extension and Application Repository, it has libraries and code written IN php. Those you can simply download, install and include in your code.
  • phpize用來準備編譯環境
If you have multiple PHP versions installed, you may be able to specify for which installation you'd like to build by using the --with-php-config option during configuration.

--with-php-config=[Insert path to proper php-config here]

For example:
./configure --with-php-config=/usr/local/php5/bin/php-config5
  • 當然也可以用這個不用任何其他擴充套件的庫 phpseclib 1.0

參考

更多關於ubuntu系統配置方面的內容可參考本人部落格:老香椿https://laoxiangchun.cn/