LNMP安装过程中出现的问题及解决方法

一、背景介绍

   操作系统版本:centos6.8

   nginx版本:nginx-1.10.2

           mysql版本:mysql5.7.16

   php版本:php5.6.28

  由于mysql和php的版本较高所以遇到了很多问题,网上的方法好多都没办法解决,写这篇文章做记录。也希望能帮到遇到同样问题的小伙伴。

二、报错和解决方法

  (1)nginx-1.10.2

     make阶段的错误

make[1]: *** [/application/pcre//Makefile] Error 127
make[1]: Leaving directory `/usr/local/data/nginx-1.10.2'
make: *** [build] Error 2

这是由于./configuer阶段参数设置不正确造成的,是pcre的路径写的不对。但是在configure阶段不会报错

错的参数设置

[root@localhostnginx-1.10.2]# ./configure --user=nginx --group=nginx 
--prefix=/appliacation/nginx-1.10.2/  
--with-http_stub_status_module --with-http_ssl_module   
--with-pcre=/application/pcre/
 --with-openssl=/application/openssl/ 
 --with-zlib=/application/zlib/

正确的参数设置

[root@localhostnginx-1.10.2]# ./configure --user=nginx --group=nginx 
--prefix=/appliacation/nginx-1.10.2/  
--with-http_stub_status_module --with-http_ssl_module   
--with-pcre=/usr/local/data/pcre-8.38
 --with-openssl=/application/openssl
--with-zlib=/application/zlib/

错误:

make[1]: *** [/application/openssl//.openssl/include/openssl/ssl.h] Error 127

这是由于openssl的路径参数设置不正确引起的

错误的配置参数

[root@localhostnginx-1.10.2]# ./configure --user=nginx --group=nginx 
--prefix=/appliacation/nginx-1.10.2 
--with-http_stub_status_module --with-http_ssl_module   
--with-pcre=/usr/local/data/pcre-8.38 
--with-openssl=/application/openssl 
--with-zlib=/application/zlib

正确的配置参数

[root@localhostnginx-1.10.2]#./configure --user=nginx --group=nginx 
--prefix=/appliacation/nginx-1.10.2  
--with-http_stub_status_module 
--with-http_ssl_module 
--with-pcre=/usr/local/data/pcre-8.38 
--with-openssl=/usr/local/data/openssl-1.0.2h 
--with-zlib=/application/zlib

(2)mysql5.7.16

错误提示

See also "/usr/local/data/mysql-5.7.16/CMakeFiles/CMakeOutput.log".
See also "/usr/local/data/mysql-5.7.16/CMakeFiles/CMakeError.log".
make: *** [cmake_check_build_system] Error 1

由于缺少参数引起的

错误的配置参数

[root@localhostmysql-5.7.16]#cmake . -DWITH_BOOST=/usr/local/boost_1_59_0 
-DCMAKE_INSTALL_PREFIX=/application/mysql5.7.16 
-DMYSQ_UNIX_ADDR=/application/mysql5.7.16/tmp/mysql.sock 
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 
-DEXTRA_CHARSETS=gbk,gbk2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON

正确的配置参数,需要添加-DDOWNLOAD_BOOST=1

[root@localhost mysql-5.7.16]# cmake .  
-DDOWNLOAD_BOOST=1
 -DWITH_BOOST=Boost -DWITH_BOOST=/usr/local/boost_1_59_0 
 -DCMAKE_INSTALL_PREFIX=/application/mysql5.7.16 
 -DMYSQ_UNIX_ADDR=/application/mysql5.7.16/tmp/mysql.sock 
 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
  -DEXTRA_CHARSETS=gbk,gbk2312,utf8,ascii 
  -DENABLED_LOCAL_INFILE=ONCOLLATION=utf8_general_ci

(3)php5.6.28

报错提示

configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

网上给了三种解决方法,三种方法我都试过了,但是没有起作用

方法一

vim /etc/ld.so.conf.d/local.conf     # 编辑库文件
/usr/local/lib                       # 添加该行
:wq                                  # 保存退出
ldconfig -v                          # 使之生效

方法二

ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/ ln -s 
/usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

方法三

查看php官方文档解决. 在configure 里面加上   --with-libdir=lib64

这三种方法解决不了我的问题,但是我发现一个规律,都和limb这个库有问题,而我是编译安装的,于是我决定使用yum安装这个库,但是yum源里面没有这个库,我的解决方法

方法四

[root@localhostdata]#wget http://mirrors.hust.edu.cn/epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
http://mirrors.hust.edu.cn/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
[root@localhost php-5.6.28]# yum localinstall libmcrypt*

然后这个报错解决

(4)mysql5.7.16

在安装mysql5.7.16的过程中会生成一个随机的密码,但是忘了记下来,所以需要修改root的密码。

步骤

1先修改密码

# vi /etc/my.cnf 
在[mysqld]的段中加上一句:skip-grant-tables 
例如: 
[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
skip-grant-tables

2password_expired 改成不过期

 update user set password_expired='N' where user='root';
        > flush privileges;
        > quit

4、把 /etc/my.cnf  skip-grant-tables 这行注释掉

5、重启服务

1

     #service mysql restart

创建数据库,并授权给指定用户的操作

1创建数据库:create database   xxxxx;

1、创建用户,名字为userone,密码为123456
  create user userone identified by '123456';
2、创建名字为dbone的数据库
  create database dbone;
3、授予dbone数据库的所有权限给userone用户:
  grant all on dbone.* to userone

 

原创文章,作者:hanlln1,如若转载,请注明出处:http://www.178linux.com/60537

(2)
hanlln1hanlln1
上一篇 2016-11-23 20:53
下一篇 2016-11-23 22:24

相关推荐

  • 用户权限以及组权限作业

    1、在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 [root@localhost testdir]# mkdir -p /data/testdir [roo…

    Linux干货 2016-08-08
  • gitlib环境部署

         GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松…

    2016-05-19
  • Linux的文件系统架构基础

    前言     当今计算机操作系统来说常见功能主要有:进程调度、内存管理、文件系统管理、网络协议栈支持、驱动程序管理、安全功能等。所有对于我们来讲学习Linux文件系统也是一个十分重要的知识,也是学习Linux的必备基础知识,学习好Linux的文件系统知识也是为接下来学习Linux的其他知识奠定良好的基础 关键词  &n…

    Linux干货 2015-04-16
  • Linux学习之数据重定向

    大纲: 一、数据重定向定义 二、数据重定向分类 三、数据重定向作用 四、示例 一、数据重定向:命令的运行的结果默认输出在监视器上,重定向就是把这个结果输出到其它地方或其它文件。 二、数据重定向分类: 1.标准输出: (standard output,简称stdout,代码为 1 ,使用 > 或 >>):命令执行成功输出的正确提示信…

    Linux干货 2015-06-24
  • 马哥教育网络班21期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash     #     nolog=`awk -F: '$…

    Linux干货 2016-09-19
  • Linux之yum详解及程序包安装

    Linux之 yum详解 及 程序包安装    在Linux常用的命令安装工具中,rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。    但是rpm有一个缺点,无法解决包的依赖性,也就是…

    Linux干货 2016-08-24