LNMP黃金架構部署
行走的CD:
LNMP的解析過程:提到 LNMP的解析過程,我們應需要了解一個概念 CGI, CGI 就是指一個通用網關接口,用于 HTTP 服務器和其他應用服務器通訊的一個工具,在這 HTTP 服務器一般咱們就是指的是 Nginx、 Apache 等 Web 服務器,其他應用服務器一般是指的指另一個動態服務器上安裝的 Python、 PHP 腳本編程語言編寫的一個邏輯框架。傳統的 CGI 的性能都比較弱,當 HTTP 給后端一個動態請求,都需要重啟一下 CGI 解析器,也就是重啟 PHP 寫的這個腳本框架,然后處理完畢后再發給 Nginx,那如果是一個高并發的情況下,服務器會產生巨大的性能壓力,它的處理效率會非常差,因此就會誕生了另一個工具叫 FASTCGI。FASTCGI 是一個可伸縮高效的活動在 HTTP 服務器與動態腳本之間通訊的網關接口,如果 HTTP 服務器與后端程序運行的兩臺分別部署在兩臺服務器上,這個 FASTCGI 的通訊形式就是 IP 加端口的網絡通訊形式,如果在一臺服務器上,那么就是一般是指用 socket 就可以進行本地通信。在Linux環境下,Fastcgi其實就是一個socket套接字文件。fastcgi進程管理器,也就是一個模塊fastcgi_pass,咱們的靜態請求 Nginx 會直接處理完之后返回給用戶,動態請求 Nginx 會轉發給 fastcgi +PHP, 其實也就是 fastcgi 和 PHP 的一個結合。
nginx源碼安裝
1.下載依賴包
yum -y install pcre pcre-devel openssl openssl-devel gcc make zlib-devel2.下載nginx源碼包
wget https://nginx.org/download/nginx-1.16.1.tar.gz
mkdir -p /usr/lnmp/nginx
useradd nginx -s /sbin/nologin -M
tar -zxf nginx-1.16.1.tar.gz3.編譯安裝
cd nginx*
./configure --user=nginx --group=nginx --prefix=/usr/lnmp/nginx
make && make install4.配置nginx的環境變量
echo "export PATH=$PATH:/usr/lnmp/nginx/sbin" >>/etc/profile
source /etc/profile5.啟動nginx
nginx
ss -nplt
mysql源碼安裝
1.下載依賴包
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake2.下載mysql源碼包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
useradd -r mysql -M -s /bin/nologin
mkdir -p /usr/lnmp/{mysql,data,log}
tar xzvf mysql-boost-5.7.27.tar.gz3.編譯安裝
cd mysql-5.7.27/cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/lnmp/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/lnmp/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1make -j3 && make install4.初始化
cd /usr/lnmp/mysql
chown -R mysql.mysql .
./bin/mysqld --initialize --user=mysql --basedir=/usr/lnmp/mysql --datadir=/usr/lnmp/data
vim /etc/my.cnf[mysqld]
basedir=/usr/lnmp/mysql
datadir=/usr/lnmp/data 5.啟動mysql
/usr/lnmp/mysql/bin/mysqld_safe --user=mysql &
啟動之后再按一下回車!即可后臺運行6.修改啟動方式
cp support-files/mysql.server /etc/init.d/mysqld
systemctl daemon-reload
systemctl start mysqld
netstat -lntp | grep 3306
/usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8'7.配置環境變量
echo "export PATH=$PATH:/usr/lnmp/mysql/bin" >>/etc/profile
source /etc/profile
php源碼安裝
1.下載依賴包
yum install -y apr* autoconf automake bison bzip2 bzip2* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* zlib-devel2.libiconv 包的編譯安裝
yum源中缺少libiconv包,用于php的編碼轉換
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/lnmp/libiconv
sed -i -e '/gets is a security/d' srclib/stdio.in.h
make -j4 && make install3.下載php源碼包
wget https://www.php.net/distributions/php-8.3.4.tar.gz
tar xf php-8.3.4.tar.gz
cd php-8.3.44.編譯安裝php
./configure --prefix=/usr/lnmp/php --with-config-file-path=/usr/lnmp/php --with-config-file-scan-dir=/usr/lnmp/php/php.d --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-gd --with-iconv --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache
make -j4 && make install5.配置開發環境文件
cp php.ini-production /usr/lnmp/php/lib/php.ini
vim +1384 /usr/lnmp/php/lib/php.ini
打開session.save_path ="/tmp"6.FastCGI的配置文件
cd /usr/lnmp/php/etc/
ls
php-fpm.conf.default php-fpm.d
cp php-fpm.conf.default php-fpm.conf
vim +17 php-fpm.conf
#17行將注釋取消并修改
pid = /var/run/php-fpm.pid cd /usr/lnmp/php/etc/php-fpm.d/
cp www.conf.default www.conf7.啟動php服務
/usr/lnmp/php/sbin/php-fpm
netstat -tunlp|grep php
聯動nginx
1.修改nginx配置文件,添加以下內容
vim /usr/lnmp/nginx/conf/nginx.conf
#在location /下添加 index.php
#在location~ \.php$ 將/scripts改為/usr/local/nginx/html
2.重新加載nginx
nginx -s reload
3.添加php文件測試
cd /usr/lnmp/nginx/html/
vim index.php
<h1>always on line </h1>
<?php
phpinfo();
?>
4.訪問
部署WordPress
1.下載并解壓wordpress安裝包
tar xf wordpress-*
rm -rf /usr/lnmp/nginx/html/*
cp -r wordpress/* /usr/lnmp/nginx/html/ # 將代碼拷貝到網站發布目錄中
nginx -s reload
2.創建數據庫
mysql -pQianfeng@123 -e "create database wordpress;"