centos7 搭建LNMP(编译安装Nginx & PHP & Mysql)

一、nginx

		1.cd /usr/local
		2.安装wget : yum -y install wget

在这里插入图片描述

	3.下载nginx压缩包: wget https://nginx.org/download/nginx-1.24.0.tar.gz

在这里插入图片描述

	4.安装nginx前提准备:
			yum -y install gcc-c++
			yum -y install prce
			yum -y install prce-devel
			yum -y install zlib
			yum -y install zlib-devel
			yum -y install openssl
			yum -y install openssl-devel

	5.开放80端口:
		firewall-cmd --query-port=80/tcp
		firewall-cmd --add-port=80/tcp --permanent

	6.编译nginx:
		yum -y install make
		①解压nginx: tar -xvf nginx-1.24.0.tar.gz
		②进入nginx-1.24解压根目录: 执行 ./configure 
					自定安装nginx目录,编译地址修改
						a.(默认位置/usr/local/nginx)存放nginx安装文件的位置(不一定存放核心二进制文件(取决于--sbin-path),其里面一般html、动态模块软链
					   ./configure --prefix="/usr/local/www/nginx/nginx1.24"
					   b.(默认位置/usr/local/nginx/sbin/nginx)二进制的核心可执行文件(名为nginx)
					   ./configure --sbin-path="/usr/local/www/nginx/nginx1.24/sbin/nginx"
					   c.默认位置/usr/local/nginx/modules)一般存放动态模块的so文件(相当于window的dll文件)
					   ./configure --modules-path="/usr/local/www/nginx/nginx1.24/modules"
					   d.(默认位置/usr/local/nginx/conf/nginx.conf)nginx的关键配置文件
					   ./configure --conf-path="/usr/local/www/nginx/nginx1.24/conf"
					   e.(默认位置/usr/local/nginx/logs/error.log)错误日志
					   ./configure --error-log-path="/usr/local/www/nginx/nginx1.24/logs/error.log"
					   f.(默认位置/usr/local/nginx/logs/access.log)访问日志
					   ./configure --http-log-path="/usr/local/www/nginx/nginx1.24/logs/access.log"
					   g.(默认位置/usr/local/nginx/logs/nginx.pid)正在运行的nginx进程号
					   ./configure  --pid-path="/usr/local/www/nginx/nginx1.24/logs/nginx.pid"
					   h.(默认位置/usr/local/nginx/logs/nginx.lock)nginx锁
					   ./configure --pid-path="/usr/local/www/nginx/nginx1.24/logs/nginx.lock"
					
					
		make
		make install

	7.配置开机启动
		cd /lib/systemd/system
		vim nginx.service
		编辑内容如下:
				[Unit]
				Description=nginx
				After=network.target
				
				[Service]
				Type=forking
				ExecStart = /usr/local/nginx/sbin/nginx
				ExecReload = /usr/local/nginx/sbin/nginx reload
				ExecStop = /usr/local/nginx/sbin/nginx quit
				PrivateTmp = true
				
				[Install]
				WanteBy=multi-user.target
		
		8.启动nginx
			systemctl enable nginx.service
			systemctl start nginx.service

		9.	最后在主机浏览器中输入虚拟机IP

在这里插入图片描述

二、PHP 非常详细的php出错解决方案

		前提先卸载yum自带的php-5.4的自带版本:yum remove php-mysql php php-fpm php-common

		1.安装php依赖包
		yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libsqlite3x-devel oniguruma-devel
		2.安装编译工具
		yum groupinstall 'Development Tools'
		3.下载php8.0
		wget -c https://www.php.net/distributions/php-8.0.0.tar.gz
		
		4.解压php压缩包并进入该文件根目录
		tar -zxvf ./php-8.0.0.tar.gz
		cd ./php-8.0.0
		
		5.源码oniguruma库
			wget https://github.com/kkos/oniguruma/releases/download/v6.9.5_rev1/onig-6.9.5-rev1.tar.gz -O onig-6.9.5.tar.gz
		./configure --prefix=/usr --libdir=/lib64

		6.预编译php
		./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --enable-inline-optimization \
    --disable-debug \
    --disable-rpath \
    --enable-shared \
    --enable-soap \
    --with-xmlrpc \
    --with-openssl \
    --with-mhash \
    --with-pcre-regex \
    --with-sqlite3 \
    --with-zlib \
    --enable-bcmath \
    --with-iconv \
    --with-bz2 \
    --enable-calendar \
    --with-curl \
    --with-cdb \
    --enable-dom \
    --enable-exif \
    --enable-fileinfo \
    --enable-filter \
    --with-pcre-dir \
    --enable-ftp \
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib-dir \
    --with-freetype-dir \
    --enable-gd-jis-conv \
    --with-gettext \
    --with-gmp \
    --with-mhash \
    --enable-json \
    --libdir=/lib64
    --enable-mbstring \
    --enable-mbregex \
    --enable-mbregex-backtrack \
    --with-libmbfl \
    --with-onig \
    --enable-pdo \
    --with-pdo-mysql \
    --with-zlib-dir \
    --with-mysqli
    --with-pdo-sqlite \
    --with-readline \
    --enable-session \
    --enable-shmop \
    --enable-simplexml \
    --enable-sockets \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-wddx \
    --with-libxml-dir \
    --with-xsl \
    --enable-zip \
    --enable-mysqlnd-compression-support \
    --with-pear \
    --enable-opcache
    
	7.编译php
	make && make install
	
	8.检验php是否安装完成
	php -v

出错点:
	PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: ext/mysqli (ext/mysqli: cannot read file data: Is a directory), ext/mysqli.so (ext/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'gd' (tried: ext/gd (ext/gd: cannot read file data: Is a directory), ext/gd.so (ext/gd.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: ext/mysqli (ext/mysqli: cannot read file data: Is a directory), ext/mysqli.so (ext/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

这个点我找了很久很久:
		我先在本目录下 cp php.ini-development php.ini;vim php.ini进行配置 一直都报错;最后解决是在 /urs/local/php.ini 里面去把extension=mysqli && extension=gd 前面加上“;”注释掉,然后再回到php-8.0.0下重新执行5 和 6 步骤;最后完成了;
源码编译安装会出现无穷无尽的问题,本文截止已经花费了五个晚上(每晚三小时)

	9.添加php-fpm环境变量,设置开启启动
		vim /lib/systemd/system/php-fpm.service
		输入以下内容:(pid,php-fpm,conf路径按照个人的实际路径修改)
		[Unit]
		Description=The PHP FastCGI Process Manager
		After=syslog.target network.target
		
		[Service]
		Type=simple
		PIDFile=/usr/local/php/var/run/php-fpm.pid
		ExecStart=/usr/local/php/sbin/php-fpm 
		ExecReload=/bin/kill -USR2 $MAINPID
		ExecStop=/bin/kill -SIGINT $MAINPID
		
		[Install]
		WantedBy=multi-user.target

在这里插入图片描述

10.为php安装composer工具 :转至

三、mysql 下载网址

yum install mysql-server --nogpgcheck:避开公钥

	1.卸载mariadb(与mysql会有冲突)
		查看:rpm -qa|grep mariadb
		强制卸载:rpm -e --nodeps mariadb-libs

	2.安装依赖
		yum install -y perl net-tools

	3.下载mysql安装包
	wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

	4.编译安装包
	rpm -ivh mysql-community-release-el7-5.noarch.rpm 

	5.安装mysql服务
	yum install -y mysql-server

	6.启动服务:systemctl start mysqld    (又双叒报错,再次已经换过很多种编译安装方法了,文档写了一半进行不下去了,又找新的编译方法 肝就完了)

在这里插入图片描述

	7.查看日志: journalctl -xe
		出现这个问题的原因是本地编译器gcc版本过低,查看本地版本:strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

在这里插入图片描述

在这里插入图片描述

	8.查找编译gcc时生成的最新动态库: find / -name "libstdc++.so*"
		将最新的动态库复制到/usr/lib64路径下:

在这里插入图片描述

	9.重建默认库的软连接:
		①cd /usr/lib64
		②find libstdc++.so.*
		③rm -rf libstdc++.so.6
		④ln -s libstdc++.so.6.0.19 libstdc++.so.6 :创建链接
到此并没有什么***用

在这里插入图片描述

	10.下载 安装 gcc [转载](https://blog.ebancom.com/365/)
		升级原因:mysql报错 ‘GLIBCXX_3.4.21’ not found
		1. 下载gcc-7.3.0.tar.gz
			wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
			cd /usr/local/src
			tar zxvf gcc-7.3.0.tar.gz
	
		2.下载所需组件
			(1)gmp-6.1.0.tar.bz2
			http://ftp.gnu.org/gnu/gmp/
			(2)mpfr-3.1.4.tar.bz2
			http://ftp.gnu.org/gnu/mpfr/
			(3)mpc-1.0.3.tar.gz
			http://ftp.gnu.org/gnu/mpc/
			
		3.按顺序安装依赖
			(1)tar -jxvf gmp-6.1.0.tar.bz2
					cd gmp-6.1.0
					mkdir temp
					cd temp
					../configure --prefix=/usr/local/gmp-6.1.0
					make && make install
					
			(2)tar -jxvf gmp-6.1.0.tar.bz2
					cd gmp-6.1.0
					mkdir temp
					cd temp
					../configure --prefix=/usr/local/gmp-6.1.0
					make && make install
					
			(3)tar -jxvf gmp-6.1.0.tar.bz2
					cd gmp-6.1.0
					mkdir temp
					cd temp
					../configure --prefix=/usr/local/gmp-6.1.0
					make && make install
			
			4.把库路径添加到/etc/ld.so.conf
				vi /etc/ld.so.conf
				添加如下代码:
				/usr/local/gmp-6.1.0/lib
				/usr/local/mpfr-3.1.4/lib
				/usr/local/mpc-1.0.3/lib

			5.建立编译输出目录,并进行配置
				mkdir /usr/local/gcc-7.3.0/build
				cd /usr/local/gcc-7.3.0/build
				../../src/gcc-7.3.0/configure --prefix=/usr/local/gcc-7.3.0 --enable-threads=posix --disable-checking --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3

			5.编译及安装(这个执行过程太长了起码一个半小时,不知道是哪里不对,还在都成功了):
				make && make install

			6.gcc、g++、gcj设置
				cd /usr/bin
				ln -s /usr/local/gcc-7.3.0/bin/gcc gcc
				ln -s /usr/local/gcc-7.3.0/bin/g++ g++
				ln -s /usr/local/gcc-7.3.0/bin/gcj gcj

			7.需要将之间/usr/lib64下的libstdc++.so.6软连接删掉,添加新的连接
				find / -name "libstdc++.so*"
				cd /usr/lib64/
				cp /usr/local/gcc-7.3.0/lib64/libstdc++.so.6.0.24 /usr/lib64/
				rm libstdc++.so.6
				ln -s /usr/local/gcc-7.3.0/lib64/libstdc++.so.6.0.24 libstdc++.so.6

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

	8.接着下载 2.27 & 2.28:
		wget http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz
		wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
	注:以上均为不成功案例

在这里插入图片描述

	1.下载:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
	2.运行: rpm -ivh mysql80-community-release-el7-3.noarch.rpm 
	3.暗转服务:yum install mysql-server --nogpgcheck

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值