您好,登錄后才能下訂單哦!
大約在2010年以前,互聯(lián)網(wǎng)公司最常用的經(jīng)典web服務(wù)環(huán)境組合就是LAMP(即Linux,apache,mysql,PHP),近幾年隨著Nginx web 服務(wù)的逐漸流行,又出現(xiàn)了新的web服務(wù)環(huán)境組合----LNMP或LEMP,其中LNMP為Linux,nginx,Mysql,PHP等首字母的縮寫(xiě),而LEMP中E表示Nginx,,LNMP已經(jīng)逐漸成為國(guó)內(nèi)大中型互聯(lián)網(wǎng)公司網(wǎng)站的主流組合環(huán)境。
LNMP代表的就是:Linux系統(tǒng)下Nginx+MySQL+PHP這種網(wǎng)站服務(wù)器架構(gòu)。Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器。Mysql是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。PHP是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言。這四種軟件均為免費(fèi)開(kāi)源軟件,組合到一起,成為一個(gè)免費(fèi)、高效、擴(kuò)展性強(qiáng)的網(wǎng)站服務(wù)系統(tǒng)。
1.作為 Web 服務(wù)器:相比 Apache,Nginx 使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率。
2.作為負(fù)載均衡服務(wù)器:Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理服務(wù)器對(duì)外進(jìn)行服務(wù)。Nginx用C編寫(xiě),不論是系統(tǒng)資源開(kāi)銷(xiāo)還是CPU使用效率都比Perlbal要好的多。
3.作為郵件代理服務(wù)器:Nginx同時(shí)也是一個(gè)非常優(yōu)秀的郵件代理服務(wù)器(最早開(kāi)發(fā)這個(gè)產(chǎn)品的目的之一也是作為郵件代理服務(wù)器),Last/fm 描述了成功并且美妙的使用經(jīng)驗(yàn)。
4.Nginx 安裝非常的簡(jiǎn)單:配置文件非常簡(jiǎn)潔(還能夠支持perl語(yǔ)法)。Nginx支持平滑加載新的配置,還能夠在不間斷服務(wù)的情況下進(jìn)行軟件版本的升級(jí)。
當(dāng)LNMP組合工作時(shí),首先是用戶通過(guò)瀏覽器輸入域名請(qǐng)求Nginx web服務(wù),如果請(qǐng)求時(shí)靜態(tài)資源,則有Nginx解析返回給用戶;如果是動(dòng)態(tài)請(qǐng)求(.php結(jié)尾),那么就會(huì)把它通過(guò)fastCGI接口(生產(chǎn)常用方法)發(fā)送給PHP引擎服務(wù)(fastCGI進(jìn)程php-fpm)進(jìn)行解析,如果這個(gè)動(dòng)態(tài)請(qǐng)求要讀取數(shù)據(jù)庫(kù)數(shù)據(jù),那么PHP就會(huì)繼續(xù)向后請(qǐng)求MYSQL數(shù)據(jù)庫(kù),讀取需要的數(shù)據(jù),并最終通過(guò)Nginx服務(wù)把獲得額數(shù)據(jù)返回給用戶,這就是LNMP環(huán)境的基本請(qǐng)求順序流程
最早的Web服務(wù)器簡(jiǎn)單地響應(yīng)瀏覽器發(fā)來(lái)的HTTP請(qǐng)求,并將存儲(chǔ)在服務(wù)器上的HTML文件返回給瀏覽器,也就是靜態(tài)html。事物總是不 斷發(fā)展,網(wǎng)站也越來(lái)越復(fù)雜,所以出現(xiàn)動(dòng)態(tài)技術(shù)。但是服務(wù)器并不能直接運(yùn)行 php,asp這樣的文件,自己不能做,外包給別人吧,但是要與第三做個(gè)約定,我給你什么,然后你給我什么,就是握把請(qǐng)求參數(shù)發(fā)送給你,然后我接收你的處理結(jié)果給客戶端。那這個(gè)約定就是 common gateway interface,簡(jiǎn)稱cgi。這個(gè)協(xié)議可以用vb,c,php,python 來(lái)實(shí)現(xiàn)。cgi只是接口協(xié)議,根本不是什么語(yǔ)言。
WEB服務(wù)器將根據(jù)CGI程序的類(lèi)型決定數(shù)據(jù)向CGI程序的傳送方式,一般來(lái)講是通過(guò)標(biāo)準(zhǔn)輸入/輸出流和環(huán)境變量來(lái)與CGI程序間傳遞數(shù)據(jù)。
CGI工作原理:每當(dāng)客戶請(qǐng)求CGI的時(shí)候,WEB服務(wù)器就請(qǐng)求操作系統(tǒng)生成一個(gè)新的CGI解釋器進(jìn)程(如php-cgi.exe),CGI 的一個(gè)進(jìn)程則處理完一個(gè)請(qǐng)求后退出,下一個(gè)請(qǐng)求來(lái)時(shí)再創(chuàng)建新進(jìn)程。當(dāng)然,這樣在訪問(wèn)量很少?zèng)]有并發(fā)的情況也行??墒钱?dāng)訪問(wèn)量增大,并發(fā)存在,這種方式就不適合了。于是就有了fastcgi。
FASTCGI:WEB服務(wù)器與處理程序之間通信的一種協(xié)議,是CGI的改進(jìn)方案。CGI程序反復(fù)加載是CGI性能低下的主要原因,如果CGI程序保持在內(nèi)存中并接受FastCGI進(jìn)程管理器調(diào)度,則可以提供良好的性能、伸縮性、Fail-Over特性等。
FASTCGI是常駐型的CGI,它可以一直運(yùn)行,在請(qǐng)求到達(dá)時(shí),不會(huì)花費(fèi)時(shí)間去fork一個(gè)進(jìn)程來(lái)處理。FastCGI是語(yǔ)言無(wú)關(guān)的、可伸縮架構(gòu)的CGI開(kāi)放擴(kuò)展,將CGI解釋器進(jìn)程保持在內(nèi)存中,以此獲得較高的性能
一般情況下,FastCGI的整個(gè)工作流程是這樣的:
1、Web Server啟動(dòng)時(shí)載入FastCGI進(jìn)程管理器(IIS ISAPI或Apache Module)
2、FastCGI進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)CGI解釋器進(jìn)程(可見(jiàn)多個(gè)php-cgi)并等待WebServer的連接。
3、當(dāng)客戶端請(qǐng)求到達(dá)Web Server時(shí),FastCGI進(jìn)程管理器選擇并連接到一個(gè)CGI解釋器。 Web server將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程php-cgi。
4、FastCGI子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回Web Server。當(dāng)FastCGI子進(jìn)程關(guān)閉連接時(shí),請(qǐng)求便告處理完成。FastCGI子進(jìn)程接著等待并處理來(lái)自FastCGI進(jìn)程管理器(運(yùn)行在Web Server中)的下一個(gè)連接。在CGI模式中,php-cgi在此便退出了。
mysql是互聯(lián)網(wǎng)領(lǐng)域里非常重要的,深受廣大用戶歡迎的一款開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)軟件,由瑞典mysql AB公司開(kāi)發(fā)與維護(hù)。2006年,mysql AB公司被SUN公司收購(gòu),2008年,SUN公司又被傳統(tǒng)數(shù)據(jù)庫(kù)領(lǐng)域老大甲骨文(oracle)公司收購(gòu),因此,mysql數(shù)據(jù)庫(kù)目前屬于oracle公司,但仍然是開(kāi)源的。
mysql是一種關(guān)系型數(shù)據(jù)庫(kù)管理軟件,關(guān)系數(shù)據(jù)型數(shù)據(jù)庫(kù)的特點(diǎn)是將數(shù)據(jù)保存在不同的二位表中,并且將這些表放入不同的數(shù)據(jù)庫(kù)中,而不是把所有的數(shù)據(jù)統(tǒng)一放到一個(gè)大倉(cāng)庫(kù)中,這樣的設(shè)計(jì)增加了MYSQL的讀取速度,靈活性和可管理性。
mysql軟件下載地址信息: www.mysql.com mirrors.sohu.com
mysql軟件下載完畢后,查看mysql解壓后目錄文件大小
序號(hào) | mysql安裝方式 | 特點(diǎn)說(shuō)明 |
1 | yum/rpm包安裝 | 特點(diǎn)是簡(jiǎn)單,速度快,但是沒(méi)法定制安裝,入門(mén)新手常用這種方式 |
2 | 二進(jìn)制安裝 | 解壓軟件,簡(jiǎn)單配置后就可以使用,不用安裝,速度較快,專業(yè)的DBA喜歡這種方式。 |
3 | 源碼編譯安裝 | 特點(diǎn)是可以定制安裝,但是安裝時(shí)間長(zhǎng),列如:字符集安裝路徑 |
4 | 源碼軟件結(jié)合yum/rpm安裝 | 把源碼軟件制作成符合要求的rpm,放到yum倉(cāng)庫(kù)里,然后通過(guò)yum安裝,優(yōu)點(diǎn)是安裝快捷,可任意制定參數(shù),但是安裝者需要具備更深能力。 |
[root@web02 tools]# rz -E
rz waiting to receive.
[root@web02 tools]# ls
mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
nginx-1.10.2
nginx-1.10.2.tar.gz
[root@web02 tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
[root@web02 tools]# ls
mysql-5.6.34-linux-glibc2.5-x86_64 nginx-1.10.2
mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz nginx-1.10.2.tar.gz
[root@web02tools]# cdmysql-5.6.34-linux-glibc2.5-x86_64
[root@web02mysql-5.6.34-linux-glibc2.5-x86_64]# ll -hi
total 68K
663049 drwxr-xr-x 2 root root 4.0K May 22 09:56 bin
663186 -rw-r--r-- 1 7161 31415 18K Sep 30 2016 COPYING
800440 drwxr-xr-x 3 root root 4.0K May 22 09:57data
800443 drwxr-xr-x 2 root root 4.0K May 22 09:57docs
800533 drwxr-xr-x 3 root root 4.0K May 22 09:57include
663139 drwxr-xr-x 3 root root 4.0K May 22 09:57 lib
790581 drwxr-xr-x 4 root root 4.0K May 22 09:56 man
790632 drwxr-xr-x 10 root root 4.0K May 22 09:57 mysql-test
663138 -rw-r--r-- 1 7161 31415 2.5K Sep 30 2016README
800431 drwxr-xr-x 2 root root 4.0K May 22 09:57scripts
663095 drwxr-xr-x 28 root root 4.0K May 22 09:56 share
800447 drwxr-xr-x 4 root root 4.0K May 22 09:57sql-bench
800433 drwxr-xr-x 2 root root 4.0K May 22 09:57support-files
[root@web02 mysql-5.6.34-linux-glibc2.5-x86_64]# cd..
[root@web02 tools]# ls
mysql-5.6.34-linux-glibc2.5-x86_64 nginx-1.10.2
mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz nginx-1.10.2.tar.gz
[root@web02 tools]# du -sh mysql-5.6.34-linux-glibc2.5-x86_64
1.1G mysql-5.6.34-linux-glibc2.5-x86_64
[root@web02 tools]# mv mysql-5.6.34-linux-glibc2.5-x86_64/application/mysql-5.6.34
[root@web02 tools]# ln -s /application/mysql-5.6.34//application/mysql
[root@web02 tools]# cd /application/
[root@web02 application]# ls
mysql mysql-5.6.34 nginx nginx-1.10.2
[root@web02 application]# ll
total 8
lrwxrwxrwx 1root root 26 May 22 10:01 mysql ->/application/mysql-5.6.34/
drwxr-xr-x 13 root root 4096 May 22 09:57mysql-5.6.34
lrwxrwxrwx 1root root 25 May 19 08:52 nginx ->/application/nginx-1.10.2
drwxr-xr-x 11 root root 4096 May 19 12:59nginx-1.10.2
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /application/mysql
/application/mysql/scripts/mysql_install_db--basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
[root@web02 application]# cp /application/mysql/support-files/mysql.server/etc/init.d/mysqld ###把守護(hù)進(jìn)程文件放到啟動(dòng)文件中,守護(hù)進(jìn)程方式
[root@web02 application]#
[root@web02 application]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10875 May 22 10:13/etc/init.d/mysqld
[root@web02 application]# chmod +x /etc/init.d/mysqld
[root@web02 application]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10875 May 22 10:13/etc/init.d/mysqld
[root@web02 application]# sed -i 's#/usr/local/mysql#/application/mysql#g'/application/mysql/bin/mysqld_safe /etc/init.d/mysqld
注:替換后的application為安裝路徑,如果安裝路徑不在application中,那么就要替換為安裝的路徑名。
[root@web02 application]#
[root@web02 application]# cp /application/mysql/support-files/my-default.cnf/etc/my.cnf
cp: overwrite `/etc/my.cnf'? y
[root@web02 application]#
[root@web02application]#/etc/init.d/mysqld start
Starting MySQL... SUCCESS!
[root@web02 application]#/application/mysql/bin/mysql -uroot
mysql> exit
Bye
或者ctrl+d
優(yōu)化登錄過(guò)程
echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
source /etc/profile
which mysql
[root@web02 application]# mysqladmin -u root password "oldboy123"
Warning: Using a password on the command lineinterface can be insecure.
[root@web02 application]#
[root@web02 application]# mysql -uroot -poldboy123 ###注意-p后面不能有空格。
####11.加入開(kāi)機(jī)自啟動(dòng)
chkconfig --add mysqld
chkconfig mysqld on
show databases; <--- 查詢默認(rèn)的數(shù)據(jù)庫(kù)信息
use mysql; <--- 表示選擇使用一個(gè)數(shù)據(jù)庫(kù),
相當(dāng)于cd進(jìn)入一個(gè)數(shù)據(jù)庫(kù)
select database(); <--- 表示查看當(dāng)前所在數(shù)據(jù)庫(kù),類(lèi)似于pwd命令的功能
select user(); <--- 查看當(dāng)前登錄數(shù)據(jù)庫(kù)的用戶,類(lèi)似于whoami命令并且mysql還可以限制指定用戶可以從哪里進(jìn)行連接登錄數(shù)據(jù)庫(kù)
select user,host from mysql.user; ---查看可以登錄mysql數(shù)據(jù)庫(kù)的目錄,以及都可以從哪里進(jìn)行管理mysql數(shù)據(jù)庫(kù)
初級(jí) 添加刪除系列
#創(chuàng)建數(shù)據(jù)庫(kù)
create database wordpress;
#刪除數(shù)據(jù)庫(kù)
dropdatabase wordpress;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.03 sec)
mysql>
mysql> use mysql;
Reading table information for completion of tableand column names
You can turn off this feature to get a quickerstartup with -A
Database changed
mysql>
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
mysql>
2.5.4 查看哪個(gè)用戶登錄數(shù)據(jù)庫(kù)
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| |localhost |
| root | localhost |
| |web02 |
| root | web02 |
+------+-----------+
6 rows in set (0.00 sec)
mysql>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。