LNMP架構介紹
- LNMP==Linux+Nginx+Mysql+PHP
- 和LAMP不一樣的是,提供web服務的是Nginx 而且php是做爲一個獨立服務存在的,這個服務叫作php-fpm Nginx直接處理靜態請求,動態請求會轉發給php-fpm
![](http://static.javashuo.com/static/loading.gif)
Mysql安裝
- 進入文件下載目錄,安裝包通常下載在這個目錄下:
/usr/local/src/
[root@localhost ~]# cd /usr/local/src/
- 下載安裝包,下載的版本爲5.6.39 [root@localhost src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
- 解壓下載的包 [root@localhost src]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
- 移動解壓完的目錄並更更名字爲mysql [root@localhost mysql]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
- 建立一個data目錄,能夠看到data目錄已經存在,那麼就不須要執行命令建立目錄 [root@localhost mysql]# mkdir data
- 建立一個mysql用戶 [root@localhost mysql]# useradd mysql
- 安裝mysql,進行初始化,指定用戶爲mysql,指定數據存放地址/data/mysql [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 運行完該命令後若是不知道出沒出問題,能夠執行echo $? 看輸出是否是0,是0表示沒有問題。
- 拷貝mysql的模板配置文件,mysql的配置文件存放在/etc/下,而且名字固定爲my.cnf,若是不想存放在這個目錄下,那麼啓動的時候須要指定配置文件 [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
- 拷貝啓動的腳本 [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
- 編輯啓動腳本 vim /etc/init.d/mysqld 找到basedir和datadir將內容更改以下: basedir=/usr/local/mysql datadir=/data/mysql
- 更改啓動腳本的配置文件爲755 [root@localhost mysql]# chmod 755 /etc/init.d/mysqld
- 將mysqld加入開啓啓動 [root@localhost mysql]# chkconfig --add mysqld
- 啓動mysql,下面兩條命令均可以啓動MySQL
- service mysqld start
- /etc/init.d/mysqld start [root@localhost mysql]# service mysqld start
php安裝
- 下載PHP安裝包 [root@localhost src]wget http://cn2.php.net/distributions/php-5.6.37.tar.gz
- 解壓安裝包 [root@localhost src]tar zxvf php-5.6.37.tar.gz
- 進入解壓後的源碼包 cd php-5.6.37
- 執行configure命令,該命令帶的參數較多,再執行完後能夠運行echo $? 驗證是否有錯誤。 [root@localhost php-5.6.37]# ./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 #prefix=/usr/local/php-fpm 指定安裝目錄 #with-config-file-path=/usr/local/php-fpm/etc 指定配置文件所在地址 #enable-fpm 啓動fpm服務 #with-fpm-user=php-fpm with-fpm-group=php-fpm 指定用戶以及用戶組
- configure完成後執行make && make install來編譯安裝 這一步完成以後一樣可使用echo $?驗證編譯和安裝時否出現了問題
- 拷貝配置文件 cp php.ini-production /usr/local/php-fpm/etc/php.ini
- 進入配置文件目錄 cd /usr/local/php-fpm/etc/
- 建立一個配置文件 vim 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 #用來定義sock文件的權限 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
- 拷貝啓動的腳本 cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
- 更改啓動腳本的權限 chmod 755 /etc/init.d/php-fpm
- 加入chkconfig服務列表 chkconfig --add php-fpm
- 新建一個php-fpm用戶 useradd php-fpm
- 啓動服務 service start php-fpm
[root@localhost init.d]# service php-fpm start
Starting php-fpm done
[root@localhost init.d]# ps aux |grep php-fpm
root 118323 0.0 0.2 124220 4924 ? Ss 23:51 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 118324 0.0 0.2 124220 4688 ? S 23:51 0:00 php-fpm: pool www
php-fpm 118325 0.0 0.2 124220 4688 ? S 23:51 0:00 php-fpm: pool www
php-fpm 118326 0.0 0.2 124220 4688 ? S 23:51 0:00 php-fpm: pool www
php-fpm 118327 0.0 0.2 124220 4688 ? S 23:51 0:00 php-fpm: pool www
php-fpm 118328 0.0 0.2 124220 4692 ? S 23:51 0:00 php-fpm: pool www
php-fpm 118329 0.0 0.2 124220 4696 ? S 23:51 0:00 php-fpm: pool www
Nginx介紹
Nginx官網 nginx.org,最新版1.15.3,最新穩定版1.15.2
Nginx應用場景:web服務、反向代理、負載均衡
Nginx著名分支,淘寶基於Nginx開發的Tengine,使用上和Nginx一致,服務名,配置文件名都同樣,和Nginx的最大區別在於Tenging增長了一些定製化模塊,在安全限速方面表現突出,另外它支持對js,css合併
Nginx核心+lua相關的組件和模塊組成了一個支持lua的高性能web容器openresty,參考 http://jinnianshilongnian.iteye.com/blog/2280928
關於Nginx的詳細介紹能夠參考:https://blog.csdn.net/hanhuili/article/details/9389571php