hi
經歷了4天大餐的洗禮,整個人都思密達了。。。昨天的懶,是沒有原因的懶,總之就是該提筆了親
1、Ubuntu下的LAMP配置
-----Ubuntu基礎知識-----
----管理員權限
出於安全,Ubuntu不推薦使用root賬戶遠程登錄-強制使用其他普通賬戶
由於普通賬戶沒有超級管理員權限,默認情況下又不能使用root賬戶登錄(遠程等),所以需要用到這麼兩條命令
su(Switch User)切換到超級管理員
sudo(Switch User and DO)以超級管理員身份執行
兩者是有本質區別的-前者是“老大”(root)出馬,必須用root密碼,直到exit才退出;後者是“小弟”請求老大給予准許,並且是臨時的權限,密碼只用普通的就行
----預備知識
liang@liang-andy:~ $
用戶名@主機名:當期目錄 用戶類型標記
其中,$表示普通用戶,#表示超級管理員
---
liang@liang-andy:~$ pwd
/home/liang
~表示現在正處於當前用戶的個人文件夾中,pwd命令可以給出實際目錄
---
下面演示這兩個命令:修改root密碼
liang@liang-andy:~$ sudo passwd root
[sudo] password for liang:
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
liang@liang-andy:~$
然後是su
liang@liang-andy:~$ su
密碼:
root@liang-andy:/home/liang#
注意看目錄路徑已經變了,還有就是#
----apt-get軟件安裝工具
主要作用就是獲取軟件列表apt-get update和軟件安裝apt-get install
----其他必要命令學習
http://itlab.idcquan.com/linux/special/linuxcom/
---
名稱 : ls
使用權限 : 所有使用者
使用方式 : ls [-alrtAFR] [name...]
說明 : 顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。
參數 :
-a 顯示所有檔案及目錄 (ls內定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會列出)
-l 除檔案名稱外,亦將檔案型態、權限、擁有者、檔案大小等資訊詳細列出
-r 將檔案以相反次序顯示(原定依英文字母次序)
-t 將檔案依建立時間之先後次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的檔案名稱後加一符號;例如可執行檔則加 "*", 目錄則加 "/"
-R 若目錄下有檔案,則以下之檔案亦皆依序列出
范例:
列出目前工作目錄下所有名稱是 s 開頭的檔案,愈新的排愈後面 :
ls -ltr s*
將 /bin 目錄以下所有目錄及檔案詳細資料列出 :
ls -lR /bin
列出目前工作目錄下所有檔案及目錄;目錄於名稱後加 "/", 可執行檔於名稱後加 "*" :
ls -AF
---
ll會列出該文件下的所有文件信息,包括隱藏的文件,而ls -l只列出顯式文件,說明這兩個命令還是不等同的!
---
指令名稱 : ln
使用權限 : 所有使用者
使用方式 : ln [options] source dist,其中 option 的格式為 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
說明 : Linux/Unix 檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard
link)與軟連結(symbolic
link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔
案系統中,而軟連結卻可以跨越不同的檔案系統。
ln source dist 是產生一個連結(dist)到 source,至於使用硬連結或軟鏈結則由參數決定。
不論是硬連結或軟鏈結都不會將原本的檔案復制一份,只會占用非常少量的磁碟空間。
參數 :
-f : 鏈結時先將與 dist 同檔名的檔案刪除-d : 允許系統管理者硬鏈結自己的目錄-i : 在刪除與 dist
同檔名的檔案時先進行詢問-n : 在進行軟連結時,將 dist 視為一般的檔案-s : 進行軟鏈結(symbolic link)-v :
在連結之前顯示其檔名-b : 將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾-V
METHOD : 指定備份的方式--help : 顯示輔助說明--version : 顯示版本
范例 :
將檔案 yy 產生一個 symbolic link : zz
ln -s yy zz
將檔案 yy 產生一個 hard link : zz
ln yy xx
---
名稱 : cd
使用權限 : 所有使用者
使用方式 : cd [dirName]
說明 : 變換工作目錄至 dirName。 其中 dirName 表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的 home directory (也就是剛 login 時所在的目錄)。
另外,"~" 也表示為 home directory 的意思,"." 則是表示目前所在的目錄,".." 則表示目前目錄位置的上一層目錄。
范例 : 跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home directory :
cd ~
跳到目前目錄的上上兩層 :
cd ../..
cd - 返回進入當前目錄前所在目錄
名稱:cp
使用權限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。 (copy)
參數:
-a 盡可能將檔案狀態、權限等資料都照原狀予以復制。
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制。
范例:
將檔案 aaa 復制(已存在),並命名為 bbb :
cp aaa bbb
也就是 sudo cp document_A document_B
將所有的C語言程序拷貝至 Finished 子目錄中 :
cp *.c Finished
---
名稱:mv
使用權限:所有使用者
使用方式:
mv [options] source dest
mv [options] source... directory
說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。
參數:-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
范例:
將檔案 aaa 更名為 bbb :
mv aaa bbb
將所有的C語言程序移至 Finished 子目錄中 :
mv -i *.c
---
名稱:rm
使用權限:所有使用者
使用方式:rm [options] name...
說明:刪除檔案及目錄。
參數:
-i 刪除前逐一詢問確認。
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r 將目錄及以下之檔案亦逐一刪除。
范例:
刪除所有C語言程序檔;刪除前逐一詢問確認 :
rm -i *.c
將 Finished 子目錄及子目錄中所有檔案刪除 :
rm -r Finished
---
名稱: mkdir
使用權限:於目前目錄有適當權限的所有使用者
使用方式:mkdir [-p] dirName
說明:建立名稱為 dirName 之子目錄。
參數:-p 確保目錄名稱存在,不存在的就建一個。
范例:
在工作目錄下,建立一個名為 AAA 的子目錄 :
mkdir AAA
在工作目錄下的 BBB 目錄中,建立一個名為 Test 的子目錄。若 BBB 目錄原本不存在,則建立一個。(注:本例若不加 -p,且原本 BBB目錄不存在,則產生錯誤。)
mkdir -p BBB/Test
---
名稱:rmdir
使用權限:於目前目錄有適當權限的所有使用者
使用方式: rmdir [-p] dirName
說明: 刪除空的目錄。
參數: -p 是當子目錄被刪除後使它也成為空目錄的話,則順便一並刪除。
范例:
將工作目錄下,名為 AAA 的子目錄刪除 :
rmdir AAA
在工作目錄下的 BBB 目錄中,刪除名為 Test 的子目錄。若 Test 刪除後,BBB 目錄成為空目錄,則 BBB 亦予刪除。
rmdir -p BBB/Test
---
chmod----改變一個或多個文件的存取模式(mode) chmod [options] mode files 只能文件屬主或特權用戶才能使用該功能來改變文件存取模式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,默認是a(所有用戶)。只能選擇一個opcode(操作碼)。可指定多個mode,以逗號分開。 options: -c,--changes 只輸出被改變文件的信息 -f,--silent,--quiet 當chmod不能改變文件模式時,不通知文件的用戶 --help 輸出幫助信息。 -R,--recursive 可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄 --reference=filename 參照filename的權限來設置權限 -v,--verbose 無論修改是否成功,輸出每個文件的信息 --version 輸出版本信息。 who u 用戶 g 組 o 其它 a 所有用戶(默認) opcode + 增加權限 - 刪除權限 = 重新分配權限 permission r 讀 w 寫 x 執行 s 設置用戶(或組)的ID號 t 設置粘著位(sticky bit),防止文件或目錄被非屬主刪除 u 用戶的當前權限 g 組的當前權限 o 其他用戶的當前權限 作為選擇,我們多數用三位八進制數字的形式來表示權限,第一位指定屬主的權限,第二位指定組權限,第三位指定其他用戶的權限,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定權限。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的權限。 還可設置第四位,它位於三位權限序列的前面,第四位數字取值是4,2,1,代表意思如下: 4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。 2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。 1,設置粘著位。 實例: $ chmod u+x file 給file的屬主增加執行權限 $ chmod 751 file 給file的屬主分配讀、寫、執行(7)的權限,給file的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限 $ chmod u=rwx,g=rx,o=x file 上例的另一種形式 $ chmod =r file 為所有用戶分配讀權限 $ chmod 444 file 同上例 $ chmod a-wx,a+r file 同上例 $ chmod -R u+r directory 遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的權限 $ chmod 4755 設置用ID,給屬主分配讀、寫和執行權限,給組和其他用戶分配讀、執行的權限。-----搭建LAMP環境-----
----用apt-get安裝Apache MySQL PHP
apt-get有個特性,就是安裝東西會把相關的一些東西一起裝
---
liang@liang-andy:~$ sudo apt-get install apache2
安裝apache,然後輸入密碼(普通用戶)以及y,輸入以下命令,表示安裝成功
liang@liang-andy:~$ apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Oct 14 2015 14:18:49
然後輸入ifconfig得到ip地址
(我這裡是)192.168.1.100得到It works頁面驗證成功
---
安裝PHP
liang@liang-andy:~$ sudo apt-get install php5
liang@liang-andy:~$ php5 -v
PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:32:13)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
然後加載/檢查php5.load這個php實現對apache2操作的模塊(先不管為什麼,先這麼干就行)
liang@liang-andy:~$ cat /etc/apache2/mods-enabled/php5.load
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
---
安裝MySQL
liang@liang-andy:~$ sudo apt-get install mysql-server
這個不需要驗證版本,但同樣要檢查php操作mysql的模塊
liang@liang-andy:~$ cat /etc/php5/mods-available/mysql.ini
cat: /etc/php5/conf.d/mysql.ini: 沒有那個文件或目錄
注意,這裡我用的Ubuntu是14ls的版本,12的cat目錄是不一樣的/etc/php5/conf.d/mysql.ini
這裡,由於php默認不安裝mysql的拓展,所以需要手動安裝
liang@liang-andy:~$ sudo apt-get install php5-mysql
liang@liang-andy:~$ cat /etc/php5/mods-available/mysql.ini
; configuration for php MySQL module
; priority=20
extension=mysql.so
這樣就可以了,然後重啟mysql以及apache2
liang@liang-andy:~$ sudo service mysql restart
liang@liang-andy:~$ sudo service apache2 restart
---
一次性安裝:上面是分過程,下面一條給出一次性安裝
sudo apt-get install apache2 php5 mysql-server php5-mysql
----創建phpinfo探針
先裝vim
sudo apt-get install vim
再切換到php的www文件夾,用cd命令
cd /var/www/html(14.4版本)
然後在這裡創建一個php文件
sudo vim info.php
寫php代碼
<?php
echo mysql_connect('localhost','root','hanhan123') ? 'Hoho' : 'WTF';
phpinfo();
然後esc鍵,輸入:wq保存退出
http://192.168.1.100/info.php 浏覽器輸入驗證結果
Linux原來如此但疼,不寫了,明天見