IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> lnmp架构的搭建 -> 正文阅读

[PHP知识库]lnmp架构的搭建

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 

在这里插入图片描述

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

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:36:24  更:2021-09-07 10:36:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:19:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码