centos7.4安装nginx1.8.1 php7.7.11 安装 MySQL5.7.20

解决依赖关系

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

nginx源码下载地址

http://nginx.org/download/

解压

tar -zxvf nginx-1.8.1.tar.gz

进入目录

cd nginx-1.8.1

检测配置

./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx

--prefix 安装位置
--sbin-path 执行命令
参考手册

编译并安装

make && make install

启动nginx

/usr/bin/nginx

查看进程

pstree -p | grep nginx

显示2个进程 ( 一个主进程 一个工作进程 )

# 所有system的启动脚本都在此目录下(每当安装一个软件后都在这个目录下创建一个httpd.service文件)
/usr/lib/systemd/system

加入systemctl中管理

[Unit]
Description=nginx
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/bin/nginx 
ExecStop=/usr/bin/nginx -s stop
ExecReload=/usr/bin/nginx -s reload
PrivateTmp=true[Install]
WantedBy=multi-user.target

重载systemctl配置

systemctl daemon-reload
注释  
想要执行systemctl stop nginx.service 那么nginx的启动必须用
systemctl start nginx.service
启动                    停止
/usr/bin/nginx           /usr/bin/nginx -s stop
systemctl stop nginx.service      systemctl start nginx.service
 
安装php

下载并解压源码包

tar zxf php-7.1.11.tar.gz
cd php-7.1.11
  1. 安装编译php所需的依赖包
yum install -y gcc gcc-c++ make automake autoconf gd file bison patch mlocate flex diffutils zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers openldap-devellibxslt-devel kernel-devel libtool-libs readline-devel gettext-devel libcap-devel php-mcrypt libmcrypt libmcrypt-devel recode-devel gmp-devel icu  libxslt libxslt-devel
  1. 进去源码目录配置 ./configure 信息
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql-sock --with-mysqli --with-libxml-dir --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-zlib --with-iconv --with-bz2 --with-curl --with-cdb --with-pcre-dir --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --with-gettext --with-gmp --with-mhash --with-libmbfl --with-onig --with-pdo-mysql --with-zlib-dir --with-readline --with-libxml-dir --with-xsl --with-pear --enable-fpm --enable-soap --enable-bcmath --enable-calendar --enable-dom --enable-exif --enable-fileinfo --enable-filter --enable-ftp --enable-gd-native-ttf --enable-gd-jis-conv --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --enable-pdo --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zip --enable-mysqlnd-compression-support
  1. 编译 安装
make && make install
  1. 启动php-fpm
/usr/local/php/sbin/php-fpm

如果不知道启动命令在哪可以

find / -name php-fpm 
启动提示错误:
[09-Nov-2017 08:49:40] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
[09-Nov-2017 08:49:40] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[09-Nov-2017 08:49:40] ERROR: FPM initialization failed

意思是 提示找不到 php-fpm.conf
到/usr/local/php/etc目录下 将php-fpm.conf.default 复制一份出来

cp php-fpm.conf.default php-fpm.conf

php-fpm.conf只是php的主配置文件 还要到php-fpm.d目录下将默认的www.conf.default也复制一份为www.conf

  1. 再次启动
/usr/local/php/sbin/php-fpm

无任何提示输出
查看是否运行成功

pstree -p | grep php
  1. 将php-fpm加入到system中管理
# 所有system的启动脚本都在此目录下
/usr/lib/systemd/system

创建php-fpm.service文件
文件内容如下

[Unit]
Description=php-fpm
After=network.target[Service]
Type=forking
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecStop=/usr/bin/pkill -9 php-fpm
PrivateTmp=true[Install]
WantedBy=multi-user.target

重载systemctl配置

systemctl daemon-reload

这样就可以使用systemctl命令管理php-fpm了
systemctl start php-fpm.service
systemctl stop php-fpm.service

 

Mysql 安装

  1. 下载软件包
# 下载 mysql-5.7.20
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
# 解压 tar xzf mysql-5.7.20.tar.gz # 移动 ( 移动到你要安装的位置 ) mv /root/mysql-5.7.20 /usr/local/mysql # MySQL从5.7开始必须安装boost库才行 # 如果未安装cmake时可能会报错误 # CMake Error at cmake/boost.cmake:81 (MESSAGE) # 下载 boost_1_59_0 wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz # 解压 tar xzf boost_1_59_0.tar.gz # 将解压后的包拷贝到mysql安装目录下的boost目录下 ( 自行创建boost ) cp -R boost_1_59_0 /usr/local/mysql/boost/ 
  1. 处理依赖关系
yum install cmake cmake-gui gcc-c++ ncurses-devel
  1. cmake构建mysql  下面的操作必须在mysql目录下
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc/ -DWITH_BOOST=/usr/local/mysql/boost/
# 安装目录 CMAKE_INSTALL_PREFIX # 数据目录 MYSQL_DATADIR # 配置文件目录 SYSCONFDIR # 指定boost库的位置 WITH_BOOST # cmake时遇到的错误 错误1: CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name. 解决: // 安装gcc yum install gcc-c++ 错误2: CMake Error at cmake/readline.cmake:64 (MESSAGE): Curses library not found. Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel 解决: yum install ncurses-devel 解除错误后删除 CMakeCache.txt 在重新cmake
// 添加mysql用户
useradd -s /sbin/nologin mysql
// 创建mysql数据存放目录 mkdir -p /data/mysql // 给予目录权限 chown -R mysql:mysql /data/mysql
  1. 编译并安装
make 
make install
# mysql 编译时间较长建议make和make install分开执行 # mysql 编译非常消耗内存 如果内存较小可能无法编译通过 # 之前1G内存的阿里云编译到30%左右就挂了 换4G内存机器才编译通过 # 目测编译MySQL5.7.20至少要2G的内存 ( 未测试 ) 
  1. 安装完成后 初始化MySQL
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# 生成MySQL临时密码 --initialize # 指定运行MySQL的用户 --user=mysql # 指定MySQL的安装目录 --basedir=/usr/local/mysql # 指定MySQL的数据目录 --datadir=/data/mysql # 初始化成功 A temporary password is generated for root@localhost: 5-h1Bbf*EQwk 临时密码: 5-h1Bbf*EQwk 
  1. 启动MySQL
# MySQL默认启动命令在
/usr/local/mysql/support-files/mysql.server
# 拷贝一个出来 cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql/mysqld # 启动MySQL /usr/local/mysql/mysqld start # 启动报错 错误1: MySQL.2017-11-09T09:27:48.949025Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. 解决: 猜测可能是日志文件没有权限 直接去修改MySQL配置文件 /etc/my.cnf 修改 log-error 位置 并给予日志文件权限 在 mysql 目录下创建了 log 存在错误日志 mkdir log chown mysql:mysql log 错误2: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 解决: 首先查看 /var/lib/mysql/ 下是否有 mysql.sock 然后建立软连接到 /tmp/ 下 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock mysql.sock 的位置在my.cnf中也有配置 再次启动 /usr/local/mysql/mysqld start 启动成功 
  1. 连接MySQL
/usr/local/mysql/bin/mysql -h localhost -uroot -p 
# 密码是初始化的 : 5-h1Bbf*EQwk # 登陆成功 执行 show databases; 直接报错了 提示必须修改初始密码 # 修改密码 set password for root@localhost = password('MaShen666'); # 刷新权限 flush privileges; # 再次执行 show databases; 成功 
  1. MySQL加入到systemctl中管理
# mysql.service
systemctl daemon-reload
[Unit] Description=mysql After=network.target [Service] Type=forking PIDFile=/usr/local/mysql/pid/mysql.pid ExecStart=/usr/local/mysql/mysqld start ExecStop=/usr/local/mysql/mysqld stop ExecRestart=/usr/local/mysql/mysqld restart ExecStatus=/usr/local/mysql/mysqld status PrivateTmp=true [Install] WantedBy=multi-user.target 

重载systemctl配置

systemctl daemon-reload
总结
  1. MySQL5.7 必须安装boost库 这里折腾好久
  2. 初始化和5.7版本之前不同了
  3. 编译时如果内存较小可能无法编译完成
  4. 安装后启动MySQL时报的错误多数为权限问题
  5. 如果不修改初始密码无法操作MySQL

转载于:https://www.cnblogs.com/xin-jun/p/7833556.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

comsol显示电场计算结果_在 COMSOL 中构建磁流体动力学多物理场模型

COMSOL Multiphysics 软件中的模型都是从零开始构建的,软件支持多物理场,因此用户可以按照自己的意愿轻松地组合代表不同物理场现象的模型。有时这可以通过使用软件的内置功能来实现,但有些情况下,用户需要做一些额外的工作。我们…

数据挖掘初次接触!学习代码

import pandas as pd import numpy as np from time import timedatapd.read_csv("dankuan.csv",sep;,index_col0) #打开表 data.head() #查看前几行的数据,默认前5行 data.describe() #数据的快速统计汇总 data.g4_term_type.value_counts() data2data.fillna(value…

心率过100怎么处理_心跳每分钟超过100次,为何血压很正常?心跳太快该怎么办?...

在人们的心中一个人要是心跳速度很快,那么就意味着血压升高了。大家也知道正常情况下,每分钟心跳在55下到100下之间,都是正常情况。不过,现在有很多人心跳虽然很快,每分钟都超过100次了,但是一检查血压还是…

python卷子_Python试卷

3、写一个函数&#xff0c;计算一个给定的日期是该年的第几天。def getday(self,yNone,mNone,dNone):date datetime(y,m,d)days date.strftime(%j)return days4、写一个函数&#xff0c;给定N&#xff0c;返回斐波那契数列第N项。def getn_vlaue(self,n):if n<2:return 1e…

JS日期选择器

<html><head><title>JS日期选择器</title><script type"text/JavaScript">function HS_DateAdd(interval, number, date) {number parseInt(number);if (typeof (date) "string") {var date new Date(date.split("-…

微运行库2015_vc++2015运行库下载_vc++2015运行库64位官方下载「vc2015」-太平洋下载中心...

常见问答&#xff1a;(1)win10安装vc2015提示错误0x80070666如何解决&#xff1f;步骤&#xff1a;前提需要通过程序和功能 将旧版的vc 卸载1、首先下载"VC6.0垃圾文件清理工具"&#xff1b;2、将下载的到压缩包解压出来&#xff1b;3、打开文件夹&#xff0c;在Copy…

python爬silverlight_Python创建Silverlight控件编写过程经验分享

Python编程语言可以帮助我们实现哪些功能呢&#xff1f;它的主要应用范围都包括哪些呢&#xff1f;我们今天先来了解一下有关Python创建Silverlight控件的相关实现方法&#xff0c;以此来初步熟悉一下这一语言的应用方式以及功能特点。其实关注Silverlight很久了&#xff0c;只…

RGB转LAB色彩空间

https://www.cnblogs.com/hrlnw/p/4126017.html 1.原理 RGB无法直接转换成LAB&#xff0c;需要先转换成XYZ再转换成LAB&#xff0c;即&#xff1a;RGB——XYZ——LAB 因此转换公式分两部分&#xff1a; &#xff08;1&#xff09;RGB转XYZ 假设r,g,b为像素三个通道&#xff0c;…

fileitem方法_FileItem的常用方法

下面介绍FileItem类中的几个常用的方法&#xff1a;1. isFormField方法isFormField方法用于判断FileItem类对象封装的数据是否属于一个普通表单字段&#xff0c;还是属于一个文件表单字段&#xff0c;如果是普通表单字段则返回true&#xff0c;否则返回false。该方法的完整语法…

python hack库_常用的Python库

Tkinter———— Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块&#xff0c;Tkinter库提供了对Tk API的接口&#xff0c;它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言&#xff0c;用于简化shell下复…

Java异常介绍及Spring Boot统一异常处理

1. 异常介绍 Java异常处理是Java编程语言中用于处理程序运行时出现的异常情况的一种机制。异常情况指的是程序运行过程中出现的非正常情况&#xff0c;比如除以零、数组越界、空指针访问等。Java异常处理机制可以帮助程序员更好地管理这些异常情况&#xff0c;保证程序的稳定性…

React- jsx的使用可以渲染html标签 或React组件

React 的 JSX 使用大、小写的约定来区分本地组件的类和 HTML 标签。既渲染html标签需要使用小写字母开头的标签名而渲染本地React组件需要使用大写字母开头的标签名 注意: 由于 JSX 就是 JavaScript&#xff0c;一些标识符像 class 和 for 不建议作为 XML 属性名。作为替代&…

bigdecimal保留4位小数_四年级数学小数的加减乘法知识点汇总,带练习!

张老师 - 4年级(多品小学教育)顺城中心小学郭老师和环县虎洞中心小学谭老师需要的这份学习资料现在分享。本资料已制作电子版下载码是&#xff1a;76qa32vd《小数的加减乘法》知识点一、小数加、减法的计算法则(1)小数点要对齐&#xff0c;也就是相同数位要对齐&#xff1b;相同…

python 字符串 4位一组_Python基础4- 字符串

Python字符串是由数字、字母、下划线组成的一串字符,我们可以使用引号来创建字符串。如:str Helloworld在Python中没有char类型,单个字符也作为string使用;Python的字符串列表有2种取值顺序&#xff1a;A.自左向右,默认索引从0开始,索引长度最长为字符串长度-1B.自右向左,默认…

学python编脚本_python 学习写脚本

学习python中&#xff0c;练手&#xff01;模拟注册登录的例子写的一个简单的脚本#!/usr/bin/env python#--coding: utf-8 --#如果需要开启输入密码不可见&#xff0c;请去掉所有含getpass的代码行的注释&#xff0c;并注释相关的行。此行为注释说明#import getpass#确认python…

毕业设计后续工作目标

周数 工作内容 10周 周一 1.需求调研模块&#xff1a;人员&#xff0c;设备&#xff0c;资金&#xff0c;日程的设置及进程管理 周二 1.需求分析和调研模块&#xff1a;完成用例图&#xff0c;交互图和用例文档的上传、查看及保存 周三 1.生成软件需求规格说明书&#…

vs未指定启动文件_高效开发利器之自定义模板文件

简介越来越多的设计模式, 最佳实践, 优化了软件开发方式, 提高了软件质量, 但是也带来了大量的类似的文件. 比如说: 现在都使用三层模式来开发Web程序, 都会有服务层(Service), DI的流行, 每个服务类都会自动注入一些固定的对象, 日志对象, 缓存对象等等. 实体类(Entity)到DTO对…

react-router 4.0 学习笔记

1、安装react-router-dom 2、页面上要使用的时候要引入  import {BrowserRouter as Router,Route,Link } from react-router-dom 3、使用的时候要在外层包一个<Router> 4、param 在路径上如果带有/:id类似这种的&#xff0c;要取值的时候&#xff0c;match.params.id取…

分数优先遵循志愿php源码_2021年南昌中考志愿填报指导,这七大要点你都了解吗?...

中考是孩子即将面对人生的第一个十字路口&#xff0c;家长们也因此开始为孩子的未来紧张。都说选择大于努力&#xff0c;给孩子选一个适合的学校也很重要&#xff0c;为了大家可以更好的填报志愿&#xff0c;小编为大家汇总了这份指南&#xff0c;快来一起看看吧~1、认清自己&a…

gin ip 和 本地访问的结果不一样_golang web开发——gin实战之整合swagger

背景如果我们之前搞过java web开发&#xff0c;我们应该都知道swagger这个API文档自动生成利器&#xff0c;有了swagger可以方便我们与客户端的联调&#xff0c;基本上是一目了然&#xff0c;swagger支持java&#xff0c;自然它也能支持golang的gin框架&#xff0c;本小节&…