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

相关推荐

  • 初识文件系统和软硬链接

    什么是文件系统?         磁盘分区以后必须设置磁盘的文件系统才可以正式使用,文件系统定义了文件存储的类型,也就是这个文件要按照怎样的方式存入磁盘分区。         linux中文件系统的类…

    2017-07-20
  • iptables/netfilter进阶

      在上一章当中我们介绍了iptables的介绍以及它的基本使用,下面我们开始介绍iptables的命令用法以及iptables是如何工作的。 1、回顾 2、iptables相关命令 1、回顾   我们回顾一下上一章节的内容,在上一章节中我们讲述的是iptables的基本概念以及命令格式,同时讲述规则链与表的概念,那么…

    Linux干货 2017-02-03
  • CentOS 5,6 系统启动流程详解

        一、linux 组成介绍          1.linux 组成:              Lin…

    Linux干货 2016-09-11
  • PHP进阶知识总结

    周末梳理了下这段时间看书的一些知识点,进步的过程不仅要实践,还要安排多看书、思考、总结。 只针对知识点进行了罗列和简单说明,很多细节还未整理好,待后面再专门详细写。   基础易忽略概念   PHP是一个支持面向对象开发的语言,而不是一个纯面向对象的语言 PHP5中保留了对var的支持,但会将var自动转换为public 类型检查函数: i…

    Linux干货 2015-03-10
  • Linux作业管理、网络客户端工具和bash循环

    Linux系统作业控制;                   job:         前台作业foregroud:通过终端启动,且启动后会一直占据终端;         后台作业…

    Linux干货 2017-01-05
  • 网络配置——命令家族

    Linux网络属性配置命令: ifcfg家族:ifconfig,route,netstat ifconfig命令:接口及地址查看和管理          ·ifconfig [INTERFACE]       &nbsp…

    Linux干货 2016-09-07