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;"