摘要:最近幫同學(xué)做一個網(wǎng)站,同學(xué)買的是阿里云服務(wù)器,Linux發(fā)行版是Ubuntu12.04。我在本地把程序?qū)懞?,都調(diào)試好了。然后他讓我自己發(fā)布和部署。之前在大學(xué)里上操作系統(tǒng)課程時,也用過一段時間的Ubuntu,那個時候應(yīng)該是10.04。并且是虛擬機,有界面的?,F(xiàn)在是服務(wù)器版本,只有命令行,而且自己要使用終端模擬器鏈接。所以就搜索資料,看哪些工具好用,而已方便。找了一圈,發(fā)現(xiàn)下面2個工具結(jié)合起來蠻好的。
最近幫同學(xué)做一個網(wǎng)站,同學(xué)買的是阿里云服務(wù)器,Linux發(fā)行版是Ubuntu12.04。我在本地把程序?qū)懞?,都調(diào)試好了。然后他讓我自己發(fā)布和部署。之前在大學(xué)里上操作系統(tǒng)課程時,也用過一段時間的Ubuntu,那個時候應(yīng)該是10.04。并且是虛擬機,有界面的?,F(xiàn)在是服務(wù)器版本,只有命令行,而且自己要使用終端模擬器鏈接。
所以就搜索資料,看哪些工具好用,而已方便。找了一圈,發(fā)現(xiàn)下面2個工具結(jié)合起來蠻好的。文件上傳和權(quán)限改變工具:WinSCP,另外一個就是命令行終端模擬器:Xshell。這2個工具順利幫我解決了這次在Linux上發(fā)布和部署PHP代碼的問題。軟件圖標(biāo)如下:
注意事項1:LAMP安裝過程了,除了順序安裝Apache,MySQL和PHP。還要安裝PHP對Apache對MySQL的支持。
同學(xué)告訴我,他已經(jīng)安裝了Apache,MySQL5.5和PHP。但是我的代碼放到/var/www目錄下,只要有調(diào)用MySQL的頁面都運行不了,顯示500服務(wù)器內(nèi)部錯誤。這個比較糾結(jié),然后一行一行的注釋,發(fā)現(xiàn)下面這行代碼無法執(zhí)行:
$databaseConnection = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
我就問他,你確定裝好了PHP,MySQL5.5。他說肯定呀!都是按照步驟安裝的。開始我們都以為mysqli的擴展沒有安裝,就在那里改php.ini里面extension。改了,然后重啟了幾次Apache2和MySQL,都不起作用。后來我記得在Windows上配置時,要在PHP里面加載MySQL的dll。那在Linux系統(tǒng)中也需要的吧!然后就問他這個裝了沒有,他說應(yīng)該沒有。然后我們就搜索,發(fā)現(xiàn)確實需要裝。命令是:
sudo apt-get install libapache2-mod-auth-mysql sudo apt-get install php5-mysql #重啟Apache sudo /etc/init.d/apache2 restart
注意事項2:MySQL在Linux上默認(rèn)對表名是大小寫敏感的。 開始以為大功告成,可以洗澡睡覺了。發(fā)現(xiàn)點了幾個頁面,又有頁面500錯誤了。怪了,這下又是什么問題。注釋和運行了半天,發(fā)現(xiàn)有一條sql語句的程序代碼,運行不了。SELECT * FROM USERS WHER id=?; 這是一條非常簡單的sql語句呀!怎么跑不動呢?開始以為是bind_param(‘i’$user_id),這里綁定數(shù)據(jù)有問題。后來想到之前,公司項目中,同事從連接Oracle數(shù)據(jù)庫代碼搬遷到連接MySQL數(shù)據(jù)庫時,出現(xiàn)表名大小寫有問題。我突然想到是不是也有這個問題,把USERS改成users就ok了。后面查找資料得出,MySQL在Linux默認(rèn)對表名是大小寫敏感的。
總結(jié)如下:
1.Web開發(fā)工程師,不管前端,后臺還是數(shù)據(jù)庫,都需要了解一些Linux相關(guān)知識。因為x86 linux服務(wù)器是未來的趨勢,而且公司的現(xiàn)有系統(tǒng)都慢慢的往Linux上遷移。
2.遇到問題,一方面除了在Google上搜索,有時在平時工作中積累的經(jīng)驗也非常的寶貴。所以平時需要把一些錯誤的經(jīng)驗,或者問題的解決辦法記錄下來,這樣可以提升解決問題的能力。