職場で FTP 経由でサーバーにファイルをアップロードするにはどうすればよいですか? インターネット上で多くの例を見つけましたが、どれも成功しませんでした。親切な方が助けてくれると幸いです。
PHP は非ウィンドウ バージョンで ssh2 拡張機能 (PECL に属する) を提供します ssh2_sftp_ という接頭辞が付いている関数は
具体的な使用法についてはマニュアルをお読みください
私もまだやっていません。マニュアルを読んでください http://ca2 .php.net/manual/zh/ book.ssh2.php
<?phpclass Ftp { var $host; var $user; var $pswd; var $connectId = null; var $loginId = null; function Ftp($host, $user, $pswd, $timeout=900){ if($host) { $this->host = $host; } if($user) { $this->user = $user; } if($pswd) { $this->pswd = $pswd; } if(!$this->connectId = @ftp_connect($this->host)) { $this->error(""); } else { //echo 'connect is ok<br />'; } if(!$this->loginId = @ftp_login($this->connectId, $this->user, $this->pswd)){ $this->error(""); } else { if(@ftp_pasv($this->connectId, true)) { //echo 'pasv mode is open<br />'; } //echo 'login successful<br />'; } @ftp_set_option($this->connectId, FTP_TIMEOUT_SEC, $timeout); } function chdir($targetDir) { return @ftp_chdir($this->connectId, $targetDir); } function put($sourceFile, $targetFile, $ftpType=FTP_BINARY) { return @ftp_put($this->connectId, $targetFile, $sourceFile, $ftpType); } function chmod($file, $pr=0777){ return @ftp_chmod($this->connectId, $pr, $file); } function mkdir($dirName=''){ if(!$dirName) { return false; } else { return @ftp_mkdir($this->connectId, $dirName); } } function exec($cmd=''){ //for some unsafe system if(!$cmd){ return false; } return @ftp_exec($this->connectId, $cmd); } function ls($pwd='./') { return @ftp_nlist($this->connectId, $pwd); } function pwd() { return @ftp_pwd($this->connectId); } function rmFile($file) { return @ftp_delete($this->connectId, $file); } function close(){ return @ftp_close($this->connectId); } function error($errorMsg) { //echo "<pre class="brush:php;toolbar:false">"; print_r($errorMsg); //echo ""; return; }}?>
$ftp = new Ftp($row['ftpHost'], $row['ftpUser'], $row['ftpPswd']); if($ftp->loginId) { $webRoot = WEB_ROOT; $res=$ftp->put(APP_ROOT. "upload". "/". $fileName, $webRoot. $fileName); $res=$ftp->put(APP_ROOT."database.php", $webRoot."database.php"); $res=$ftp->put(APP_ROOT."wp-config.php", $webRoot."wp-config.php"); $res=$ftp->put(APP_ROOT."updatesql.php", $webRoot."updatesql.php"); $ftp->close(); $url = "http://".$row['ftpHost']."/database.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FAILONERROR, false); $result = curl_exec($ch); curl_close($ch);
ボス、至急、私のマシンは centos ですが、その設定方法を探しています。 2日間試しましたが、まだわかりません
あなた マシンはcentosです sftpを使用しますか? sudo apt-get install ssh
sshに付属しているftpです。 。 。
これを見て、問題が解決できるかどうかを確認してください。