延續前幾篇使用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)就好]
連線到虛擬機
當我們下載好winscp後,接著打開它。
File protocol 選擇 [ SCP ]
Host name 輸入虛擬機的ip
User name 輸入linux登入帳號
Password 輸入linux 登入密碼
登入成功後,便會出現如下圖的畫面(跟FTP很像)
接著,我們在本地端這邊找到自己的網站腳本,伺服端這邊則找到網站目錄(預設是var/www/html
),然後將檔案從本地端拖到伺服端
傳完後,便可以在虛擬機上執行我們的網站腳本了~~
插曲
基本上,按照上面的操作便可以成功運作了。但是也有可能會遇到狀況!!
檔案執行權限不足,PHP讀/寫檔案指令遇到permission denied問題
會這個問題多半是檔案沒有權限沒有設定成[755]或[777]。可以透過這兩種方式修改。
一.用winscp修改:
將檔案選起來,點選
右鍵
->Properties
2.將權限改成[755]或[777]
二.使用終端機上修改:
我們也可以透過終端機下指令:
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
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記