再不寫,我怕就再也不寫了-LAMP基礎
hi
經曆了4天大餐的洗禮,整個人都思密達了。。。昨天的懶,是沒有原因的懶,總之就是該提筆了親
1、Ubuntu下的LAMP配置
-----Ubuntu基礎知識-----
----管理員權限
出於安全,Ubuntu不推薦使用root賬戶遠程登入-強制使用其他普通賬戶
由於普通賬戶沒有超級管理員權限,預設情況下又不能使用root賬戶登入(遠程等),所以需要用到這麼兩條命令
su(Switch User)切換到超級管理員
sudo(Switch User and DO)以超級管理員身份執行
兩者是有本質區別的-前者是“老大”(root)出馬,必須用root密碼,直到exit才退出;後者是“小弟”請求老大給予准許,並且是臨時的許可權,密碼只用普通的就行
----預備知識
[email protected]:~ $
[email protected]:當期目錄 使用者類型標記
其中,$表示普通使用者,#表示超級管理員
---
[email protected]:~$ pwd
/home/liang
~表示現在正處於目前使用者的個人資料夾中,pwd命令可以給出實際目錄
---
下面示範這兩個命令:修改root密碼
[email protected]:~$ sudo passwd root
[sudo] password for liang:
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
[email protected]:~$
然後是su
[email protected]:~$ su
密碼:
[email protected]:/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有個特性,就是安裝東西會把相關的一些東西一起裝
---
[email protected]:~$ sudo apt-get install apache2
安裝apache,然後輸入密碼(普通使用者)以及y,輸入以下命令,表示安裝成功
[email protected]:~$ 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
[email protected]:~$ sudo apt-get install php5
[email protected]:~$ 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操作的模組(先不管為什麼,先這麼幹就行)
[email protected]:~$ cat /etc/apache2/mods-enabled/php5.load
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
---
安裝MySQL
[email protected]:~$ sudo apt-get install mysql-server
這個不需要驗證版本,但同樣要檢查php操作mysql的模組
[email protected]:~$ 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的拓展,所以需要手動安裝
[email protected]:~$ sudo apt-get install php5-mysql
[email protected]:~$ cat /etc/php5/mods-available/mysql.ini
; configuration for php MySQL module
; priority=20
extension=mysql.so
這樣就可以了,然後重啟mysql以及apache2
[email protected]:~$ sudo service mysql restart
[email protected]:~$ 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代碼
echo mysql_connect('localhost','root','hanhan123') ? 'Hoho' : 'WTF';
phpinfo();
然後esc鍵,輸入:wq儲存退出
http://192.168.1.100/info.php 瀏覽器輸入驗證結果
Linux原來如此但疼,不寫了,明天見