linux — PHP shell_exec () не даст таких же результатов, как bash

ПРОБЛЕМА: Эхо из bash-файла не распознается PHP. Echo — это имя файла, которое отправляется обратно на веб-сервер для перенаправления.

Это работает так:

PHP-файл на сайте доступен и запускает этот код:

<?php
$output=shell_exec("sshpass -p [serverpass] ssh root@[serverip] 'sh
/var/www/[bashfile].sh'");

$vpn="http://[serverip]/".$output.".ovpn";
$string = trim(preg_replace('/\s+/', '', $vpn));
header('Location: '.$string);
?>

Когда я бегу

sshpass -p [serverpass] ssh root@[serverip] 'sh /var/www/auto.sh'

в Bash на веб-сервере, он запускает эхо. Тем не менее, когда выполняется с php [filename].php это не так.

Вот код bash на сервере w / bash (не веб-сервер):

#!/bin/sh

newclient () {
if [ -e /home/$1 ]; then
homeDir="/home/$1"elif [ ${SUDO_USER} ]; then
homeDir="/home/${SUDO_USER}"else
homeDir="/root"fi
cp /etc/openvpn/client-template.txt $homeDir/$1.ovpn
echo "<ca>" >> $homeDir/$1.ovpn
cat /etc/openvpn/easy-rsa/pki/ca.crt >> $homeDir/$1.ovpn
echo "</ca>" >> $homeDir/$1.ovpn
echo "<cert>" >> $homeDir/$1.ovpn
cat /etc/openvpn/easy-rsa/pki/issued/$1.crt >> $homeDir/$1.ovpn
echo "</cert>" >> $homeDir/$1.ovpn
echo "<key>" >> $homeDir/$1.ovpn
cat /etc/openvpn/easy-rsa/pki/private/$1.key >> $homeDir/$1.ovpn
echo "</key>" >> $homeDir/$1.ovpn
echo "key-direction 1" >> $homeDir/$1.ovpn
echo "<tls-auth>" >> $homeDir/$1.ovpn
cat /etc/openvpn/tls-auth.key >> $homeDir/$1.ovpn
echo "</tls-auth>" >> $homeDir/$1.ovpn
}

var=`date +%s%N`
cd /etc/openvpn/easy-rsa/
./easyrsa build-client-full $var nopass
newclient "$var"mv ~/$var.ovpn /var/www/$var.ovpn
echo "$var"exit
;;

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]