1. 程式人生 > >linux 下安裝 LNMP 最簡單的安裝方法

linux 下安裝 LNMP 最簡單的安裝方法

最近在安裝linux  lnmp centos7環境的時候還是有點小問題,從頭總結了一下。

安裝的版本是 nginx 1.12  mysql 5.7  php 5.6 

一,安裝nginx

1.下載

安裝前確認安裝擴充套件 沒有的直接 yum install wget gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel 

      [[email protected] ~]# cd /usr/local/src/

      [[email protected]

src]#  wget   http://nginx.org/download/nginx-1.12.2.tar.gz

2.解壓

     [[email protected] src]# tar zxvf nginx-1.12.2.tar.gz 

3. 預編譯

[[email protected] src]# cd nginx-1.12.2 

[[email protected] nginx-1.12.2]# ./configure --prefix=/usr/local/nginx    --with-http_ssl_module   --with-http_v2_module --with-http_stub_status_module   --with-pcre  --with-http_gzip_static_module  

解釋

--with-http_gzip_static_module :支援壓縮

--with-http_stub_status_module :支援nginx狀態查詢

--with-http_ssl_module :支援https

--with-pcre :為了支援rewrite重寫功能,必須制定pcre

可根據自己需求

/** 

 --with-http_dav_module             #啟用支援(增加PUT,DELETE,MKCOL:建立集合,COPY和MOVE方法)                         --with-http_addition_module         #啟用支援(作為一個輸出過濾器,支援不完全緩衝,分部分相應請求) --with-http_sub_module              #啟用支援(允許一些其他文字替換Nginx相應中的一些文字) --with-http_flv_module              #啟用支援(提供支援flv視訊檔案支援) --with-http_mp4_module              #啟用支援(提供支援mp4視訊檔案支援,提供偽流媒體服務端支援)

make -j 4 && make install 4核編譯

*/

4. [[email protected] src]# make && make install 

5.新增系統變數(方便啟停服務)

 [[email protected] nginx-1.12.2]# vim /etc/profile

  我一般是在56行新增    export PATH=/usr/local/nginx/sbin:$PATH

重啟配置 source /etc/profile

[[email protected] nginx-1.12.2]# nginx -V

nginx 安裝成功

二、安裝mysql 5.7

用的是rpm 好處是不用配置那麼多東西 。 配置不用管。

   [[email protected] ~]# cd /usr/local/src/    [[email protected] src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 

   [[email protected] src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm 

   [[email protected] src]#  yum -y install mysql-server 

也可以指定安裝目錄     yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server 可以自己研究

根據步驟安裝就可以了,

預設配置檔案路徑:  配置檔案:/etc/my.cnf  日誌檔案:/var/log/var/log/mysqld.log  服務啟動指令碼:/usr/lib/systemd/system/mysqld.service 

socket檔案:/var/run/mysqld/mysqld.pid

啟動mysql服務

service mysqld restart

 重置密碼

 [[email protected] ~]# grep "password" /var/log/mysqld.log 

可以看到  輸入 mysql -u root -p   密碼 進入      第一次登陸 ,需要重置密碼 要不什麼也不能操作

接下來重置密碼:5.7.20 為了安全密碼           必須包含 數字字母符號

 alter user 'root'@'localhost' identified by 'Root!!2018'; 

   也可以 直接再新增新使用者     

  grant all on *.* to 'rootadmin'@'%' identified by '[email protected]@'  with grant option;

  增加root使用者指定可以任意IP登入,如果想限制只能讓指定IP登入請把%替換成IP地址

最後記得重新整理許可權;

 flush privileges ;

三、安裝php

需要的外掛 包

yum -y install gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel  epel-releaselibmcrypt-devel

1.下載

      [[email protected] ~]# cd /usr/local/src/

      [[email protected] src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.gz

2.解壓

     [[email protected] src]# tar zxvf php-5.6.32.tar.gz

3. 預編譯

進入目錄 [[email protected] src]# cd php-5.6.32

建立php-fpm使用者,並禁止登入;[[email protected] php-5.6.32]# useradd -s /sbin/nologin php-fpm

./configure --prefix=/usr/local/php --sysconfdir=/usr/local/php/etc --with-config-file-path=/usr/local/php/etc/    --with-fpm-user=php-fpm  --with-fpm-group=php-fpm  --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mhash  --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir --with-gd --with-jpeg-dir  --with-png-dir --with-zlib --enable-mbstring --with-mcrypt --enable-sockets --with-iconv-dir   --enable-zip --with-pcre-dir --with-pear --enable-session  --enable-gd-native-ttf  --enable-xml --with-freetype-dir --enable-gd-jis-conv --enable-inline-optimization --enable-shared  --enable-bcmath --enable-sysvmsg --enable-sysvsem --enable-sysvshm  --enable-mbregex --enable-pcntl --with-xmlrpc --with-gettext --enable-exif --with-readline   --enable-ftp   --enable-redis

提示錯誤mcrypt.h沒有找到,安裝libmcrypt-devel包,預設的yum源,沒有這個包,需要安裝epel擴充套件源後,才可以安裝。

[[email protected] php-5.6.32]# yum install -y epel-release

[[email protected] php-5.6.32]# yum install -y libmcrypt

[[email protected]t php-5.6.32]# yum install -y libmcrypt-devel

再次執行./configure,沒有錯誤提示,出現Thank you for using PHP,配置OK。

完成後使用echo $?檢視是否安裝正確;[[email protected]  php-5.6.32]# make && make install 

[[email protected]  php-5.6.32]# echo $?

0 0表示上一步的結果成功。

配置檔案

需要將當前目錄下的php.ini檔案拷貝到 php的安裝目錄etc下

[[email protected] php-5.6.32]# cp php.ini-production /usr/local/php/etc/php.ini

php.ini 檔案是在包目錄下的 php.ini-development(開發), php.ini-production(生產)  

拷貝php啟動指令碼,php-fpm配置檔案,更改php-fpm許可權為755;新增php-fpm開機啟動;

  1. [[email protected] php-5.6.32]# cp /usr/local/src/php-5.6.32/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  2. (啟動指令碼)
  3. [[email protected] php-5.6.32]# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf (就是去掉了末尾的.default )
  4. [[email protected] php-5.6.32]# chmod 755 /etc/init.d/php-fpm
  5. [[email protected]]# chkconfig --add php-fpm
  6. [[email protected]]# service php-fpm start
  7. Starting php-fpm done
  8. [[email protected]]# chkconfig php-fpm on

將php的安裝目錄也加入到系統的環境變數  在最後一行加入

vim /etc/profile

export PATH=/usr/local/php/bin:$PATH

source /etc/profile 重新載入

[[email protected] ~]# php -v PHP 5.6.32 (cli) (built: Mar 12 2018 17:43:15)  Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies完成 接下來就是測試

-----php---安裝成功

在位址列輸入你的ip。然後測試PHP安裝是否成功。確保nginx 和PHP都是執行的哈。

然後需要配置nginx

核心配置的兩個 加入到nginx.conf

vim /usr/local/nginx/conf/nginx.conf

        location / {             root   /www/yingcai;             index  index.html index.htm index.php; try_files $uri $uri/ /index.php?$query_string; if (!-e $request_filename){   rewrite ^(.*)$ /index.php?s=$1 last;  break; }          }

將請求轉給php的9000埠  確保nginx 和PHP都是執行的哈。  

  location ~ \.php$ {

            root           /www/yingcai;             fastcgi_pass   127.0.0.1:9000;             fastcgi_index  index.php;             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;             include        fastcgi_params;         }

我的是根目錄下的www/  寫個index.php  裡面加入phpinfo(); 看能否成功。

安裝上面的應該沒問題,有問題的留言,大家一塊解決。