2018-09-18

12.1 LNMP架構介紹
  • 和LAMP不同的是,提供web服務的是Nginx
  • 并且php是作為一個獨立服務存在的,這個服務叫做php-fpm
  • Nginx直接處理靜態請求,動態請求會轉發給php-fpm
12.2 MySQL安裝

二進制免編譯包安裝

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@localhost src]# ls
mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@localhost src]# tar xzvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@localhost src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost src]# ls /usr/local/mysql/
bin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files
[root@localhost src]# useradd mysql
[root@localhost src]# mkdir /data/
[root@localhost src]# cd /usr/local/mysql/
[root@localhost mysql]# yum install -y perl-Data-Dumper
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost mysql]# echo $?
0
[root@localhost mysql]# cp support-files/my-default.cnf  /etc/my.cnf
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock[root@localhost mysql]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/data/mysql[root@localhost mysql]# chkconfig --add mysqld
[root@localhost ~]# service mysqld start
Starting MySQL. SUCCESS! 
12.3/12.4 PHP安裝
[root@localhost src]# tar zxf php-5.6.30.tar.gz
[root@localhost src]# yum install -y libxml2-devel openssl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel bzip2-devel libcurl-devel
[root@localhost src]# cd php-5.6.30
[root@localhost php-5.6.30]# useradd -s /sbin/nologin php-fpm
[root@localhost php-5.6.30]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl
[root@localhost php-5.6.30]# make && make install
[root@localhost php-5.6.30]# cp php.ini-production  /usr/local/php-fpm/etc/php.ini
[root@localhost php-5.6.30]# vi /usr/local/php-fpm/etc/php-fpm.conf 
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[root@localhost php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-5.6.30]# chmod 755 /etc/init.d/php-fpm
[root@localhost php-5.6.30]# chkconfig --add php-fpm
[root@localhost php-5.6.30]# chkconfig php-fpm on
12.5 Nginx介紹
  • Nginx官網 nginx.org,最新版1.13,最新穩定版1.12
  • Nginx應用場景:web服務、反向代理、負載均衡
  • Nginx著名分支,淘寶基于Nginx開發的Tengine,使用上和Nginx一致,服務名,配置文件名都一樣,和Nginx的最大區別在于Tenging增加了一些定制化模塊,在安全限速方面表現突出,另外它支持對js,css合并
  • Nginx核心+lua相關的組件和模塊組成了一個支持lua的高性能web容器openresty,參考http://jinnianshilongnian.iteye.com/blog/2280928
12.6 Nginx安裝
[root@localhost src]# cd /usr/local/src
[root@localhost src]# wget http://nginx.org/download/nginx-1.12.1.tar.gz
[root@localhost src]# tar zxf nginx-1.12.1.tar.gz
[root@localhost src]# cd nginx-1.12.1
[root@localhost nginx-1.12.1]# ./configure --prefix=/usr/local/nginx
[root@localhost nginx-1.12.1]# make &&  make install
[root@localhost nginx-1.12.1]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx SettingsNGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"start() 
{echo -n $"Starting $prog: "mkdir -p /dev/shm/nginx_tempdaemon $NGINX_SBIN -c $NGINX_CONFRETVAL=$?echoreturn $RETVAL
}stop() 
{echo -n $"Stopping $prog: "killproc -p $NGINX_PID $NGINX_SBIN -TERMrm -rf /dev/shm/nginx_tempRETVAL=$?echoreturn $RETVAL
}reload()
{echo -n $"Reloading $prog: "killproc -p $NGINX_PID $NGINX_SBIN -HUPRETVAL=$?echoreturn $RETVAL
}restart()
{stopstart
}configtest()
{$NGINX_SBIN -c $NGINX_CONF -treturn 0
}case "$1" instart)start;;stop)stop;;reload)reload;;restart)restart;;configtest)configtest;;*)echo $"Usage: $0 {start|stop|reload|restart|configtest}"RETVAL=1
esacexit $RETVAL
[root@localhost nginx-1.12.1]# chmod 755 /etc/init.d/nginx
[root@localhost nginx-1.12.1]# chkconfig --add nginx 
[root@localhost nginx-1.12.1]# chkconfig nginx on 
[root@localhost nginx-1.12.1]# cd /usr/local/nginx/conf/
[root@localhost conf]# mv nginx.conf nginx.conf.bak
[root@localhost conf]# vim nginx.conf 
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;events
{use epoll;worker_connections 6000;
}http
{include mime.types;default_type application/octet-stream;server_names_hash_bucket_size 3526;server_names_hash_max_size 4096;log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'' $host "$request_uri" $status'' "$http_referer" "$http_user_agent"';sendfile on;tcp_nopush on;keepalive_timeout 30;client_header_timeout 3m;client_body_timeout 3m;send_timeout 3m;connection_pool_size 256;client_header_buffer_size 1k;large_client_header_buffers 8 4k;request_pool_size 4k;output_buffers 4 32k;postpone_output 1460;client_max_body_size 10m;client_body_buffer_size 256k;client_body_temp_path /usr/local/nginx/client_body_temp;proxy_temp_path /usr/local/nginx/proxy_temp;fastcgi_temp_path /usr/local/nginx/fastcgi_temp;fastcgi_intercept_errors on;tcp_nodelay on;gzip on;gzip_min_length 1k;gzip_buffers 4 8k;gzip_comp_level 5;gzip_http_version 1.1;gzip_types text/plain application/x-javascript text/css text/htm application/xml;server{listen 80;server_name localhost;index index.html index.htm index.php;root /usr/local/nginx/html;location ~ \.php$ {include fastcgi_params;fastcgi_pass unix:/tmp/php-fcgi.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;}    }
}
[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
[root@localhost conf]# /etc/init.d/nginx  start

擴展
Nginx為什么比Apache Httpd高效:原理篇 http://www.toxingwang.com/linux-unix/linux-basic/1712.html
https://coding.net/u/aminglinux/p/nginx/git/blob/master/4z/IO.md?public=true
https://www.zhihu.com/question/64727674
apache和nginx工作原理比較 http://www.server110.com/nginx/201402/6543.html
概念了解:CGI,FastCGI,PHP-CGI與PHP-FPM https://www.awaimai.com/371.html

轉載于:https://www.cnblogs.com/2KP2/p/9678812.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451246.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451246.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

舉例說明Java中代碼塊的執行順序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 結論 這里先把整理好的結論拋給大家,然后我在寫個程序來驗證我們的結論。在Java類被new的過程中,執行順序如…

Google 正式開源 Jib ,幫助 Java 應用快速容器化

Google 本周宣布開源一款新的 Java 工具 Jib ,旨在讓開發者使用他們熟悉的工具更輕松地將 Java 應用程序容器化。在7月9日發布的博客文章中,Google 軟件工程師 Appu Goundan 和 Qingyang Chen 將 Jib 描述為一個容器鏡像構建器,旨在處理將 Ja…

“公敵”京東:眾同行將其拖入價格戰

倒京東語錄 當當網董事長李國慶: 京東的資金只能維持到8月至12月。當當網是賺一個花兩個,而京東則是賺一個花四個。 蘇寧電器董事長張近東: 我至今沒有看見過哪個企業能通過這種方式取得最后勝利。這種違背正常商業邏輯的做法&#xff0c…

跨域與跨域訪問

什么是跨域 跨域是指從一個域名的網頁去請求另一個域名的資源。比如從www.baidu.com 頁面去請求 www.google.com 的資源。跨域的嚴格一點的定義是:只要 協議,域名,端口有任何一個的不同,就被當作是跨域 為什么瀏覽器要限制跨域訪…

thymeleaf 使用javascript定義數組報錯

js中免不了的要用的數組,一維的二維的三維的 但是當用到thymeleaf作為模版時候會有一些坑,導致數組不能用 org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "{checkbox: true, fixed: true}, {field: origi…

解決:Failed to execute goal on project aopcore: Could not resolve dependencies for project com.cmos:

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 一、問題描述 maven工程 jar包無法下載,報錯如下 : [ERROR] Failed to execute goal on project aopcore: Cou…

從Xbox和Zune中學到的四門創業課

導讀:微軟前娛樂與設備部門總裁Robbie Bach領導他的團隊,實現了Xbox的暢銷。然而,他領導該部門推出的Zune音樂播放器,卻沒那么成功。從Robbie這兩個經歷中,我們們能學到什么?本文是Robbie自己的總結&#x…

服務容錯保護斷路器Hystrix之七:做到自動降級

從《高可用服務設計之二:Rate limiting 限流與降級》中的“自動降級”中,我們這邊將系統遇到“危險”時采取的整套應急方案和措施統一稱為降級或服務降級。想要幫助服務做到自動降級,需要先做到如下幾個步驟: 可配置的降級策略&am…

from表單提交和JSON區別

form表單是“鍵值對”的數據格式,例如: a1&b2&c3 而json格式則與之不同,如下: {"a":1,"b":2,"c":3} 傳遞的數據比較簡單,那么兩種方式基本上沒什么大區別(當然后臺接…

在一個數組中,如何確定所需元素在數組中的位置.

package wac.wev.LianXi; public class CiShu {public static void main(String[] args){//創建一個數組int[] arr {101,23,123,34,13};int y Yuan(arr,13);System.out.println(y);}//1)明確返回值:int//2)明確形式參數:int[] arr 和 int value(value表示所需元素)public stati…

Java實現Excel導入數據庫,數據庫中的數據導入到Excel

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 實現的功能: Java實現Excel導入數據庫,如果存在就更新數據庫中的數據導入到Excel1、添加jxl.jar mysql-connect…

FreeBSD 10 將使用 Clang 編譯器替換 GCC

來自 phoronix 的消息稱,根據 FreeBSD 2012 第一季度的狀態報告 顯示,來自 LLVM 的 Clang 編譯器將成為 FreeBSD 10 的默認 C/C 編譯器,廢棄使用 GPL 授權協議的 GCC,而 Clang 的授權協議是 BSD。 Clang 是一個 C 編寫、基于 L…

HashMap中數組初始化的秘密

2019獨角獸企業重金招聘Python工程師標準>>> 我們知道,在新建一個HashMap對象時,無論傳的initialCapacity參數值為多少,最總HashMap中數組的長度始終為2的n次方,代碼如下: static final int tableSizeFor(i…

PLSQL 安裝+配置( Oracle數據庫連接工具 )

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.找到免安裝版本 PLSQL 解壓到自己想放的位置 (比如 D:\ChengXu\PLSQL\PLSQL) 2.配置環境變量 : 系統變量…

什么是Nginx?為什么使用Nginx?

一、前言為毛要用nginx服務器代理,不直接用tomcat 7.0,還做多了一次接請求?這個是我想問的,公司的新項目是要用Nginxtomcat7jdk開發的,用戶命名可以直接訪問tomcat,為啥還要用Nginx?這貨是個啥玩…

遵循五大設計理念 打造出色設計師

與其他設計不同,網頁設計會隨著時間的改變而不斷改變著。因此,網頁設計師需要不斷的自我提升,了解最前沿的設計趨勢以便能夠設計出更加新穎的網站。 兩年前,網頁設計呈現出一片新的思維方式和新穎的設計趨勢使得該領域彰顯出一片…

shell符號

*: 通配符 *.c : c結尾的文件 *v : v結尾的文件 v* : v開頭的文件轉載于:https://www.cnblogs.com/runlgs/p/9685751.html

偽共享和緩存行填充,Java并發編程還能這么優化!

前言 關于偽共享的文章已經很多了,對于多線程編程來說,特別是多線程處理列表和數組的時候,要非常注意偽共享的問題。否則不僅無法發揮多線程的優勢,還可能比單線程性能還差。隨著JAVA版本的更新,再各個版本上減少偽共享…

mysql中like % %模糊查詢

1,%:表示任意0個或多個字符。可匹配任意類型和長度的字符,有些情況下若是中文,請使用兩個百分號(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE %三% 將會把u_name為“張三”,“張貓三…

Java中判斷字符串是否為數字的五種方法

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 推薦使用第二個方法,速度最快。 方法一:用JAVA自帶的函數 Java代碼 public static boolean isNumeric(String…