(二)企業部分之lnmp環境的搭建:mysql源碼安裝

  1. Web服務器架構

Web服務器架構一般主要由系統環境、Web服務器、數據庫和語言組成。

可以有以下組成方式:

系統:linux unix windox mac freebsd aix

Web服務器:apache nginx tengine

數據庫:mysql pgsql oracle

語言:php perl python jsp xml


2.LNMP、LAMP和LNMPA

LNMP、LAMP和LNMPA都是當今較流行的高性能網站服務器架構組合。

LNMP:Linux + Nginx + MySQL + PHP

LAMP:Linux + Apache + MySQL + PHP

LNMPA:Linux + Nginx + Mysql + PHP + Apache


(1)LNMP優點

  • LNMP和LAMP不同點在於Web服務器Nginx。

  • Nginx的主要特點是穩定、功能豐富、安裝配置簡單、低系統資源。Nginx對於反向代理和負載均衡有不錯的支持。Nginx不僅僅可以做爲Web服務器,還可以做負載均衡服務器、代理服務器和郵件服務器。

  • 作爲Web服務器來說,相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,Nginx處理靜態文件、索引文件,自動索引的效率非常高,體現更高的效率。

  • 作爲代理服務器,Nginx可以實現無緩存的反向代理加速,提高網站的運行速度。

  • 作爲負載均衡服務器,Nginx既可以在內部直接支持Rails和PHP,也可以支持HTTP代理服務器對外進行服務,同時還支持簡單的容錯和利用算法進行負載均衡;Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

  • 作爲郵件代理服務器來說, Nginx是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作爲郵件代理服務器)。

  • 安裝配置上,Nginx安裝簡單、配置靈活、配置文件非常簡潔(還能夠支持perl語法);性能方面,Nginx是專門爲性能優化而開發的,非常注重效率。它採用Poll模型,可以支持更多的併發連接,最大可以支持對50000個併發連接數的形影,而且只佔用很低的內存資源;可用性方面,Nginx支持熱部署,啓動速度特別迅速,可以在不間斷服務的情況下,對軟件版本或者配置進行升級,及時運行數月也無需重新啓動,幾乎可以做到7*24顯示不間斷運行。


Nginx性能高於Apache的原因

Nginx使用了最新的epoll(Linux 2.6內核)和kqueue(freebsd)網絡I/O模型,而Apache則使用的是傳統的select模型。雖然都是I/O 多路複用技術,但處理大量的連接的讀寫,Apache所採用的select網絡I/O模型非常低效。

【select 模型】

當處理數據量大的時候,select 模型存在三個問題:連接數受限;查找速度慢;數據由內核拷貝

1. 連接數受限。因爲一個進程所打開的 FD (文件描述符)是有限制的,由 FD_SETSIZE 設置,默認值是 1024/2048 ,因此 Select 模型的最大併發數就被相應限制了。

2. 查找速度慢。select 每次調用都會線性掃描全部的 FD 集合,這樣效率就會呈現線性下降。

3. 內核/用戶空間內存拷貝問題。


epoll 模型

1.Epoll 沒有最大併發連接的限制,上限是最大可以打開文件的數目,這個數字一般遠大於 2048, 一般來說這個數目和系統內存關係很大 ,具體數目可以 cat /proc/sys/fs/file-max 察看。

2.效率提升, Epoll 最大的優點就在於它只管你“活躍”的連接 ,而跟連接總數無關,因此在實際的網絡環境中, Epoll 的效率就會遠遠高於 select 和 poll 。

3.內存拷貝, Epoll 在這點上使用了“共享內存 ”,這個內存拷貝也省略了。


【總結】

當有 I/O 事件到來時,select只通知應用程序事件到來,應用程序必須輪詢所有的 FD 集合,測試每個 FD 是否有事件發生,並處理事件;Epoll不僅會告訴應用程序有I/0 事件到來,還會告訴應用程序相關的信息,這些信息是應用程序填充的,因此根據這些信息應用程序就能直接定位到事件,而不必遍歷整個FD 集合。


(2)LNMPA優點

  • LNMPA使用Nginx作爲前端服務器,能夠更快、更及時地使用更少的系統資源處理靜態頁面、js、圖片等文件,當客戶端請求訪問動態頁面時,由Nginx反向代理給作爲後端服務器的Apache處理,Apache處理完再交予Nginx返回給客戶端。

  • 採用LNMPA能夠更好的解決LNMP架構中由於PHP-FPM方面產生的502錯誤,同時能夠以很簡單的方式提供更安全的多用戶多站點環境。


3.LNMP

  • Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

  • Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。Nginx的主要特點是穩定、功能豐富、安裝配置簡單、低系統資源。Nginx對於反向代理和負載均衡有不錯的支持。Nginx不僅僅可以做爲Web服務器,還可以做負載均衡服務器、代理服務器和郵件服務器。

  • Mysql是一箇中小型關係型數據庫管理系統,可滿足一般情況下大部分數據管理需求。

  • PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。

注意:在搭建lnmp環境前,必須檢測系統內部不能存在相關的軟件:(純淨搭建)

#rpm -qa | grep php

#rpm -qa | grep httpd

#rpm -qa | grep mysql


環境:關閉防火牆、selinux置爲disabled


LNMP環境的搭建——MySQL

所需軟件包:mysql-boost-5.7.11.tar.gzcmake-2.8.12.2-4.el6.x86_64.rpm

tar zxf mysql-boost-5.7.11.tar.gz
cd mysql-boost-5.7.11
yum install cmake -y
yum update cmake-2.8.12.2-4.el6.x86_64.rpm
yum install gcc gcc-c++ ncurses-devel bison -y    ##解決依賴性
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/

若還有依賴性未解決,則繼續安裝,直到無報錯

過程中可能需要刪除CmakeCache.txt


make -j2

在這一段過程中報錯,很有可能是因爲內存空間不足,此時將內存擴大,即可正常安裝

 

建立一個虛擬磁盤,擴大空間

fdisk -cu /dev/vdb (8e)
pvcreate /dev/vdb1
vgextend VolGroup /dev/vdb1
lvextend -l +2047 /dev/VolGroup/lv_root      ##(將剩餘2047都加給它)(lvs;vgs)
resize2fs /dev/VolGroup/lv_root
df -h
make install
useradd -u 27 -s /sbin/nologin mysql
groupmod -g 27 mysql
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
mv /etc/my.cnf /etc/my.cnf.bak
cp my-defaule.cnf /etc/my.cnf

修改配置文件,並更新環境

vim /root/.bash_profile
source ~/.bash_profile

修改內容:

wKiom1dc-n6T0zuKAAAdsCLXwcU382.png


mysql --initialize --user=mysql
chown -R mysql.mysql /usr/local/lnmp/mysql/data
/etc/init.d/mysqld start
mysql -p     ##此時無密碼


成功登陸mysql

mysql_secure_installation     ##進行密碼修改

至此mysql源碼安裝成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章