12.2 MySQL安裝
12.3/12.4 PHP安裝
12.5 Nginx介紹
LNMP架構介紹
php會啓動一個獨立的服務php-fpm, Nginx會把用戶請求的服務交給php處理,與MySQL做交互
php在LAMP中是以apache模塊形式出現,用戶請求php時,apache會交給php模塊,libphp5/7模塊
Nginx在處理靜態文件時性能比Apache高很多
MySQL安裝
把之前的MySQL清除掉
重新安裝,
下載解壓
把原/data/mysql/*相關刪除,初始化操作,目的是爲了生成Mysql服務啓動所需的文件
拷貝默認配置文件cp support-files/my-default.cnf /etc/my.cnf ,並確認Mysqld下的datadir和socket路徑正確
拷貝啓動腳本
修改basedir,datadir
把mysql加入啓動項,並設置開啓啓動
PHP安裝
make clean
編譯
報錯,少cRUL
yum list 查找devel包,並安裝
make & make install
編譯完成後echo $?檢測有無錯誤,對比php和php-fpm目錄,多了sbin和var目錄,var目錄下有log和run目錄,Log存日誌,run記錄PID,可指定
sbin目錄下有php-fpm文件可以用-i查看info, -m查看具體模塊名和/usr/local/php/bin/php -m,-i類似
但是不同的是,多了一個-t選項(/usr/local/php-fpm/sbin/php-fpm -t)檢查語法錯誤,如下圖出現報錯是因爲配置文件缺失,需要編輯配置文件才能開啓php-fpm服務
useradd -s /sbin/nologin php-fpm
把php.ini-production/development文件拷貝到/usr/local/php-fpm/etc/php.ini
進入/usr/local/php-fpm/etc 下 ls發現沒有.conf配置文件,可以更改.default文件,或者新建並編輯vim php-fpm.conf配置文件,輸入如下內容:
通常情況下php-fpm和nginx服務是在一臺服務器上運行的,兩者之間通信只需要通過內部網絡,故監聽本機IP即可(可監聽的是socket或者TCP/IP)可寫成 listen=127.0.0.1:9000,監聽其他IP也可以,端口默認9000,也可以改成其他的
listen.mod定義socket文件權限爲666,group定義服務的所屬組,主
進入源碼包目錄/usr/local/src/php 拷貝啓動腳本到/etc/ini.t下:cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start
ps aux |grep php-fpm如下圖
其中pool爲www,www在php-fpm服務的配置文件/usr/local/php-fpm/etc/php-fpm.conf中,如下圖
如下圖,socket文件權限爲666
Nginx介紹
①反向代理>>擴展爲負載均衡 (針對2臺或多臺機器)
②淘寶基於Nginx開發的Tengine,使用上和Nginx一致,服務名,配置文件名都一樣,和Nginx的最大區別在於Tenging增加了一些定製化模塊,在安全限速方面表現突出,另外它支持對js,css請求合併,減少併發相應次數
③Nginx核心+lua相關的組件和模塊組成了一個支持lua的高性能web容器openresty,參考http://jinnianshilongnian.iteye.com/blog/2280928
擴展
Nginx爲什麼比Apache Httpd高效:原理篇 http://www.toxingwang.com/linux-unix/linux-basic/1712.html
apache和nginx工作原理比較 http://www.server110.com/nginx/201402/6543.html
mod_php 和 mod_fastcgi以及php-fpm的比較 http://dwz.cn/1lwMSd
概念瞭解:CGI,FastCGI,PHP-CGI與PHP-FPMhttp://www.nowamagic.net/librarys/veda/detail/1319/https://www.awaimai.com/371.html