Centos7+Nginx1.11.7+MySQL5.7.16+PHP7.1.0+openssl-1.1.0c

一、linux 系统限制配置

1、关闭系统防火墙

systemctl stop firewalld.service 关闭防火墙

systemctl disable firewalld.service 禁用防火墙

2、关闭SElinux

sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

setenforce 0 selinux 立即生效

二、系统安装约定

软件源代码包存放位置:/usr/local/src

源码包编译安装位置:/usr/local/软件名字

三、下载软件包

1、下载nginx最新稳定版本

wget -P /usr/local/src http://nginx.org/download/nginx-1.11.7.tar.gz

2、下载mysql-boost-5.7.16 带 boost 如果不带源码安装如果网络环境不会可能会出现错误

wget -P /usr/local/src http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.16.tar.gz

3、下载php-7.1.0版本

wget -P /usr/local/src http://cn2.php.net/distributions/php-7.1.0.tar.gz

4、下载libmemcached-1.0.18

wget -P /usr/local/src https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz

5、下载php-memcached

yum -y install git

cd /usr/local/src

git clone -b php7 https://github.com/php-memcached-dev/php-memcached.git

6、下载openssl-1.1.0c

wget -P /usr/local/src https://www.openssl.org/source/openssl-1.1.0c.tar.gz

四、安装编译器及依赖

yum -y insyall epel-release

yum -y install patch gcc gcc-c++ readline-devel zlib-devel libffi-devel \

openssl openssl-devel make autoconf automake libtool bison libxml2 \

libxml2-devel libxslt-devel libyaml-devel python python-docutils \

cmake imake expat-devel libaio libaio-devel bzr ncurses-devel wget \

libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel \

pcre-devel curl-devel libmcrypt libmcrypt-devel

五、编译安装mysql-boost-5.7.16 方便再次安装创建mysql_install.sh脚本

1、mysql_install.sh内容

#!/bin/bash

#yum update -y

#yum install -y cmake gcc-c++ ncurses-devel gcc make openssl*

#mysql安装脚本

DBDIR='/data/mysql' #mysql数据存储目录

MYSQLDIR='/usr/local/mysql' # mysql安装目录

PASSWD='123456' # mysql root密码 安装完成可远程ip登陆

[ -d $DBDIR ] || mkdir $DBDIR -p

id mysql &> /dev/null

if [ $? -ne 0 ];then

useradd mysql -s /sbin/nologin -M

fi

chown -R mysql:mysql $DBDIR

cd /usr/local/src

tar -xvf mysql-boost-5.7.16.tar.gz

cd mysql-5.7.16

cmake . -DCMAKE_INSTALL_PREFIX=$MYSQLDIR \

-DMYSQL_DATADIR=$DBDIR \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DWITH_LIBWRAP=0 \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_BOOST=/usr/local/src/mysql-5.7.16/boost/boost_1_59_0 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

if [ $? != 0 ];then

echo "cmake error!"

exit 1

fi

make && make install

if [ $? -ne 0 ];then

echo "install mysql is failed!" && /bin/false

fi

sleep 2

chown -R mysql:mysql $MYSQLDIR

chown -R root:root $MYSQLDIR

cp $MYSQLDIR/support-files/my-default.cnf /etc/my.cnf

echo export PATH=$PATH:$MYSQLDIR/bin:$MYSQLDIR/lib >>/etc/profile

source /etc/profile

cat >> /etc/my.cnf << EOF

character_set_server = utf8

basedir = $MYSQLDIR

datadir = $DBDIR

port = 3306

server_id = 1

socket = /tmp/mysql.sock

explicit_defaults_for_timestamp=true

EOF

sed -i 's/sql_mode=.*/sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER/g' /etc/my.cnf

source /etc/profile

sleep 5

cd $MYSQLDIR

cp support-files/mysql.server /etc/init.d/mysqld

chmod 700 /etc/init.d/mysqld

mysql_ssl_rsa_setup

rm -rf $DBDIR

mysqld --initialize --user=mysql

if [ $? -ne 0 ];then

echo "install mysql is failed!" && /bin/false

fi

#/etc/init.d/mysqld stop

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

sleep 5

echo "update user set authentication_string=Password('$PASSWD') where user='root'; flush privileges;" | mysql mysql

echo "set password=Password('$PASSWD'); flush privileges;" | mysql -u root -p$PASSWD --connect-expired-password

sleep 5

echo "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '$PASSWD'; FLUSH PRIVILEGES; " | mysql -u root -p$PASSWD

/etc/init.d/mysqld restart

if [ $? -ne 0 ];then

echo "install mysql is failed!" && /bin/false

fi

IDSO=`cat /etc/ld.so.conf| grep $MYSQLDIR/lib | wc -l `

if [ $IDSO -eq 0 ];then

echo "$MYSQLDIR/lib" >> /etc/ld.so.conf

ldconfig

fi

chkconfig mysqld on

2、给 mysql_install.sh  可执行权限

chmod +x mysql_install.sh

3、运行mysql_install.sh

./mysql_install.sh

六、编译安装php7  创建php安装脚本php7_install.sh

1、vim php7_install.sh

#!/bin/bash

if [ $( find / -name mysql | wc -l ) -gt 1 ];then

echo " mysql is install "

else

yum install -y mysql

fi

cd /usr/local/src

tar -xzvf php-7.1.0.tar.gz

cd ./php-7.1.0

./configure \

--prefix=/usr/local/php7 \

--exec-prefix=/usr/local/php7 \

--with-config-file-path=/usr/local/php7/etc \

--with-curl \

--with-freetype-dir \

--with-gd \

--with-gettext \

--with-iconv-dir \

--with-kerberos \

--with-libdir=lib64 \

--with-libxml-dir \

--with-mysqli \

--with-openssl \

--with-pcre-regex \

--with-pdo-mysql \

--with-pdo-sqlite \

--with-pear \

--with-png-dir \

--with-xmlrpc \

--with-xsl \

--with-zlib \

--with-zlib-dir \

--with-mhash \

--with-mcrypt \

--with-openssl-dir \

--with-jpeg-dir \

--enable-fpm \

--enable-bcmath \

--enable-libxml \

--enable-inline-optimization \

--enable-gd-native-ttf \

--enable-mbregex \

--enable-mbstring \

--enable-opcache \

--enable-pcntl \

--enable-shmop \

--enable-soap \

--enable-sockets \

--enable-sysvsem \

--enable-xml \

--enable-zip

make && make install

# 中文php画图取消这个参数,不然会出现乱码

# --enable-gd-jis-conv \

2、给 php7_install.sh 可执行权限

chmod +x php7_install.sh

3、执行 php7_install.sh

./php7_install.sh

4、编译安装libmemcached-1.0.18

vim libmemcached_install.sh

#/!bin/bash

cd /usr/local/src

tar -zxvf libmemcached-1.0.18.tar.gz

cd ./libmemcached-1.0.18

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

make && make install

chmod +x libmemcached_install.sh

./libmemcached_install.sh

5、编译安装php-memcached

vim memcached_install.sh

#!/bin/bash

cd /usr/local/src/php-memcached

/usr/local/php7/bin/phpize

./configure --with-libmemcached-dir=/usr/local/libmemcached \

--with-php-config=/usr/local/php7/bin/php-config \

--disable-memcached-sasl

make && make install

chmod +x memcached_install.sh

./memcached_install.sh

留意编完成生成文件路径

Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

七、编译安装openssl-1.1.0c

vim openssl_install.sh

#!/bin/bash

#openssl install

cd /usr/local/src

tar -xvf openssl-1.1.0c.tar.gz

cd /usr/local/src/openssl-1.1.0c

./config --openssldir=/usr/local/ssl

make && make install

./config shared --openssldir=/usr/local/ssl

make clean

make && make install

IDSO=`cat /etc/ld.so.conf| grep /usr/local/lib64 | wc -l `

if [ $IDSO -eq 0 ];then

echo "/usr/local/lib64" >> /etc/ld.so.conf

fi

ldconfig

chmod +x openssl_install.sh

./openssl_install.sh

八、编译安装nginx-1.11.7

vim nginx_install.sh

#!/bin/bash

# nginx install

id nginx &> /dev/null

if [ $? -ne 0 ];then

groupadd -r nginx

useradd -g nginx -r nginx

fi

cd /usr/local/src

tar -xvf nginx-1.11.7.tar.gz

cd /usr/local/src/nginx-1.11.7

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

--sbin-path=/usr/sbin/nginx \

--conf-path=/etc/nginx/nginx.conf \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--pid-path=/var/run/nginx.pid \

--lock-path=/var/run/nginx.lock \

--http-client-body-temp-path=/var/cache/nginx/client_temp \

--http-proxy-temp-path=/var/cache/nginx/proxy_temp \

--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \

--http-scgi-temp-path=/var/cache/nginx/scgi_temp \

--user=nginx \

--group=nginx \

--with-http_ssl_module \

--with-http_realip_module \

--with-http_addition_module \

--with-http_sub_module \

--with-http_dav_module \

--with-http_flv_module \

--with-http_mp4_module \

--with-http_gunzip_module \

--with-http_gzip_static_module \

--with-http_random_index_module \

--with-http_secure_link_module \

--with-http_stub_status_module \

--with-http_auth_request_module \

--with-threads \

--with-stream \

--with-openssl=/usr/local/src/openssl-1.1.0c \ # openssl 源码解压路径

--with-stream_ssl_module \

--with-http_slice_module \

--with-mail \

--with-mail_ssl_module \

--with-file-aio \

--with-http_v2_module \

--with-ipv6

mkdir -pv /var/cache/nginx/{client_temp,proxy_temp,fastcgi_temp,uwsgi_temp,scgi_temp}

make && make install

2、给nginx_install.sh可执行权限

chmod +x nginx_install.sh

./nginx_install.sh

九、配置PHP7

/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/memcached.so

这个路径是 随机可变的所以要注意

留意变完成生成文件路径

Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

cd /usr/local/src/php-7.1.0

cp php.ini-production /usr/local/php7/etc/php.ini

cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

sed -i "s/user = .*/user = nginx/g" /usr/local/php7/etc/php-fpm.d/www.conf

sed -i "s/group = .*/group = nginx/g" /usr/local/php7/etc/php-fpm.d/www.conf

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

chkconfig php-fpm on

cat >> /usr/local/php7/etc/php.ini<< EOF

soap.wsdl_cache_enabled=1

max_input_time = 600

max_execution_time = 300

date.timezone = Asia/Shanghai

post_max_size = 32M

memory_limit = 128M

mbstring.func_overload = 1

extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/memcached.so

EOF

cat > /usr/local/nginx/html/index.php<

phpinfo();

?>

EOF

service php-fpm start

十、配置nginx

1、重命名:/etc/nginx/nginx.conf

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back

2、新建/etc/nginx/nginx.conf

cat > /etc/nginx/nginx.conf << EOF

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '

'\$status \$body_bytes_sent "\$http_referer" '

'"\$http_user_agent" "\$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;

}

EOF

3、创建/etc/nginx/conf.d

mkdir -p /etc/nginx/conf.d

4、创建支持php-fpm web nginx配置

cat > /etc/nginx/conf.d/default.conf << EOF

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root /usr/local/nginx/html;

index index.php index.html index.htm;

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

# proxy_pass http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

location ~ \.php$ {

root /usr/local/nginx/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ {

access_log off;

root opencart;

expires 30d;

break;

}

}

EOF

5、创建nginx启动脚本

vim /etc/init.d/nginx

# chkconfig: 2345 10 90

# description: Start and Stop nginx

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

EXEC=/usr/sbin/nginx

PIDFILE=/var/run/nginx.pid

CONF="/etc/nginx/nginx.conf"

AUTH="1234"

case "$1" in

start)

if [ -f $PIDFILE ]

then

echo "$PIDFILE exists, process is already running or crashed."

else

echo "Starting nginx server..."

$EXEC -c $CONF &

fi

if [ "$?"="0" ]

then

echo "nginx is running..."

fi

;;

stop)

if [ ! -f $PIDFILE ]

then

echo "$PIDFILE exists, process is not running."

else

PID=$(cat $PIDFILE)

echo "Stopping..."

kill -9 $PID

PID=$(pidof nginx)

kill -9 $PID

rm -rf /var/run/nginx.pid

sleep 2

while [ -x $PIDFILE ]

do

echo "Waiting for nginx to shutdown..."

sleep 1

done

echo "nginx stopped"

fi

;;

reload)

$EXEC -s reload

;;

restart|force-reload)

${0} stop

${0} start

;;

*)

echo "Usage: /etc/init.d/nginx {start|stop|restart|force-reload|reload}" >&2

exit 1

esac

6、给 /etc/init.d/nginx 可执行权限

chmod +x /etc/init.d/nginx

7、设置开机启动

chkconfig nginx on

8、启动nginx

service nginx start

十一、测试

[root@QKA169 src]# openssl version

OpenSSL 1.1.0c 10 Nov 2016

mysql -u root -p123456

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

看看是否登陆成功。远程带IP是否登陆成功

mysql -u root -h192.168.1.69 -p123456

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 6

Server version: 5.7.16 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

测试nginx 是否能打开

[root@QKA169 html]# ps -ef | grep php-fpm

root 337433 1 0 18:03 ? 00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)

nobody 337434 337433 0 18:03 ? 00:00:00 php-fpm: pool www

nobody 337435 337433 0 18:03 ? 00:00:00 php-fpm: pool www

root 337454 37888 0 18:12 pts/0 00:00:00 grep --color=auto php-fpm

[root@QKA169 html]# ps -ef | grep nginx

root 337400 1 0 18:01 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx 337401 337400 0 18:01 ? 00:00:00 nginx: worker process

root 337456 37888 0 18:13 pts/0 00:00:00 grep --color=auto nginx

[root@QKA169 html]# netstat -nalp | grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 337400/nginx: maste

tcp 0 0 192.168.1.69:80 192.168.6.6:54714 TIME_WAIT -

tcp 0 0 192.168.1.69:80 192.168.6.6:54709 TIME_WAIT -

远程打开

http://192.168.1.69/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

linux 源码搭建lnmp_详解CentOS 7.0源码包搭建LNMP 实际环境搭建相关推荐

  1. centos linux下vnc server远程桌面配置详解,CentOS 6.0 VNC远程桌面配置

    引言: 必须明白: vncserver在调用的时候,会根据你的配置来启用server端的监听端口, 端口默认是从5900开始,再加上你的桌面号. 比如你的桌面号为1,则vnc的连接端口号为5900+1 ...

  2. 302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)

    一 .基础概念 URI URI 包含 URL 和 URN. 请求和响应报文 1. 请求报文 2. 响应报文 二.HTTP 方法 客户端发送的 请求报文 第一行为请求行,包含了方法字段. GET 获取资 ...

  3. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  4. android4.0网络编程配书源码_linux网络编程之epoll源码重要部分详解

    一.epoll相关的数据结构 最重要的两个数据结构是红黑树和就绪链表,红黑树用于管理所有的文件描述符fd,就绪链表用于保存有事件发生的文件描述符. 当向系统中添加一个fd时,就创建一个epitem结构 ...

  5. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

  6. Linux系统下SVN服务器的搭建过程详解 UpJ}s7+

    Linux系统下SVN服务器的搭建过程详解 UpJ}s7+   1 环境:  服务器放在redhatAS4.0上,客户端在windows 2000. k_lb"5z   Z]jSq@%1H* ...

  7. 源码详解Android 9.0(P) 系统启动流程之SystemServer

    源码详解Android 9.0(P) 系统启动流程目录: 源码详解Android 9.0(P)系统启动流程之init进程(第一阶段) 源码详解Android 9.0(P)系统启动流程之init进程(第 ...

  8. linux系统rc路由配置_详解CentOS 6.4 添加永久静态路由所有方法汇总

    CentOS添加永久静态路由,具体如下: 在使用双网卡,同时使用2个网关的时候就需要加一条静态路由了.当然还有很多时候会需要加路由. 操作系统版本centos-6.4 64bit 一:使用route ...

  9. 写给小白的机器学习之决策树算法详解(附实战源码)

    这里是实战源码,里面算法参数解释和数据可视化详解 GitHub慢的话看码云 具体ppt也已上传至csdn和GitHub 可以做分类树和回归树 现在是一个多分类任务 PPT讲解 强壮性是对若有缺失值等其 ...

最新文章

  1. JS设计模式-观察者模式
  2. Zoom 袁征码农逆袭:8 次申请美国签证被拒,独闯硅谷成亿万富翁
  3. 基于python的文件传输程序_7个步骤,教你快速学会用python实现ftp文件传输功能(收藏了)...
  4. HDU2199,HDU2899,HDU1969,HDU2141--(简单二分)
  5. 微信小程序研发问题梳理:翻页:下拉:缓存:canvas:富文本:分享
  6. 51nod1667-概率好题【容斥,组合数学】
  7. 浪迹天涯的骨灰级开源爱好者——对话阿里云MVP吴晟
  8. python的隐藏功能分享_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...
  9. 设计模式之GOF23备忘录模式
  10. 三菱GXWorks2 绘制梯形图
  11. 目前流行的、强大的基于Java的机器学习开发库精选
  12. 伽罗华域, 二维码和CRC
  13. Navigate组件的使用(React Router6)
  14. pon终端测试仪_PON产品测试方案
  15. matlab水汽通量,降水成因诊断分析水汽通量水汽通量散度可降水量.pptx
  16. MySQL 为日期增加一个时间间隔
  17. Linux 入门第一节
  18. 均方根误差(RMSE)、平均绝对误差(MAE)、标准差
  19. 一键GHOST使用图文教程
  20. 使用WifiPhisher进行WiFi开发

热门文章

  1. linux缓冲区攻击实验报告,linux 下缓冲区溢出攻击原理及示例
  2. 小程序资源服务器,开发小程序没有服务器资源
  3. 怎样设计访谈提纲_用户调研报告如何做?访谈-整理-报告?
  4. 二维数组 赋值_数组,及二维数组
  5. win7上的linux环境变量,java之环境变量配置win7andlinux.docx
  6. linux之fail2ban之预防暴力破解
  7. Java斗地主算法的设计与实现_斗地主算法的设计与实现–洗牌和发牌
  8. Hibernate的出现和Hinbernate的简单模拟实现
  9. 基于JAVA+Servlet+JSP+MYSQL的网上订餐管理系统
  10. yntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file