百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

CentOS下通过yum搭建lnmp(单版本PHP)

nanshan 2024-10-12 05:36 13 浏览 0 评论

lnmp即 Linux + Nginx + Mysql + PHP,本文以 CentOS 7.x 为例介绍如何通过 yum 的方式搭建完整的 lnmp 环境。

实现目标

1、通过 yum 方式安装 nginx、mysql 8.0、php 7.4

2、安装 php 模块,部署网站,实现运行 php ,读取数据库

安装相应软件

1、安装 nginx 并部署网站

参考下方教程选择 yum 方式安装 nginx ,并且建立一个虚拟主机站点。

CentOS安装nginx与部署网站

2、安装 php 7.4

参考下方教程选择 yum 方式安装 php 。

CentOS下安装指定版本的PHP

3、安装 mysql 8.0 且完成修改 mysql root 初始密码操作

参考下方教程选择 yum 方式安装 mysql 。

CentOS下安装mysql

配置 nginx 实现支持 PHP 程序

1、安装php 组件 php-fpm

yum -y install php-fpm

2、(方式一:端口式)修改 php-fpm 及 nginx 配置,使其可以运行 php

2.1、修改 php-fpm 配置

# 编辑
vim /etc/php-fpm.d/www.conf

# 将 apache 改为 nginx(约24,26行)
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

2.2、修改 nginx 虚拟主机站点配置支持运行 PHP(如 www.abc.com.conf)

# 站点主目录(省略部分内容)
root  /home/wwwroot/www.abc.com;

# 以上为示例配置,在 root 节点下添加以下内容(关键)
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;
}

3、(方式二:套接字)修改 php-fpm 及 nginx 配置,使其可以运行 php

3.1、修改 php-fpm 配置

# 编辑
vim /etc/php-fpm.d/www.conf

# 将 apache 改为 nginx(约24,26行)
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

# 注销原配置(约38行),前面加分号 ; 注销
;listen = 127.0.0.1:9000

# 添加以下配置
listen = /run/php-fpm/php74-fpm.sock

# 配置权限(约51行),去掉面前分号,将0660修改为0666
listen.mode = 0666

3.2、修改 nginx 虚拟主机站点配置支持运行 PHP(如 www.abc.com.conf)

# 站点主目录(省略部分内容)
root  /home/wwwroot/www.abc.com;

# 以上为示例配置,在 root 节点下添加以下内容(关键)
location ~ \.php$ {
    fastcgi_pass   unix:/run/php-fpm/php74-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

3.3、重启服务并设置权限

# 重启 php-fpm
systemctl restart php-fpm.service

# 重启 nginx
systemctl restart nginx.service

# 套接字文件权限(如权限报错可设置)
chmod 666 /run/php-fpm/php74-fpm.sock

4、建立 php 文件,输入域名测试是否正常运行 php 程序

# 建立php测试文件
vim /home/wwwroot/www.abc.com/phpinfo.php

# 输入以下内容并保存
<?php
phpinfo();
>

# 在浏览器输入域名进行测试

安装 php 组件 php-mysqli

如需连接 mysql 进行数据库读写操作,大部分 php 框架都需组件 mysqli ,可通过以下命令安装

yum -y install php-mysqli

设置开机自启动

# 开机自启动 php-fpm
systemctl enable php-fpm

# 开机自启动 nginx
systemctl enable nginx

# 开机自启动 mysql
systemctl enable mysqld

额外说明

1、如需安装其它组件,通过 yum 进行安装即可,格式如下

# 格式
yum install php-模块名

# 示例
yum install php-pdo

2、通过 phpmyadmin 管理数据库可能会报 Error during session start; 错误,通过以下命令设置 session 目录相应权限

chown -R nginx:nginx /var/lib/php/session

3、每次修改 php-fpm 或 nginx 及虚拟主机站点配置文件后,需重启 php-fpm 及 nginx 才能生效。

# 重启 php-fpm
systemctl restart php-fpm.service

# 重启 nginx
systemctl restart nginx.service

总结

通过以上方式即可搭建 lnmp 运行环境,示例中多为默认参数及配置,可在实际使用中根据情况进行调整,如添加更改账号及用户组、更改相关路径、安装 php 模块等。

相关推荐

Linux下C++访问web—使用libcurl库调用http接口发送解析json数据

一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...

干货 | 这 3 个超经典的Linux实战项目,让你分分钟入门Linux系统

编译安装nginx搭建小游戏网站编译安装流程下载nginx代码wget-P/server/tools/http:nginx.org/download/nginx1.22.0.tar.gz解压并进...

权限管理-树莓派linux⑦

前言当你在看这篇README,我感到非常荣幸。作为支持开源、分享的理念的我,给大家带来一些学习上的乐趣。由于本人并非专业的教育领域人士,很多时候天马行空,随心所欲的表达方式,可能让部分人感到不适。请根...

每天Linux学习:linux文件属性

ls-lih先通过这个命令来观察(-l列表显示目录内容详细,-i第一列显示inode,-h将文件大小显示为我们常见的kb,mb等单位)从截图中我们能看出文件属性由这9列信息组成:第1列:inod...

Linux ln、unlink命令用法

ln命令可以用来创建软链接或硬链接。1.创建软链接:ln-s源文件目标文件例如:ln-s/usr/lib/libc.so/usr/local/lib/libc.so.6这样就创建了一...

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

最火的 CI/CD 平台 Jenkins 详细搭建教程(for Linux)

在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。何为DevOps?来自wiki百科介绍DevOps是一系列软件开发实践,强调开发人员(Dev)和测...

hadoop集群搭建详细方法

第一步:搭建配置新的虚拟机格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除rm-rf/tmp/hadoop-centos*开启之后jps只有Java的进程:sudovi/et...

Linux 常用命令集合

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

inode文件索引,你了解嘛?你的Linux基础真的扎实嘛?

一、inode是什么?深入了解inode,就要从文件存储说起来!文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节。读取硬盘的时候,不会一个个扇区地读取,这样效率...

linux实例之创建service服务

前面我们讲过可以通过service命令来启动,重启,停止指定的服务程序。service服务可以在系统启动时,自动运行该服务,我们可以利用这一特点,创建service文件,并且让系统重启时,自动执行命令...

linux之软连接和硬连接的区别

硬连接硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的...

Linux inode 详解

简介索引节点(IndexNode)是Linux/类unix系统文件系统上的一种数据结构,用于存储有关文件或目录的元数据。它包含文件的所有信息,除了文件名和数据。inode在文件系统如何存储和检...

Bash 脚本实例:获取符号链接的目标位置

我们都熟悉Linux中的符号链接,通常称为符号链接或软链接,符号链接是指向任何文件系统中的另一个文件或目录的特定文件。本文将介绍Linux中符号链接的基础知识,并创建一个简单的bash脚本...

windows快捷方式,符号链接,软链接和硬链接

当一个软件大量的向C盘写入数据,而我们又无法修改软件保存数据的位置时,可以使用windows系统的“符号链接”(SymbolicLink)功能,将保存数据的位置修改到其它分区中。符号链接类似于我们熟...

取消回复欢迎 发表评论: