Linux安装配置nginx+php搭建以及在docker中配置

Linux安装配置nginx+php搭建以及在docker中配置

文章目录

    • Linux安装配置nginx+php搭建以及在docker中配置
      • 1.nginx源码包编译环境和安装相应的依赖
        • 1.1 安装编译环境
        • 1.2 安装pcre库、zlib库和openssl库
      • 2.安装nginx
        • 2.1 在[nginx官网](https://nginx.org/en/download.html)上获取源码包并进行下载
        • 2.2 进行解压编译
      • 3.启动nginx服务
        • 3.1 运行nginx
        • 3.2 关闭防火墙
        • 3.3 用本地浏览器服务虚拟机地址
      • 4.修改nginx配置文件创建新的端口页面
      • 5.安装php
        • 5.1 使用yum安装php-fpm
        • 5.2 修改php的配置文件
        • 5.3 修改nginx的配置文件
        • 5.4 创建php页面文件并查看测试
      • 6.安装docker
        • 6.1 查看操作系统发行版本与清空已安装的docker旧版本
        • 6.2 安装docker前配置
        • 6.3 安装docker与启动
      • 7.在docker上拉取nginx镜像以及挂载配置
        • 7.1 拉取nginx镜像
        • 7.2 创建一个nginx服务以及挂载本地的nginx配置文件
        • 7.3 查看对应的9090端口的映射情况
      • 8.docker环境下配置php服务
        • 8.1 拉取php-fpm镜像
        • 8.2 创建容器
        • 8.3 创建conf.d目录并配置.conf文件
        • 8.4 创建nginx容器
        • 8.5 测试

1.nginx源码包编译环境和安装相应的依赖

1.1 安装编译环境

#安装编译环境
[root@localhost /]# yum install -y gcc gcc-c++

1.2 安装pcre库、zlib库和openssl库

  • pcre(Perl Compatible Regular Expressions)是一个Perl库,是一个用C语言编写的正则表达式的函数库,是轻量级的函数库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库

  • zlib是一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数,能检测解压出来的数据完整性。nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

  • openssl,即open secure sockets layer,是一个开源的安全套接字层的密码库。包括常用的密码加解密算法、常用的密钥算法、证书管理和SSL协议。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

#安装pcre库
[root@localhost /]# yum install -y pcre pcre-devel#安装zlib库
[root@localhost /]# yum install -y zlib zlib-devel#安装openssl库
[root@localhost /]# yum install -y openssl-devel

2.安装nginx

2.1 在nginx官网上获取源码包并进行下载

在这里插入图片描述

[root@localhost /]# mkdir nginxfile
[root@localhost /]# cd nginxfile/#下载nginx源码包
[root@localhost nginxfile]# wget https://nginx.org/download/nginx-1.24.0.tar.gz

2.2 进行解压编译

#解压源码包
[root@localhost nginxfile]# tar -zxvf nginx-1.24.0.tar.gz#编译配置
[root@localhost nginxfile]# cd nginx-1.24.0/
[root@localhost nginx-1.24.0]# ./configure --with-http_ssl_module
[root@localhost nginx-1.24.0]# ./configure --with-stream
[root@localhost nginx-1.24.0]# ./configure#执行安装
[root@localhost nginx-1.24.0]# make && make install

3.启动nginx服务

3.1 运行nginx

进入到/usr/local/sbin的目录下执行./nginx命令

[root@localhost nginx-1.24.0]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ls
nginx#执行nginx
[root@localhost sbin]# ./nginx #查看nginx的进程开启情况
[root@localhost sbin]# ps -aux | grep nginx
root       72876  0.0  0.0  34444   384 ?        Ss   21:27   0:00 nginx: master process ./nginx
nobody     72877  0.0  0.2  66624  3932 ?        S    21:27   0:00 nginx: worker process
root       72887  0.0  0.0  12136  1120 pts/2    R+   21:28   0:00 grep --color=auto nginx

3.2 关闭防火墙

关闭防火墙防止本地主机访问时被拦截

[root@localhost sbin]# systemctl stop firewalld.service
[root@localhost sbin]# systemctl status firewalld.service

3.3 用本地浏览器服务虚拟机地址

出现welcome to nginx页面代表nginx安装启动完成

在这里插入图片描述

4.修改nginx配置文件创建新的端口页面

cd到/usr/local/nginx/html的路径下,创建一个新的后缀为.html的文件

[root@localhost html]# touch web.html#在文件中编写新的网页
[root@localhost html]# vim web.html
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Hello world</h1>
</body>
</html>

cd到/usr/local/nginx/conf的目录下,修改配置文件,添加以下配置

[root@localhost conf]# vim nginx.confserver {listen       8080;  #浏览器访问虚拟机的8080端口时显示该页面server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / { root   html;index  web.html index.htm; #访问8080端口时定位到web.html文件}#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;}#停止nginx服务
[root@localhost sbin]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx -s stop#重新启动nginx服务
[root@localhost sbin]# ./nginx

使用本地浏览器访问8080端口查看新建页面

在这里插入图片描述

5.安装php

5.1 使用yum安装php-fpm

#因为源码安装的方式会需要搭载很多的依赖包,安装编译过程也比较的繁琐,所以这里采用yum源安装途径,yum仓库安装的方法比源码包安装更加的简洁快速
[root@localhost /]# yum -y install php-fpm	#启动php-fpm服务
[root@localhost /]# systemctl start php-fpm
[root@localhost /]# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process ManagerLoaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset:>   Active: active (running) since Tue 2023-08-08 14:29:59 CST; 22s ago

5.2 修改php的配置文件

#定位到php-fpm的文件下
[root@localhost /]# cd /etc/php-fpm.d/#修改www.conf文件内容
[root@localhost php-fpm.d]# vim www.conf

在www.conf文件下注释掉listen = /run/php-fpm/www.sock这段内容,添加listen = 127.0.0.1:9000

在这里插入图片描述

5.3 修改nginx的配置文件

#定位到nginx/conf文件下
[root@localhost nginx]# cd /usr/local/nginx/conf/#修改nginx.conf文件内容
[root@localhost conf]# vim nginx.conf

取消掉serverlocation ~ \.php$内容中的注释

在这里插入图片描述

将刚刚取消注释的location ~ \.php$fastcgi_param SCRIPT_FILENAME内容后面的/scripts$fastcgi_script_name修改为$document_root$fastcgi_script_name

在这里插入图片描述

server的第一段location /内容下的index后面添加web.php文件名(用于定位到后面即将创建的php页面文件)

在这里插入图片描述

5.4 创建php页面文件并查看测试

#定位到nginx/html文件下
[root@localhost nginx]# cd /usr/local/nginx/html/#创建web.php页面文件
[root@localhost html]# vim web.php
<?php
phpinfo();
?>

所有的文件配置完毕后需要重启php-fpm服务和nginx

#重启php-fpm服务
[root@localhost html]# systemctl restart php-fpm
[root@localhost html]# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process ManagerLoaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset:>   Active: active (running) since Tue 2023-08-08 15:02:04 CST; 7s agoMain PID: 76438 (php-fpm)#重启nginx
#定位到nginx/sbin文件路径下
[root@localhost html]# cd /usr/local/nginx/sbin/#停止nginx
[root@localhost sbin]# ./nginx -s stop
#重新启动nginx
[root@localhost sbin]# ./nginx#查看开启情况
[root@localhost sbin]# ps -aux | grep nginx 
root       76473  0.0  0.0  34444   440 ?        Ss   15:03   0:00 nginx: master process ./nginx
nobody     76474  0.0  0.2  66564  4172 ?        S    15:03   0:00 nginx: worker process
root       76503  0.0  0.0  12136  1192 pts/1    R+   15:04   0:00 grep --color=auto nginx

在本地浏览器访问web.php页面

在这里插入图片描述

注意:如果访问不成功可以检查一下防火墙是否关闭

6.安装docker

6.1 查看操作系统发行版本与清空已安装的docker旧版本

docker要求centos的内核版本高于3.10

[root@localhost /]# uname -r
4.18.0-348.el8.x86_64#卸载旧的docker版本
[root@localhost /]# yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

6.2 安装docker前配置

#安装yum-utils
[root@localhost /]# yum install -y yum-utils#添加阿里云仓库
[root@localhost /]# yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装makecache
[root@localhost /]# yum makecache 

6.3 安装docker与启动

[root@localhost /]# yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

一般都会报错

在这里插入图片描述

解决方法:

#运行以下内容
[root@localhost /]# yum erase podman buildah#重新进行安装
[root@localhost /]# yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

启动docker

[root@localhost /]# systemctl start docker
[root@localhost /]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>   Active: active (running) since Wed 2023-08-09 00:51:52 CST; 9s ago

运行hello-world进行测试

[root@localhost /]# docker run hello-world

在这里插入图片描述

7.在docker上拉取nginx镜像以及挂载配置

7.1 拉取nginx镜像

[root@localhost /]# docker pull nginx#查看本地镜像
[root@localhost /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    89da1fb6dcb9   11 days ago    187MB
hello-world   latest    9c7a54a9a43c   3 months ago   13.3kB

7.2 创建一个nginx服务以及挂载本地的nginx配置文件

#创建运行一个nginx容器同时挂载本地文件
[root@localhost ~]# docker run --name nginx-test -p 9090:80 -d -v /usr/local/nginx/conf:/usr/share/nginx/conf -v /usr/local/nginx/html:/usr/share/nginx/html -v /etc/nginx/conf.d:/usr/share/nginx/conf.d nginx
38e38f4ea4534594b8b8cdcebee6bee843debbf8a18c82904ea5ac7f63efc283[root@localhost conf]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                   NAMES
38e38f4ea453   nginx     "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes   0.0.0.0:9090->80/tcp, :::9090->80/tcp   nginx-test

7.3 查看对应的9090端口的映射情况

在这里插入图片描述

8.docker环境下配置php服务

8.1 拉取php-fpm镜像

[root@localhost /]# docker pull php:7.2-fpm#查看本地镜像
[root@localhost /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    89da1fb6dcb9   11 days ago    187MB
hello-world   latest    9c7a54a9a43c   3 months ago   13.3kB
php           7.2-fpm   28f52b60203d   2 years ago    398MB

8.2 创建容器

#创建php文件挂载目录
[root@localhost /]# mkdir -p /docker/nginx/www/myphp#创建容器
[root@localhost /]# docker run --name myphp -v /docker/nginx/www/myphp:/www/myphp -d php:7.2-fpm
dcfdfe9436d080c87d66305104df09a13e4335f6c3532fcd461982b22bf8c090[root@localhost /]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                   NAMES
dcfdfe9436d0   php:7.2-fpm   "docker-php-entrypoi…"   37 seconds ago   Up 36 seconds   9000/tcp                                myphp

8.3 创建conf.d目录并配置.conf文件

[root@localhost /]# mkdir -p /docker/nginx/conf/conf.d[root@localhost conf.d]# vim myphp.conf

在配置文件中写上以下内容

在这里插入图片描述

8.4 创建nginx容器

#创建一个nginx容器
[root@localhost conf.d]# docker run --name nginx1 -p 8088:80 -d \
> -v /docker/nginx/www:/usr/share/nginx/html \
> -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
> --link myphp:php nginx
f761985089f1ed5abd61625ac84b90298a7f53f9c1c2013533afce05df135cc4[root@localhost conf.d]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                   NAMES
f761985089f1   nginx         "/docker-entrypoint.…"   5 minutes ago    Up 5 minutes    0.0.0.0:8088->80/tcp, :::8088->80/tcp   nginx1
dcfdfe9436d0   php:7.2-fpm   "docker-php-entrypoi…"   13 minutes ago   Up 13 minutes   9000/tcp                                myphp

8.5 测试

/docker/nginx/www/myphp/路径下创建.php文件

[root@localhost conf.d]# cd /docker/nginx/www/myphp/
[root@localhost myphp]# vim index.php
<?php
phpinfo();
?>

本地浏览器进行测试8088端口访问php主页

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 指定spring.profiles.active本地启动

spring.profiles.activedev spring.profiles.activepro

Android开发实践:Android.mk模板

关于Android NDK开发的文章已经比较多了&#xff0c;我的博客中也分享了很多NDK开发相关经验和技巧&#xff0c;今天简单写了一个 Android.mk 的示例模板&#xff0c;供初学者参考。 本模板主要给大家示例 Android NDK 开发中的如下几个问题&#xff1a; 如何自动添加需要编译…

15_基于Flink将pulsar数据写入到ClickHouse

3.8.基于Flink将数据写入到ClickHouse 编写Flink完成数据写入到ClickHouse操作, 后续基于CK完成指标统计操作 3.8.1.ClickHouse基本介绍 ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用…

K最近邻算法:简单高效的分类和回归方法(三)

文章目录 &#x1f340;引言&#x1f340;训练集和测试集&#x1f340;sklearn中封装好的train_test_split&#x1f340;超参数 &#x1f340;引言 本节以KNN算法为主&#xff0c;简单介绍一下训练集和测试集、超参数 &#x1f340;训练集和测试集 训练集和测试集是机器学习和深…

【LeetCode】数据结构题解(11)[用队列实现栈]

用队列实现栈 &#x1f609; 1.题目来源&#x1f440;2.题目描述&#x1f914;3.解题思路&#x1f973;4.代码展示 所属专栏&#xff1a;玩转数据结构题型❤️ &#x1f680; >博主首页&#xff1a;初阳785❤️ &#x1f680; >代码托管&#xff1a;chuyang785❤️ &…

C语言文件操作基本方法

1、文件的分类 ANSI C 的缓冲文件系统 缓冲文件系统 缓冲文件系统是指&#xff0c;系统自动地在内存区为每个正在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据时&#xff0c;必须首先输出到缓冲区中。待缓冲区装满后&#xff0c;再一起输出到磁盘文件中。 从磁盘文件向内…

Python爬虫的Selenium(学习于b站尚硅谷)

目录 一、Selenium  1.为什么要学习Selenium  &#xff08;1&#xff09;什么是Selenium  &#xff08;2&#xff09;为什么使用selenium?  &#xff08;3&#xff09;代码演示 2. selenium的基本使用  &#xff08;1&#xff09;如何安装selenium  &#xff08;2…

探析STM32标准库与HAL库之间的差异与优劣

引言&#xff1a; 在嵌入式开发领域&#xff0c;STMicroelectronics的STM32系列芯片广受欢迎。STM32提供了两种主要的软件库&#xff0c;即标准库和HAL库&#xff0c;用于开发各种应用。本文将探讨这两种库之间的差异&#xff0c;比较它们的优劣&#xff0c;并分析在选择库时需…

数仓架构模型设计参考

1、数据技术架构 1.1、技术架构 1.2、数据分层 将数据仓库分为三层&#xff0c;自下而上为&#xff1a;数据引入层&#xff08;ODS&#xff0c;Operation Data Store&#xff09;、数据公共层&#xff08;CDM&#xff0c;Common Data Model&#xff09;和数据应用层&#xff…

Android 数据库之GreenDAO

GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架&#xff0c;将 Java 对象映射到 SQLite 数据库中&#xff0c;我们操作数据库的时候&#xff0c;不再需要编写复杂的 SQL语句&#xff0c; 在性能方面&#xff0c;greenDAO 针对 Android 进行了高度优化&#xff0c;…

IPWorks S3 Delphi Edition Crack

IPWorks S3 Delphi Edition Crack IPWorksS3使集成基于云的文件存储变得容易。易于使用的组件可用于与任何S3兼容的存储提供商集成&#xff0c;如Amazon S3、Digital Ocean Spaces、Wasabi、Backblaze B2、IBM Cloud Object storage、Oracle Cloud、Linode等。强大的客户端加密…

springboot+vue智能化网络电子相册图片管理系统_84ds3

随着计算机技术发展&#xff0c;计算机系统的应用已延伸到社会的各个领域&#xff0c;大量基于网络的广泛应用给生活带来了十分的便利。所以把智能化电子相册与现在网络相结合&#xff0c;利用计算机搭建智能化电子相册系统&#xff0c;实现智能化电子相册的信息化。则对于进一…

01_什么是ansible、基本架构、ansible工作机制、Ansible安装、配置主机清单、设置SSH无密码登录等

1.什么是ansible 1.1.基本介绍 1.2.基本架构 1.3.基本特征 1.4.优点 1.5.ansible工作机制 2.Ansible安装 2.1.机器准备 2.2.安装ansible 2.2.1.安装epel源 2.2.2.安装ansible 2.2.3.查看ansible版本 2.2.4.树状结构展示文件夹 2.2.4.1.其中ansible.cfg的内容如下 2.2.4.2.host的…

jmeter 二次开发详解

目录 背景&#xff1a; 自定义 BeanShell 功能 自定义请求编写&#xff08;Java Sampler&#xff09; 实现 Java Sampler 功能的两种方式 案例&#xff1a;使用 JavaSampler 重写 HTTP 的 POST 请求 自定义函数助手 背景&#xff1a; JMeter 是一个功能强大的性能测试工具…

The ‘kotlin-android-extensions‘ Gradle plugin is no longer supported.

Android使用kotlin开发&#xff0c;运行报错 The kotlin-android-extensions Gradle plugin is no longer supported. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.an…

linux umask 详解

1. umask 定义 在 linux 系统中&#xff0c;umask 被定义在 /etc/profile 配置文件中&#xff0c;有一段 shell 脚本对 umask 是这么定义的。在 shell 会话输入命令&#xff1a; $ cat /etc/profile # 查看 /etc/profile 配置文件的内容 if [ $UID -gt 199 ] &&…

Vue3中v-model在原生元素和自定义组件上的使用

目录 前言 一、原生元素上的用法 1. 输入框(input) 2. 多行文本域(textarea) 3. 单选按钮(radio) 4. 多选框(checkbox) 5. 下拉选择框(select) 二、自定义组件上的用法 1. 定义一个名为 modelValue 的 props 属性和一个名为 update:modelValue 的事件 2.使用一个可…

网络编程 tcp udp http编程流程 网络基础知识

讲解 网络基础知识网络编程tcp编程流程图示理解bind和accept函数理解监视套接字和链接套接字理解linux和window下的编程实现tcp特点 udp编程流程图示理解udp特点 http编程流程图示理解编程实现-网站服务器 网络基础知识 OSI分层&#xff1a;应用层 表示层 会话层 传输层 网络层…

springBoot集成caffeine,自定义缓存配置 CacheManager

目录 springboot集成caffeine Maven依赖 配置信息&#xff1a;properties文件 config配置 使用案例 Caffeine定制化配置多个cachemanager springboot集成redis并且定制化配置cachemanager springboot集成caffeine Caffeine是一种基于服务器内存的缓存库。它将数据存储在…

【MongoDB】解决ProxmoxVE下CentOS7虚拟机安装MongoDB6后启动失败的问题

目录 安装步骤&#xff1a; 2.1 配置yum源 2.2 安装MongoDB 2.3 启 动MongoDB ProxmoxVE上新装的CentOS7.4虚拟机&#xff0c;安装MongoDB6。 安装步骤&#xff1a; 2.1 配置yum源 # 创建mongodb yum源&#xff08;https://www.mongodb.com/docs/manual/tutorial/insta…