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.www58058.com/60537

(2)
hanlln1hanlln1
上一篇 2016-11-23
下一篇 2016-11-23

相關推薦

  • 磁盤配額、陣列與邏輯卷

    一、磁盤配額 在內核中執行以文件系統為單位啟用對不同組或者用戶的策略不同 根據塊或者節點進行限制執行軟限制(soft limit)硬限制(hard limit) 步驟一:獲得文件系統支持臨時有效:mount -o remount,usrquota,grpquota {mount_point|device}永久有效:寫入配置文件 /etc/fstab 中檢查文…

    Linux干貨 2016-08-29
  • crond實現郵件告警

    實驗環境:centos 6.8 所需軟件:mailx或msmtp或smtpEmail等 smtp客戶端程序 所需帳號:我這使用的是163郵箱。 本方案優點:安裝軟件少,無須啟動postfix等郵件服務。無須配置postfix郵件服務。由于調用的是注冊郵箱,所以也不會給移入到垃圾郵件中。  建議:生產中,不管是什么服務發送郵件的建議使用外部smtp帳…

    Linux干貨 2016-07-10
  • 進程管理

    linux維護工作中,常常需要對系統上運行的程序進行管理,那么進程管理就顯得相當重要。 進程初識 什么是進程?   進程是并發執行的程序在執行過程中分配和管理資源的基本單位,是一個動態概念。它代表CPU所能處理的單個任務。 什么是線程?   線程是程序流執行的最小單元,可以理解為進程中執行的一段程序片段。 進程與線程聯…

    Linux干貨 2016-09-07
  • 用戶組和用戶權限的使用2

    touch /etc/nologin  echo system is maintanining >> /etc/nologin  可以控制非管理員root之外的所有普通用戶不能登陸 7版本里面 cd /run/ touch /run/nologin 效果一樣讓普通用戶不能登陸 ehho weihu > /run/nolo…

    Linux干貨 2016-08-04
  • Linux進程管理

    一:進程的概念     1)進程:process,運行中的程序的一個副本的某部分,之所以說是副本的一部分是因為一個程序可以多個用戶同時以不同格式運行,如兩個用戶都在運行ls,一個運行的是ls -h ,另一個運行的是ls -l,那么這兩個用戶運行的程序代碼肯定是不一樣的而且不是程序的所有代碼;進程有生命周期; &nbsp…

    2017-03-26
  • linux內核(kernel)版本號的意義

      在linux下有一個目錄,即/usr/src/kernels/目錄,下面記載著一個linux系統的內核文件, 例如:2.6.18-164.el5-x86_64、2.6.18-8.el5-x86_64和2.6.18-194.el5-x86_64等,這些文件編號意味著什么呢?例如2.6.18代表著什么?el5代表著什么?x86_64又代表著什么? …

    Linux干貨 2016-01-14
欧美性久久久久