Centos 7编译安装LNMP环境及 php-fpm原创 精华 |
「 2019.11.13 更新一些图」
这个环境的编译类似前面写的 ,不过这回把apache换成了nginx,还支持了https!用到的软件为:Nginx1.12.2、Mariadb10.1.23、PHP7.1.5、Openssl1.0.2k 。 前段时间折腾了三天才把这个环境编译好,今天做个笔记,以后还用得到~#j338:👨🎨💍📠💩👈 需要下载的软件:(这里的系统是全新安装的,软件最新版请访问官网查看下载) Nginx 1.14.0 (nginx官网 )
🤞💈🥑🆘🦚 openssl 1.0.2p (openssl 官网 )
👂🚗🥛🈳🕊 pcre8.43 (pcre 官网 )
php7.1.5 (php 官网 )
👩✈️💄📟🤡🙏 libmcrypt-2.5.8 (没发现官网)
mariadb 10.1.35 (mariadb 官网 )👨⚕️🎒🦯🤮🤳
zlib 1.2.11 (zlib 官网 )
🧑🌾🩰🗝😊🙌 一、编 译 升 级 openssl centos7中已经自带了openssl,但是版本比较老,有些漏洞...因为这个软件依赖很多和系统有关的包,如果直接remove的话,系统就会运行不了了..所以不能直接删掉它。 因为是新系统,所以还要安装gcc编译器,openssl还依赖zlib-devel ,没有这个的yum装上。(各个软件的依赖包,会依次安装) 👆🦼🍽🆚🪰
openssl编译参数:
👦🦺🩸😪🖕 没看见报错并且生成了Makefile,就可以编译安装了。(编译时间和你的硬件有关)
🧑🌾🧢⚔😷👍 把旧版的文件重命名(系统不同的话,这个位置也不同,名字也可能不同,可以find 查找一下):
👠📷😛🧠 将新版本文件软连接到系统默认的地方:
设置好之后是这样的(2019年11月13日 更新图) 👃🗼🍭♂🪶 ![]() 在/etc/ld.so.conf文件中写入openssl库文件的搜索路径:
🧑🚀🧣🛋😔👎 执行命令 ldconfig 使修改后的/etc/ld.so.conf生效 此时运行openssl version发现版本变成最新的了。 ![]() 🧑🚀🎩📱🤡👍 二、编 译 Mariadb 安装依赖:(注意看是否都安装完成)
下面的编译参数:🧑⚕️💎🪦🤮👃 -DMYSQL_DATADIR=/data/mysqldb 是数据库的数据存放目录,可以修改为你自己想要的。 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock socket文件地址 其他的参数看个人需求更改吧。👦🕶🔭🤖🤛 编译参数:
看见Makefile之后就可以编译安装了(如果你这个有报错,一般都是少什么依赖包没装上,自己上网搜一下就行了。) 👵👜🪓😰🦷
配置低的机器,可能要编译半小时...........可以去喝喝茶什么的#376: 👁🌡🦀♊🐯 如果你是1G内存,编译的时候可能会报这个错误:[storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/expr.c.o] Error 4 解决方法:🪖📠😔🧠 1.增加内存,如果是虚拟机或者有条件加内存,选用此方法 2.添加swap分区,如果是云主机或者暂时无法添加内存,选此方法
#创建一个512M的分区文件(大小自己决定)👨🦱👠💰😷✋
#将创建的分区文件格式化为swap
👃🚗🍏☪#使这个swap分区文件立即生效 ![]()
#设置开机自动挂载swap 👁🎢🌶♏ 写入:
![]() 👂🗽🍽♑🦦注意:出现错误需要删除 CMakeCache.txt 和 Makefile 才能再次cmake,而不是使用make clean命令了。 编译安装完成: ![]() 🤳💈🥑🅱🦚 mysql有几个默认的配置文件,可以根据自己的内存选择合适的,也可以自己修改。看名字已经知道了吧。。 引用 复制mysql的配置文件到/etc下,默认/etc/下已经有一个my.cnf了,可以备份或者直接覆盖掉。 👨🎨👗🖲😊👀
修改my.cnf配置,把innodb相关选项前面的#去掉,大概在115-130行之间。 👦🩴🪜🙃🤝 ![]() 创建mysql组和用户
👎🎂💲🦉 初始化数据库:
🤟🏠🥑📶🐥 修改mysql的文件权限
启动mysql试一试~
👌🏦🔪♂🦄 提示OK就是启动成功了 ![]() 运行安全脚本修改root密码,同时可禁止root远程连接,移除test数据库和匿名用户。🧑💻👠🛏🤑🙏
把mysql添加到系统服务,并且让它开机自启
🤌🍒♊🐅
把mysql添加到系统环境变量,在 /etc/profile 文件最后面加入(php 和 nginx 添加环境变量也和这个一样,多个环境变量用":"分开)
执行命令让他生效 source /etc/profile 最后就可以用service mysql stop/start 来关闭启动mysql了。 🙏🌦🍚❎🕊 ![]() 三、编 译 安 装 PHP 及 配 置 php-fpm PHP需要的依赖包:(注意看是否有没有装上的包)
🤌🗼🚭🦠 因为我这个yum源没有libmcrypt这个库(这个是加密库),所以要手动编译安装它: 解压前面下载的 libmcrypt-2.5.8.tar.gz 👍⛪🍖™🐅 编译参数:
🧠🗺🍌🉑🐢
PHP7编译参数:
🗽🥩📳🐟
可能出现的错误:Don't know how to define struct flock on this system, set --enable-opcache=no 👩✈️🧻🥲👆 解决办法如下: 编辑 /etc/ld.so.conf 加入 /usr/local/lib 再执行 ldconfig 即可
👊🌞↔🐮 由于需要和MySQL进行通信,所以需要特别查看PHP7安装后的lib扩展库目录(/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/)。需要确保至少存在mysqli.so、pdo_mysql.so这两个动态库文件,如下图所示: ![]() 复制配置文件: 👍🚐🥭✡🪶
🤞🚗🍖❌🐠 扩展库路径:/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303 五、配 置 php.ini www.conf 和 php-fpm 新建php-fpm组和用户: ✋🗼📳🦬
新建 nginx 用户:
把nginx加入php-fpm的组(为了方便配置文件权限)-
配置php.ini(php.ini是php运行核心配置文件): 🤳⛴🍖💲🐙
全屏查看
配置php-fpm.conf(php-fpm.conf是php-fpm进程服务的配置文件): 🧓💄📟😘👄
🤟🧳🍓🚭🐂 配置www.conf(www.conf这是php-fpm进程服务的扩展配置文件):
添加到系统环境变量:🩴📀😇🤝
创建日志目录🎩😷✌
fpm启动脚本:
用ss命令可以看到php-fpm,就说明启动成功了。 ![]() php-fpm 关闭:👨🎨🛍📀🤤👂
php-fpm 重启:
六、编 译 安 装 Nginx 依赖包:
编译参数: 🖐🌕🦀🆎🦮 全屏查看
这几个路径要指定到 源码包 的路径,也就是把前面下载的软件解压,路径看你自己放哪里。 🤝🚤🎂⚛ --with-pcre=/root/pcre-8.39 \--with-openssl=/root/openssl-1.0.2k \ --with-zlib=/root/zlib-1.2.11 \
👏🌡♻🦮 新建目录:
修改目录权限:
启动:nginx 快速停止:nginx -s stop 优雅的停止:nginx -s quit(不接受新的连接请求,等待旧的连接请求处理完毕再关闭) 重新载入配置文件:nginx -s reload👵🧢🪗😳🖐 七、配 置 nginx.conf 及 https 👦🎩🛋😪👃 这里只给主要部分的配置,由于篇幅有限,写不了那么多。 全屏查看 👨🚒👙📮😇👊
八、把 php-fpm 和 nginx 添加开机自启 在 /etc/rc.d/ 下的 rc.local 文件中,加入 php-fpm 和 nginx 的启动脚本,并把 rc.local 文件加上 x 权限。
👚🛏😀🤛 ![]() 最后附上成功安装discuz的图片: ![]() 评分
帖子热度 4.6万 ℃
| ||||||||||||
|
||||||||||||
由于篇幅有限,这里讲不了具体优化和安全加固方面,安全优化请看这篇
|
可能有些细节没写到,如果遇到问题可以回帖。
👨🎨🩴😛💪 引用 http2 是nginx新支持的http2协议 ,可以在谷歌浏览器中添加一个扩展(需要fan墙) 添加完成后,在支持http2的网页上会显示一个蓝色的闪电标志 👀🚤🎂🈚🐺 ![]() |
|
我说我看懂了大部分并按照教程认认真真的把所有做了最后发现然并卵
|