当先锋百科网

首页 1 2 3 4 5 6 7

1、lnmp架构简介

1、什么是lnmp架构
LNMP=Linux+Nginx+Mysql+PHP:lnmp是指一组通常在一起使用来运行动态网站或者服务器的自由软件名称首字母缩写
2、lnmp特点:
nginx性能稳定,功能丰富,运维简单,处理静态文件速度快且消耗系统资源极少。作为web服务器,nginx相比于apache使用更少的资源,支持更多的并发连接,体现更高的效率。

2、mysql安装

1、得到mysql的源码包,并解压,然后进入解压后的mysql文件

[root@server1 ~]# tar zxf mysql-boost-5.7.31.tar.gz
[root@server1 ~]# cd mysql-5.7.31/
[root@server1 mysql-5.7.31]# 

2、创建/usr/local/mysql,之后编译的mysql文件可以放在这个文件中

[root@server1 ~]# mkdir /usr/local/mysql

3、安装cmake软件(cmake跨平台工具是用来编译mysql源码的,用于设置mysql的编译参数,如安装目录,数据存放目录,字符编码,排序规则等)

[root@server1 ~]# yum install -y cmake

4、编译,在mysql-5.7.31目录执行cmake命令

[root@server1 mysql-5.7.31]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0

然后根据报错一个一个解决依赖性

yum install -y gcc gcc-c++ make ncurses-devel bison openssl-devel zlib-devel 

编译成功
在这里插入图片描述
5、安装

[root@server1 mysql-5.7.31]# make
[root@server1 mysql-5.7.31]# make install

首先执行make命令,等到编译到100%再继续执行make install命令,如果make命令不成功那就删除源码包重新安装。
安装完成
在这里插入图片描述
6、启动数据库

将启动脚本复制到/etc/init.d
[root@server1 support-files]# pwd
/usr/local/mysql/support-files
[root@server1 support-files]# cp mysql.server  /etc/init.d/mysqld

编辑/etc/my.cnf文件

[mysqld]
datadir=/usr/local/mysql/data             ##数据目录
socket=/usr/local/mysql/data/mysql.sock
symbolic-links=0


在这里插入图片描述
创建用户

useradd -M -d /usr/local/mysql/ -s /sbin/nologin mysql

创建环境变量在.bash_profile文件下添加mysql的配置文件

[root@server1 bin]# pwd
/usr/local/mysql/bin
[root@server1 bin]# cd 
[root@server1 ~]# vim .bash_profile 
[root@server1 ~]# source .bash_profile

在这里插入图片描述
mysql初始化,生成随机密码

[root@server1 ~]# mysqld --initialize --user=mysql

打开mysql

[root@server1 ~]# /etc/init.d/mysqld start
Starting MySQL SUCCESS!            

使用命令netstat -antlp可以看到3306端口打开,说明mysql已经运行
在这里插入图片描述
执行mysql_secure_installation命令进行安全安装设定

[root@server1 ~]# mysql_secure_installation

输入刚刚生成的随机密码
在这里插入图片描述
生成密码校验插件选择否
在这里插入图片描述
要不要删除匿名 需要,输入y
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
上述操作完成之后就可以登陆mysql

[root@server1 ~]# mysql -pwestos

在这里插入图片描述

3、PHP安装

1、解压php源码

[root@server1 ~]# tar jxf php-7.4.12.tar.bz2
如果没有bzip2软件则需要安装
[root@server1 ~]# yum install bzip2
[root@server1 ~]# cd php-7.4.12/

2、编译

[root@server1 php-7.4.12]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-mysqlnd --with-pdo-mysql --with-mysqli --with-openssl-dir --enable-gd --with-zlib-dir --with-curl --with-pear --enable-inline-optimization --enable-soap --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-fpm-systemd

 --prefix=/usr/local/php    ##指定安装路径
 --with-config-file-path=/usr/local/php/etc  ##指定php主配置文件的目录
 --enable-fpm         ##激活fastcji的管理器
 --with-fpm-user=nginx   ##指定php运行的身份,与nginx保持一致
 
 

执行./configure命令,根据提示安装依赖

 yum install -y libxml2-devel
 yum install -y sqlite-devel.x86_64
 yum install -y libcurl-devel.x86_64
yum install -y libpng-devel.x86_64
yum install oniguruma-devel-6.8.2-1.el7.x86_64.rpm oniguruma-6.8.2-1.el7.x86_64.rpm

之后执行安装命令

make&make install

3、添加环境变量

[root@server1 bin]# pwd
/usr/local/php/bin
[root@server1 bin]# cd 
[root@server1 ~]# vim .bash_profile
[root@server1 ~]# source  .bash_profile 

在这里插入图片描述
4、添加php配置文件

/usr/local/php/etc目录下添加php配置文件,以.conf结尾
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf

配置php-fpm.conf文件(fastcji管理器)

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none                      ##因为默认设置为none
pid = run/php-fpm.pid

在这里插入图片描述

[root@server1 etc]# cd php-fpm.d/
[root@server1 php-fpm.d]# cp www.conf.default  www.conf
[root@server1 php-fpm.d]# ls
www.conf  www.conf.default

将主配置文件复制到/usr/local/php/etc/php.ini目录下

[root@server1 php-7.4.12]# cp php.ini-production /usr/local/php/etc/php.ini

6、设置启动脚本两种方式
第一种

[root@server1 fpm]# pwd
/root/php-7.4.12/sapi/fpm
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm 
[root@server1 fpm]# chmod +x /etc/init.d/php-fpm 

配置完成就可以启动php
[root@server1 ~]# /etc/init.d/php-fpm start
Starting php-fpm  done

在这里插入图片描述
监听端口是9000
在这里插入图片描述

第二种

[root@server1 fpm]# cp php-fpm.service /usr/lib/systemd/system/
这种方法默认是有报错
编辑/usr/lib/systemd/system/php-fpm.service
# Mounts the /usr, /boot, and /etc directories read-only for processes invoked by this unit.
#ProtectSystem=full       

编辑完成后就可以启动
[root@server1 system]# systemctl start php-fpm

在这里插入图片描述
编辑php主配置文件/usr/local/php/etc/php.ini

[root@server1 etc]# vim php.ini

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =Asia/Shanghai            ##调整默认时区  


[root@server1 etc]# systemctl reload php-fpm   

4、 lnmp架构

1、整合nginx与php

编辑/usr/local/nginx/conf/nginx.conf

  location ~ \.php$ {                         ##当nginx处理php结尾的页面时,会将这个请求通过fastcgi_pass发送给9000端口
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
          #  fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }

[root@server1 conf]# nginx -s reload   ##编辑完成后重启nginx

2、设置nginx的开机自启动

[root@server1 conf]# cd /usr/lib/systemd/system
[root@server1 system]# vim nginx.service

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target


[root@server1 system]# systemctl daemon-reload

3、编写php首页

[root@server1 ~]# cd /usr/local/nginx/html
[root@server1 html]# vim index.php
[root@server1 html]# cat index.php 
<?php
phpinfo()

?>

- [ ] List item

4、整合nginx+php-fpm+mysql

vim /usr/local/php/etc/php.ini
[Pdo_mysql]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket=/usr/local   /mysql/data/mysql.sock
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket =/usr/local/mysql/data/mysql.sock

[root@server1 etc]# systemctl reload php-fpm


在这里插入图片描述

在这里插入图片描述
5、使用phpMyadim进行检测

[root@server1 etc]# unzip phpMyAdmin-5.0.2-all-languages.zip
[root@server1 ~]# cp phpMyAdmin-5.0.2-all-languages /usr/local/nginx/html/phpadmin
[root@server1 ~]# chmod 755 /usr/local/mysql/data

打开数据库,nginx
[root@server1 phpadmin]# nginx 
[root@server1 phpadmin]# /etc/init.d/mysqld  start
Starting MySQL. SUCCESS! 

在这里插入图片描述
输入用户名和密码进入
在这里插入图片描述
5、memcache模块

[root@server1 ~]# tar zxf memcache-4.0.5.2.tgz   ##解压memcache文件
[root@server1 ~]# cd memcache-4.0.5.2/           ##进入memcache文件夹,发现没有configure文件所以使用phpize命令
[root@server1 ~]# yum install -y autoconf
[root@server1 memcache-4.0.5.2]# phpize     
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@server1 memcache-4.0.5.2]# ls
autom4te.cache   config.h.in   config.w32  example.php   README
build            config.m4     CREDITS     LICENSE       run-tests.php
cloudbuild.yaml  configure     docker      memcache.php  tests
config9.m4       configure.ac  Dockerfile  php7                  ##出现configure文件
[root@server1 memcache-4.0.5.2]# ./configure --enable-memcache
[root@server1 memcache-4.0.5.2]# make
[root@server1 memcache-4.0.5.2]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/
之后编辑文件/usr/local/php/etc/php.ini
添加拓展参数extension=memcache

在这里插入图片描述

[root@server1 ~]# yum install -y memcached    
[root@server1 ~]# systemctl start memcached


在这里插入图片描述

[root@server1 memcache-4.0.5.2]# cp example.php /usr/local/nginx/html         
##复制配置文件

在这里插入图片描述

[root@server1 memcache-4.0.5.2]# cp memcache.php  /usr/local/nginx/html/
##将监控文件放到/usr/local/nginx/html目录
[root@server1 html]# pwd
/usr/local/nginx/html
[root@server1 html]# vim memcache.php 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述