超簡單易懂的LNMP架構
1. Nginx的安裝與配置
1.1 Nginx的工作原理
Nginx 由核心和模組組成。
Nginx 本身做的工作實際很少,當它接到一個 HTTP 請求時, 它僅僅是通過查詢配置檔案將此次請求對映到一個 location block,而此 location 中所配 置的各個指令則會啟動不同的模組去完成工作,因此模組可以看做 Nginx 真正的勞動工作者。
Nginx 的模組從結構上分為核心模組、基礎模組和第三方模組:
核心模組:HTTP 模組、EVENT 模組和 MAIL 模組;
基礎模組:HTTP Access 模組、HTTP FastCGI 模組、HTTP Proxy 模組和 HTTP Rewrite 模組;
第三方模組:HTTP Upstream Request Hash 模組、Notice 模組和 HTTP Access Key 模 塊。
1.2 Nginx的配置
上傳nginx-1.15.9.tar.gz 到opt目錄下
yum -y install gcc gcc-c++ make pcre-devel zlib-devel ###預先安裝好需要的環境
useradd -M -s /sbin/nologin nginx
cd /opt
tar zxvf nginx-1.15.9.tar.gz
cd nginx-1.15.9/
./configure
--prefix=/usr/local/nginx ##指定位置
--user=nginx ###使用者
--group=nginx ##組使用者
--with-http_stub_status_module
make -j3
make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx
nginx
netstat -anpt |grep nginx ###如果找不到netstat
vim /lib/systemd/system/nginx.service ##新增Nginx系統服務
[Unit]Description=nginx ### 描述用的什麼網頁服務
After=network.target ### 描述服務型別
[Service]Type=forking ### 後臺執行形式
PIDFile=/usr/local/nginx/logs/nginx.pid ###PID檔案位置
ExecStart= /usr/local/nginx/sbin/nginx ##啟動服務
ExecrReload= /usr/bin/kill -s HUP $MAINPID ###根據PID過載配置
ExecrStop= /usr/bin/kill -s QUIT $MAINPID ###根據PID終止程式
PrivateTmp=ture
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
2. Mysql的安裝與配置
#########安裝mysql######
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake useradd -s /sbin/nologin mysql
編譯安裝
###上傳mysql-boost-5.7.20.tar.gz到opt目錄下###
cd /opt
tar xzvf mysql-boost-5.7.20.tar.gz
cd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ ##開啟儲存引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ ##開啟儲存引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ ##開啟儲存引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ ##開啟儲存引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 ###自己的id號
make && make install
chown -R mysql:mysql /usr/local/mysql/
####配置選項含義###
1、DCMAKE_INSTALL_PREFIX:指定將 mysql 資料庫程式安裝到某目錄下,如目錄/usr/local/ mysql。
2、DSYSCONFDIR:指定初始化引數檔案目錄
3、DDEFAULT_CHARSET:指定預設使用的字符集編碼,如 utf8。
4、DDEFAULT_COLLATION:指定預設使用的字符集校對規則,utf8_general_ci是適用於 UTF-8 字符集的通用規則。
5、DWITH_EXTRA_CHARSETS:指定額外支援的其他字符集編碼。
#####建立調整配置檔案########
vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sockserver-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
chown mysql:mysql /etc/my.cnf
#######設定環境變數####
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
cd /usr/local/mysql/
bin/mysqld \ ###初始化資料庫
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306
mysqladmin -u root -p password 回車第一個直接回車,到第二個new passwd 輸入密碼,回車,再次確認密碼//剛開始沒密碼是空的直接回車,然後輸入密碼abc123,在此確認abc123,這是在root賬戶下執行的
mysql -u root -p ##這個命令敲下,提示要輸入密碼,這個就是剛才設定的密碼abc123
3.0 PHP的安裝和配置
####################安裝PHP環境#####
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \ ###字型樣式
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \ ###定位遠端資源openssl openssl-devel
編譯安裝
cd /opt
tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \ ##開啟傳遞會話
--enable-ftp \ ###開啟ftp服務
--enable-pdo \ ###連線資料庫的驅動
--enable-tokenizer \ ###身份認證令牌
--enable-zip ##壓縮
make && make install
cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
配置及優化FPM模組
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
cd /usr/local/php/etc/
vi php-fpm.conf
;pid = run/php-fpm.pid 搜到這一段
;user = nginx 自己手打的
;group = nginx 自己手打
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php-ini
netstat -anpt |grep 9000
ln -s /usr/local/php/bin/* /usr/local/bin/
ps aux |grep -c "php-fpm"
編輯測試頁
vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
systemctl restart nginx.service
在瀏覽器上面測試一下
相關文章
- 搭建LNMP架構LNMP架構
- 簡單易懂的PromisePromise
- docker部署LNMP架構DockerLNMP架構
- 簡單易懂的索引原理索引
- 簡單易懂的JSON框架JSON框架
- LNMP架構下的程式模型分析LNMP架構模型
- VMTools的安裝 (簡單易懂)
- 讓HTTPS簡單易懂HTTP
- BPAAS 簡單架構圖架構
- 一個超級簡單易懂的使用者登入網頁網頁
- LNMP架構介紹與部署LNMP架構
- Location配置項及LNMP架構LNMP架構
- 紅黑樹,超強動靜圖詳解,簡單易懂
- 容器架構轉傳統lnmp架構(失敗篇)架構LNMP
- 簡單易懂 —— this、self、static 的區別
- 簡單易懂的設計模式(上)設計模式
- 簡單易懂講註解
- 簡單瞭解 TiDB 架構TiDB架構
- 構建自己的簡單微服務架構(開源)微服務架構
- MongoDB4 事務 簡單易懂的?MongoDB
- LeetCode HOT 100:子集(簡單易懂的回溯)LeetCode
- 最簡單易懂的ChatGPT入門指南!ChatGPT
- 萬億級資料的方法,簡單易懂!
- 通俗易懂的Android應用架構思想Android應用架構
- 我對微服務架構的簡單理解微服務架構
- 簡單易懂KVC基礎篇
- [教程]一份簡單易懂的 TensorFlow 教程
- MySQL資料庫的基本使用簡單易懂MySql資料庫
- 簡單易懂的tinker熱修復原理分析
- MVVM架構在Flutter中的簡單實踐MVVM架構Flutter
- 簡單地聊一聊Spring Boot的構架Spring Boot
- 簡單介紹架構設計的原則!架構
- 超融合基本架構簡單定義架構
- 簡單易懂的XSS(跨站指令碼攻擊)指令碼
- 小程式的生命週期函式(簡單易懂)函式
- 簡單易懂的程式與執行緒詳解執行緒
- 如何最簡單、通俗地理解GPT的Transformer架構?GPTORM架構
- 簡單實現微服務架構的實踐分享微服務架構