源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!

安装顺序 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

 
 
 
 
 
 
 
 

 

猜你喜欢

转载自www.cnblogs.com/yehuisir/p/10360586.html