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
下一篇 2016-11-23

相关推荐

  • 文件查找命令

    查找命令:local,find local:非实时查找,通过系统数据库进行搜索,无法查找到在系统数据库更新后创建的文件,但是查找速度快,模糊查找(不仅会查找到文件名还会找到文件全路径) find:在硬盘上进行实时搜索,速度较慢,但是可以找到当前所有的数据 系统数据库在   /var/lib/mlocate/mlocate.db 系统一般会…

    Linux干货 2016-08-16
  • 第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+[^[:space:]]@#&a…

    Linux干货 2017-02-26
  • 马哥教育网络班20期+第6周课程练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp sed 's/^[[:space:]]/#&/' /tmp/rc.sysinit 2、…

    Linux干货 2016-08-15
  • 马哥教育网络班第19期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之; 3、写一个脚本  …

    Linux干货 2016-08-08
  • 浅述sed命令

    1、sed工作原理       sed(stream editor)是一种流编辑器,本身也是一个管道命令,可以分析编辑标准输入(standard input),包括对数据进行替换、删除、新增、选取特定行等等。运行时以行为单位,每次只处理一行的内容,因此它又被称为行编辑器。sed还可与正则表达式配合使用,从而简…

    Linux干货 2016-08-10
  • Shell脚本编程 流程控制—循环

    循环:重复执行所指定的代码片段,直到循环条件不满足,则退出循环 一、for循环     语法格式:     for 变量名 in 列表     do         循环体     done &nbs…

    Linux干货 2016-08-24