1. 程式人生 > >源碼編譯安裝lnmp環境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了無數坑,重裝了十幾次服務器才會的,不容易啊!

源碼編譯安裝lnmp環境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了無數坑,重裝了十幾次服務器才會的,不容易啊!

uri org ucc height lnmp環境 loading lin num inf

安裝順序 php --- nginx -- mysql

安裝php-5.6.30:

1 環境準備

yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel

yum install libpng
yum install libpng-devel
yum -y install libjpeg-devel
yum install freetype-devel

cd /usr/local/src

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

tar zvxf php-5.6.30.tar.gz

cd php-5.6.30

groupadd www

useradd -g www -s /sbin/nologin www

cd /usr/local

mkdir php-fpm

2 編譯安裝 (##編譯參數)

./configure --prefix=/usr/local/php-fpm \
--with-config-file-path=/usr/local/php-fpm/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-png-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-gd \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir=/usr/ \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline

##參數解釋

""" 安裝路徑 """ --prefix=/usr/local/php56 \ """ php.ini 配置文件路徑 """ --with-config-file-path=/usr/local/php56/etc \ """ 優化選項 """ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ """ 啟用 opcache,默認為 ZendOptimizer+(ZendOpcache) """ --enable-opcache \ """ FPM """ --enable
-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ """ MySQL """ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ """ 國際化與字符編碼支持 """ --with-gettext \ --enable-mbstring \ --with-iconv \ """ 加密擴展 """ --with-mcrypt \ --with-mhash \ --with-openssl \ """ 數學擴展 """ --enable-bcmath \ """ Web 服務,soap 依賴 libxml """ --enable-soap \ --with-libxml-dir \ """ 進程,信號及內存 """ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ """ socket & curl """ --enable-sockets \ --with-curl \ """ 壓縮與歸檔 """ --with-zlib \ --enable-zip \ --with-bz2 \ """ GNU Readline 命令行快捷鍵綁定 """ --with-readline

3. 編譯安裝

make && make install

如下圖 ,不抱任何錯誤

4.配置服務

配置文件

cp php.ini-development /usr/local/php-fpm/etc/php.ini
cp /usr/local/php-fpm/etc/php-fpm.conf.default /usr/local/php-fpm/etc/php-fpm.conf

5 .修改配置

vim /usr/local/php-fpm/etc/php-fpm.conf

[global]
pid =/usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log

[www]
listen = /tmp/php-fcgi.sock
listen.mode =666
user = php-fpm
group = php-fpm
pm = dynamic
pm.start_servers = 20
pm.max_children = 50
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024

技術分享圖片

技術分享圖片

6. 保存配置文件後,檢驗配置是否正確的方法如下:

/usr/local/php-fpm/sbin/php-fpm -t

如果顯示 "test is successful",說明配置沒有問題,否則就要根據提示檢查配置文件.

技術分享圖片

7.啟動 php-fpm,命令如下:

cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod 755 /etc/init.d/php-fpm

useradd -s /sbin/nologin php-fpm

service php-fpm start

設置php-fpm開啟啟動命令如下:

chkconfig php-fpm on

檢測php-fpm是否啟動的命令如下:

ps aux |grep php-fpm

執行這條命令,可以看見多個進程

技術分享圖片

安裝nginx-1.14.2:

1:在/usr/local下創建一個nginx目錄

cd /usr/local

mkdir nginx

cd /usr/local/src

wget http://nginx.org/download/nginx-1.14.2.tar.gz

tar zxvf nginx-1.14.2.tar.gz

2.配置編譯選項

cd nginx-1.14.2

./configure --prefix=/usr/local/nginx

3.編譯和安裝

make && make install

4.編寫nginx啟動腳本,並加入系統服務

vim /etc/init.d/nginx

#!/bin/bash
#chkconfig: - 30 21
#description: http service.
#Source Function Library
. /etc/init.d/functions

NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"

start()
{
  echo -n $"Starting $prog: "
  mkdir -p /dev/shm/nginx_temp
  daemon $NGINX_SBIN -c $NGINX_CONF
  RETVAL = $?
  echo
  return $RETVAL
}

stop()

{
  echo -n $"Stopping $prog: "
  killproc -p $NGINX_PID $NGINX_SBIN -TERM
  rm -rf /dev/shm/nginx_temp
  RETVAL = $?
  echo
  return $RETVAL
}

reload()
{
  echo -n $"Reloading $prog: "
  killproc -p $NGINX_PID $NGINX_SBIN -HUP
  RETVAL = $?
  echo
  return $RETVAL
}

restart()
{
  stop
  start
}

configtest()
{
  $NGINX_SBIN -c $NGINX_CONF -t
  return 0
}

case "$1" in
start)
  start
  ;;
stop)
  stop
  ;;
reload)
  reload
  ;;
restart)
  restart
  ;;
configtest)
  configtest
  ;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
esac

exit $RETVAL

保存該腳本後更改權限,命令如下:

chmod 755 /etc/init.d/nginx

chkconfig --add nginx

如果想開啟啟動nginx,請執行命令如下:

chkconfig nginx on

5.更改nginx的配置文件:

> /usr/local/nginx/conf/nginx.conf

重定向符號>,單獨使用時,可以吧一個文本文檔快速清空

vim /usr/local/nginx/conf/nginx.conf //寫入如下內容:

#vim /usr/local/nginx/conf/nginx.conf
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
worker_rlimit_nofile 51200;

events
{
  use epoll;
  worker_connections 6000;
}

http
{
  include mime.types;
  default_type application/octet-stream;
  server_names_hash_bucket_size 3526;
  server_names_hash_max_size 4096;
  log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
  ‘ $host "$request_uri" $status‘
  ‘ "$http_referer" "$http_user_agent"‘;
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 30;
  client_header_timeout 3m;
  client_body_timeout 3m;
  send_timeout 3m;
  connection_pool_size 256;
  client_header_buffer_size 1k;
  large_client_header_buffers 8 4k;
  output_buffers 4 32k;
  postpone_output 1460;
  client_max_body_size 10m;
  client_body_buffer_size 256k;
  client_body_temp_path /usr/local/nginx/client_body_temp;
  proxy_temp_path /usr/local/nginx/proxy_temp;
  fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
  fastcgi_intercept_errors on;
  tcp_nodelay on;
  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 8k;
  gzip_comp_level 5;
  gzip_http_version 1.1;
  gzip_types text/plain application/x-javascript text/css text/htm
  application/xml;

  server
  {
    listen 80;
    server_name www.xxx.com;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;

    location ~ \.php$
    {
      include fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;


    }
}

6. 保存配置文件後,檢驗配置是否正確的方法如下:

/usr/local/nginx/sbin/nginx -t

如果顯示 "test is successful",說明配置沒有問題,否則就要根據提示檢查配置文件.

技術分享圖片

7.啟動nginx,命令如下:

service nginx start

重啟 service nginx restart

技術分享圖片

8.測試是否正確解析php

vim /usr/local/nginx/html/index.php

其內容如下

<?php

echo phpinfo();

技術分享圖片

技術分享圖片

安裝mysql-5.6.43(與之前一模一樣)

https://www.cnblogs.com/yehuisir/p/10061789.html

 


源碼編譯安裝lnmp環境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了無數坑,重裝了十幾次服務器才會的,不容易啊!