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

相关推荐

  • shell中的引号用法

        SHELL引号  在shell里可以通过使用单引号,双引号,反引号(TAB键上方的按键),反斜线来转换某些shell元字符的含义。比如说,我们希望echo命令显示出$本身字符的意义,而不是变量,我们需要使用某些功能来屏蔽$符号本身赋予的特殊含义,使其还原本身字面的意思。 主要讲述四个比较特殊常用的符号。 1.反…

    2017-06-11
  • Week 1–Linux基础1

    一. 计算机是由什么组成的? 计算机有什么作用呢?  1.计算机是由硬件系统与软件系统两大部分组成的. 那么是什么呢?  硬件系统: 1.1 输入组件(如鼠标,键盘等); 输出组件(显示器,打印机等); 1.2 核心大脑–CPU(里面包含有 算术逻辑、控制、记忆等单元); 1.3 为了与以上2大重要部件连接的,肯定需要一个可以…

    Linux干货 2016-12-05
  • 8-5作业

    4、取本机ip地址 ifconfig | grep -o "1[0-9]\+\.[0-9]\+\.[0-9]\+\.[1-2][0-5][0-4]" 5、取各分区利用率的数值 df | grep "/dev/sda"|tr -s ' ' |cut -d" " -f5 |tr -d…

    Linux干货 2016-08-10
  • Redis 存储分片之代理服务Twemproxy 测试

    概述 实际业务场景中单点 Redis 容量、并发都是有限的,所以有 Redis Cluster 的需求。 但是官方的 Redis Cluster 一再跳票,还不可用。 只好先使用最简单的方式:Proxy。有很多可选,但在大范围生产使用的, Twitter 开源的 Twemproxy  看起来是个理想的选择 – https://…

    Linux干货 2015-03-10
  • Linux基础知识之软件包管理(二)

    (1)CentOS7 yum dnf  yum repository: yum repo 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下,repodata) 文件服务器: ftp:// http:// nfs:// file:/// (2)yum客户端: 配置文件: /etc/yum…

    Linux干货 2016-08-24
  • linux系统用户管理和grep正则表达式练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@suywien ~]# cp -rpv /etc/skel/ /home/tuser1/ ‘/etc/skel/’ -> ‘/home/tuser1/’ ‘/etc/skel/.mozilla’ ->…

    Linux干货 2018-03-25