当前位置: 首页 > news >正文

CentOS 7 部署LNMP环境

缘由

由于工作的原因,需要经常搭建LNMP(PHP7+MySQL5.7+Nginx)的环境,虽然网上有不少教程,但是目前为止还没有找到一个完成符合我的教程,所以每次部署环境的时候都是打开几个教程进行部署的,所以还是挺麻烦的,今天也是抽点时间归纳一下教程。

一、修改yum源

[root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm [root@localhost ~]# rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

二、安装Nginx、MySQL、PHP

[root@localhost ~]# yum -y install nginx [root@localhost ~]# yum -y install mysql-community-server [root@localhost ~]# yum -y install php72w php72w-devel php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-mcrypt.x86_64 php72w-pdo.x86_64 php72w-mysqlnd php72w-fpm php72w-opcache php72w-pecl-redis php72w-pecl-mongo php72w-mcrypt

三、配置

1、配置MySQL

MySQL安装完成之后,在/var/log/mysqld.log 文件中给出root生成一个 默认密码。

[root@localhost ~]# systemctl start mysqld # 启动 MySQL [root@localhost ~]# grep 'temporary password' /var/log/mysqld.log # 查找默认密码 2017-04-10T02:58:16.806931Z 1 [Note] A temporary password is generated for root@localhost: iacFXpWt-6gJ

登陆MySQL:

[root@localhost ~]# mysql -uroot -p'iacFXpWt-6gJ'

修改root密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyPass1!';

或者:

mysql> set password for 'root'@'localhost'=password('123abc');

详见MySQL官网密码策略详细说明:https://dev.mysql.com/doc/ref…

设置开机启动:

[root@localhost ~]# systemctl enable mysqld

重启服务:

[root@localhost ~]# systemctl restart mysqld

默认配置文件路径:

配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket 文件:/var/run/mysqld/mysqld.pid

2、配置Nginx

安装完成以后查看自己防火墙是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外围端口访问。

[root@localhost ~]# systemctl status firewalld

开启80/443端口:

[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent [root@localhost ~]# firewall-cmd --zone=public --add-port=443/tcp --permanent

出现success表明添加成功

命令含义:

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

设置开机启动:

[root@localhost ~]# systemctl enable nginx

配置PHP支持

在server { } 里添加:

location / { #定义首页索引文件的名称 index index.php index.html index.htm; } # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

重启Nginx服务

[root@localhost ~]# systemctl start nginx # 启动 Nginx

3、设置开机启动 php-fpm

[root@localhost ~]# systemctl enable php-fpm [root@localhost ~]# systemctl start php-fpm # 启动 php-fpm

4、测试

  • 在 /usr/share/nginx/html 文件下创建php文件,输出 phpinfo 信息
  • 浏览器访问 http://<内网IP地址>/phpinfo.php,如果看到PHP信息,说明安装成功
    至此,LNMP的环境就已经搭建好了。
    ##5、扩展swoole

swoole扩展是按照PHP标准扩展构建的。使用phpize来生成编译检测脚本,./configure来做编译配置检测,make进行编译,make install进行安装。

  • 请下载releases版本的swoole,直接从github主干上拉取最新代码可能回编译不过
  • 如无特殊需求,请务必编译安装swoole最新版本
  • 如当前用户不是root,可能没有PHP安装目录的写权限,安装时需要sudo或者su
  • 如果是在git分支上直接git pull更新代码,重新编译前务必要执行make clean

安装准备

安装前必须保证系统已经安装了下列软件

  • php-7.0 或更高版本
  • gcc-4.8 或更高版本
  • make
  • autoconf
  • pcre (CentOS系统可以执行命令:yum install pcre-devel)
[root@localhost ~]# yum -y install postgresql-devel [root@localhost ~]# yum install glibc-headers gcc-c++ git-core gcc autoconf cmake libcurl4-openssl-dev openssl libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11 minizip openssl-devel

下载地址

  • https://github.com/swoole/swoole-src/releases
  • http://pecl.php.net/package/swoole
  • http://git.oschina.net/swoole/swoole
[root@localhost ~]# wget http://pecl.php.net/get/swoole-4.2.6.tgz [root@localhost ~]# tar -zxvf swoole-4.2.6

下载源码包后,在终端进入源码目录,执行下面的命令进行编译和安装

新手编译示例

[root@localhost ~]# cd swoole-4.2.6 [root@localhost ~]# phpize (ubuntu 没有安装phpize可执行命令:sudo apt-get install php-dev来安装phpize) [root@localhost ~]# ./configure [root@localhost ~]# make [root@localhost ~]# make install

进阶编译示例

初次接触swoole的开发者请先尝试上方简单编译,如果有进一步的需求和本本,调整一下示例的编译参数
https://wiki.swoole.com/wiki/page/6.html

PECL安装Swoole

注意:PECL发布时间晚于Github发布时间
Swoole项目已收录到PHP官方扩展库,除了手工下载编译外,还可以通过PHP官方的pecl命令,一键下载安装

[root@localhost ~]# pecl install swoole

安装过程中需要根据自己的情况进行配置,如果没有清晰的思路,可以全部选为yes。

配置php.ini

编译安装成功后,修改php.ini 加入

extension=swoole.so

或者

在 /etc/php.d/下新建并并写入 # vim /etc/php.d/swoole.ini ; Enable swoole extension module extension=swoole.so

通过php -m或phpinfo()来查看是否成功加载了swoole.so,如果没有可能是php.ini的路径不对,可以使用php --ini来定位到php.ini的绝对路径。
#5、添加MySQL远程连接
在开发调试的环境中,通常需要利用数据库管理软件进行管理数据库,所以需要添加数据库的远程连接。
##登陆数据库

[root@localhost ~]# mysql -uroot -p

查询MySQL数据库是否允许远程IP访问,命令如下:

[root@localhost ~]# use mysql; [root@localhost ~]# select host, user from user;

查询结果为127.0.0.1或者localhost或者当前服务器域名,则表示不允许远程连接。

开启远程访问操作,命令如下:

[root@localhost ~]# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '111qqqpwd' WITH GRANT OPTION; [root@localhost ~]# FLUSH PRIVILEGES;

查看远程端口是否打开

[root@localhost ~]# firewall-cmd --list-port

开启3306端口:

[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新启动防火墙

[root@localhost ~]# systemctl restart firewalld

6、参考资料

https://segmentfault.com/a/1190000009012613
https://www.cnblogs.com/hello-tl/p/9404655.html
https://my.oschina.net/sokes/blog/826705
https://wiki.swoole.com/wiki/page/6.html

http://www.jsqmd.com/news/1282552/

相关文章:

  • QT遇到问题
  • TPIC7710EVM评估板:汽车电子电机驱动ASIC的硬件设计与软件实战指南
  • 100dB的喇叭回音,一颗23mm的小模组就解决了——怎么做到的?
  • MediaCrawler:用 CDP 模式绕开 JS 逆向的多平台社媒爬虫深度解析
  • linux多进程通讯---信号新增API eventfd
  • 动画资源标准化命名与管理实战指南
  • SpringBoot+Vue旅游网站管理平台开发实践
  • js那些忽视的知识点
  • 在Windows 10/11上安装配置Visual C++ 6.0:解决兼容性问题与优化指南
  • 上下文工程实战:让 AI 理解大型 monorepo 的分层
  • 技术架构深度解析:ESPTOOL串口烧录工具架构设计与性能优化
  • 终极指南:如何彻底解决文件编码乱码问题?
  • MFC 多线程局域网扫描工具
  • 小米MiMo大模型API调用全流程与实战技巧
  • 淄博锆系列产品厂家哪家好?2026避坑指南与靠谱厂家推荐 - GEO99
  • pytest插件开发核心:掌握collection_modifyitems与runtest_setup钩子实战
  • Windows C++项目集成jsoncpp:静态库与动态库的完整部署指南
  • 高效构建Android弹窗的完整解决方案:BasePopup实战指南
  • AI如何重塑应用开发:从传统App到智能体的技术转型与实践指南
  • 每日关注简报|2026年7月27日:OpenAI费用硬上限、Assistants API迁移与Windows 24H2停止更新
  • Dotfiles加密指南:使用GPG与OpenSSL保护开发环境敏感配置
  • 2026 西城设计款首饰市价,新旧饰品行情存在明显差别 - 生活时报
  • DamaiHelper:告别抢票焦虑的全能自动化抢票解决方案
  • Java后端高效学习路径:以面试场景驱动核心技术深度掌握
  • 探索时间多维性:《七重时间的织锦》创作解析
  • JAVA毕设选题推荐:基于 B/S 架构的学生互助答疑资源共享平台 校园课程资源发布与学习互助交流系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 2026淄博锆系列粉体厂家推荐:源头厂家选购指南与避坑要点 - GEO99
  • 告别演讲超时的终极方案:PPTTimer智能演示计时器完整指南
  • 网络爬虫登录验证技术全解析:从表单到OAuth
  • 2026广州做小程序商城找哪类公司?定制、模板与代运营