延續前幾篇使用Virtualbox5.0安裝CentOS 7 並架設網站伺服器後,要怎麼將我們的網站腳本上傳到我們的虛擬機伺服器內呢??

原本我的第一個想法是用FTP傳輸,但後來想到FTP需要額外再裝套件才有辦法使用。所以為了減少一點伺服器的負載就放棄採用FTP了。

WinSCP連線到Linux

但...到底要怎麼將檔案傳到虛擬機裡面呢??Aidec在電腦前疑惑著,而腦中浮現的第一個念頭是上傳到遠端然後在使用linux的get指令將檔案下載下來。不過,下一秒馬上就覺得這樣做挺蠢的...之後有想到另一種方法,在設定虛擬機與實體機的共用資料夾。但又覺得雖然能在虛擬機下這樣做,但萬一有天在正式環境下那要該怎麼辦!!因此陷入一陣苦惱...後來經過三聲木魚聲後,突然想起在很久以前曾用過putty連線到openshift。而它的環境就是Linux阿。所以馬上打開putty輸入虛擬機ip,YA連進去了~~不過似乎哪裡怪怪的,嗯...putty是用來連遠端終端機的。(傻眼)


不過馬上舉一反三,想到既然putty可以透過ssh連線到終端機,那應該也有軟體可以使用ssh傳遞資料吧~果然,讓我找到今天的主角了。

winscp就能達成我們想要的。(三個願望一次滿足) 現在讓我們用winscp上傳我們的網站腳本吧!!(此次以安裝Wordpress為例 )


網站名稱:WinSCP

網站連結:https://winscp.net/

備份載點:WinSCP5.76版

下載

(使用備份載點可略過此段...)

進入官方連結後,點選download,在選擇要下載安裝版或免安裝版的[推薦用免安裝版(portable)就好]

1456412678501795.png

連線到虛擬機

當我們下載好winscp後,接著打開它。

File protocol 選擇 [ SCP ]

Host name 輸入虛擬機的ip

User name 輸入linux登入帳號

Password 輸入linux 登入密碼

winscp.png

登入成功後,便會出現如下圖的畫面(跟FTP很像)

1456413447780110.png

接著,我們在本地端這邊找到自己的網站腳本,伺服端這邊則找到網站目錄(預設是var/www/html),然後將檔案從本地端拖到伺服端

winscp.png

傳完後,便可以在虛擬機上執行我們的網站腳本了~~

1456414143152644.png

插曲

基本上,按照上面的操作便可以成功運作了。但是也有可能會遇到狀況!!

檔案執行權限不足,PHP讀/寫檔案指令遇到permission denied問題

會這個問題多半是檔案沒有權限沒有設定成[755]或[777]。可以透過這兩種方式修改。

一.用winscp修改:

  1. 將檔案選起來,點選右鍵 -> Properties 

winscp.png

2.將權限改成[755]或[777]

winscp.png

二.使用終端機上修改:

我們也可以透過終端機下指令:

sudo chmod -R 755 /var/www/html

然後重新啟動一下Apache 

systemctl restart httpd.service

在重新啟動Maria


systemctl restart mariadb.service

若還是出現permission denied 問題的話,那有可能是被SELinux擋住了。可以透過以下方法解決:

在終端機下輸入這兩個指令

chcon -R -t httpd_sys_content_t /var/www

chcon -R -t httpd_sys_content_rw_t /var/www/html

然後重新啟動一下Apache 

systemctl restart httpd.service

在重新啟動Maria


systemctl restart mariadb.service

或直接重新開機linux

rebot

這測試一次,應該就可以解決permission denied 的問題了。


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/virtualbox-use-winscp-upload-file-and-fix-php-permission-denied