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 20:53
下一篇 2016-11-23 22:24

相關推薦

  • 當Web訪問性能出現問題,如何深探?

    對運維或開發工程師來說,遇到訪問性能問題時,最先需要定位的是問題出現在哪個環節,是網絡的問題,服務端的問題,還是客戶端的問題? 往往技術人員喜歡把精力放在保障后端服務的可用性方面,而對前端界面是否能正常裝載,是否能完整渲染不是太關心。但從業務的角度來說,界面承載的才是最終的業務,業務是通過人機交互來實現的。 日常我們遇到哪些場景需要定位訪問性能瓶頸? ·不同…

    系統運維 2017-01-09
  • lvs——高可用集群

    技術簡介: LVS集群采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。為此,在設計時需要考慮系統的透明性、可伸縮性、高可用性和易管理性 集群采用…

    Linux干貨 2016-10-26
  • Linux基礎知識之命令的語法通用格式

    #COMMAND OPTIONS ARGUMENTS 1.COMMAND:   (1)發起一命令:請求內核將某個二進制程序運行為一個進程: 程序–>進程 靜態–>動態 (有聲明周期)   (2)命令本身是一個可執行的程序文件:二進制格式的文件,有時候會調用共享庫文件 多數系統程序文件都存放在:/bin,…

    Linux干貨 2016-07-07
  • 使用vim編輯器進行編程

    1.首先需要配置vim的語法風格,具體操作如下 # vim /etc/vimrc set nu 這是設置顯示行號** set showmode 設置在命令行界面最下面顯示當前模式等。 set ruler 在右下角顯示光標所在的行數等信息 set autoindent 設置每次單擊Enter鍵后,光標移動到下一行時與上一行的起始字符對齊 set ts=4 注:…

    2017-04-09
  • linux用戶和組的配置文件

    1./etc/passwd:用戶及其屬性信息(用戶名,密碼,uid,gid,gecos注釋性描述信息,家目錄,登錄shell)在/etc/passwd文件中每個用戶都有一個對應的記錄行,它記錄了這個用戶的一些基本屬性。系統管理員經常會接觸到這個文件的修改以完成對用戶的管理工作。這個文件對所有用戶都是可讀的。      …

    2017-07-22
  • 08.04 筆記總結

    1.ps axo  user,ruser,group,rgroup,cmd  //  ruser  表示程序發起的用戶,一般是指系統當前的用戶  //  user  表示程序的所有者。在大數情況下,兩個用戶都是系統當前的用戶, 之后當程序被賦予suid的時候,可能user會發生變化。 2.…

    Linux干貨 2016-08-08
欧美性久久久久