视频地址

原文地址

一.下载/更新php源

  1. 打开下载网址

    https://launchpad.net/~ondrej/+archive/ubuntu/php

  2. 先安装一下这个命令 add-apt-repository

    apt-get install software-properties-common

  3. 添加第三方源:

    add-apt-repository ppa:ondrej/php

  4. 更新本地源

    apt-get update

二.安装php7.4

  1. 安装

    apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring

    选择6. Asia

    选择70. Shanghai

  2. 启动php

    service php7.4-fpm start #启动fpm

  3. 查看进程

    root@7c609eaf61d3:/etc/init.d# ps aux|grep php 
    
    root     11864  0.0  0.0 342724 10104 ?        Ss   07:05   0:00 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
    
    www-data 11865  0.0  0.0 345020  9672 ?        S    07:05   0:00 php-fpm: pool www
    
    www-data 11866  0.0  0.0 345020  9672 ?        S    07:05   0:00 php-fpm: pool www
    
    root     11868  0.0  0.0  11464  1004 pts/1    S+   07:06   0:00 grep --color=auto php
  4. 查看版本

    root@7c609eaf61d3:/etc/init.d# php -v #查看进程
    PHP 7.4.8 (cli) (built: Jul 13 2020 16:45:47) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.8, Copyright (c), by Zend Technologies

安装php主要的就三个

phpcli #命令行

php7.4-fpm #和nginx配合的多进程管理 多数使用这个

module #和apache配合的

  1. 查看监听的端口

    安装net-tools

    可以用altupn命令查看监听的端口

    apt-get install net-tools
    root@7c609eaf61d3:/etc/init.d# netstat -altupn|grep 9000
    root@7c609eaf61d3:/etc/init.d# netstat -altupn|grep 80
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23/nginx: master pr
    tcp 0 0 172.17.0.3:47020 124.200.113.110:80 TIME_WAIT -
    tcp6 0 0 :::80 :::* LISTEN 23/nginx: master pr
     以上可以看到9000端口没有被监听,只监听了80端口

    fpm监听有两种方式

  • a.监听端口,一般为9000端口
  • b.监听socket

三.修改配置

3.1 修改www.conf 文件

vim /etc/php/7.4/fpm/pool.d/www.conf

/listen = #可以找到监听方式 listen = /run/php/php7.4-fpm.sock

说明默认使用sock方式配合nginx方式工作

修改以下几处配置

1.打开在控制台显示php的错误

;php_flag[display_errors] = off 改为 php_flag[display_errors] = on

;php_admin_flag[log_errors] = on 改为 php_admin_flag[log_errors] = on

2.打开日志

;access.log = log/$pool.access.log 改为 access.log = log/$pool.access.log

打开日志后,需要新建日志文件/usr/log/www.access.log,

/var/log/php7.4-fpm.log文件里

mkdir -p /usr/log

vim /usr/log/www.access.log

保存并退出

如果没有这个文件,php会启动不了,不报错,错误日志会写入日志文件,

cat /etc/php/7.4/fpm/php-fpm.conf里可以查到php错误日志会写会

error_log = /var/log/php7.4-fpm.log

四.配置域名

vim /etc/hosts

127.0.0.1 phptest.haimait.hm

五.nginx的配置文件

5.1 sock方式和nginx配合工作

  1. 修改php监听方式

    vim /etc/php/7.4/fpm/pool.d/www.conf

    这里我们使用监听sock的方式配合nginx工作

    listen = /run/php/php7.4-fpm.sock

  2. 重启php

    service php7.4-fpm reload

  3. 修改nginx配置文件

    vim /etc/nginx/conf.d/phptest.haimait.hm.conf

    server {
    listen 80;
    server_name phptest.haimait.hm;
    access_log /var/log/nginx/phptest.haimait.hm.access.log;
    error_log /var/log/nginx/phptest.haimait.hm.error.log;
    root /wwwroot/html/phptest;
    location / {
    index index.php index.html index.htm;
    }
    location ~ \.php$ {
    root /wwwroot/html/phptest;
    #fastcgi_pass这里的路径要的/etc/php/7.4/fpm/pool.d/www.conf 里listen = 里的配置的一致
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #�user root
    #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
    }
    }

    保存退出后

  4. 重启nginx

    root@7c609eaf61d3:/etc/nginx/conf.d# service nginx restart
    * Restarting nginx nginx
  5. curl测试

curl http://127.0.0.1/index.php 测试成功

5.2监听9000端口和nginx配合工作(推荐)

  1. 修改php监听方式

    vim /etc/php/7.4/fpm/pool.d/www.conf

    这里我们改为使用监听9000端口的方式配合nginx

    listen = /run/php/php7.4-fpm.sock 改为listen = 127.0.0.1

    重启php

  2. service php7.4-fpm reload

  3. 修改nginx配置文件

    vim /etc/nginx/conf.d/phptest.haimait.hm.conf

server {
listen 80;
server_name phptest.haimait.hm;
access_log /var/log/nginx/phptest.haimait.hm.access.log;
error_log /var/log/nginx/phptest.haimait.hm.error.log;
root /wwwroot/html/phptest;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
root /wwwroot/html/phptest;
#fastcgi_pass这里的路径要的/etc/php/7.4/fpm/pool.d/www.conf 里listen = 里的配置的一致
#fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #�user root
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}

保存退出后

  1. 重启nginx
root@7c609eaf61d3:/etc/nginx/conf.d# service nginx restart
* Restarting nginx nginx
  1. curl测试

    curl http://127.0.0.1/index.php 测试成功

ubuntu系统下安装php7.4的更多相关文章

  1. ubuntu系统下安装pyspider:搭建pyspider服务器新手教程

    首先感谢“巧克力味腺嘌呤”的博客和Debian 8.1 安装配置 pyspider 爬虫,本人根据他们的教程在ubuntu系统中进行了实际操作,发现有一些不同,也出现了很多错误,因此做此教程,为新手服 ...

  2. CentOS和Ubuntu系统下安装 HttpFS (助推Hue部署搭建)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  3. Ubuntu系统下安装并配置hive-2.1.0

    说在前面的话 默认情况下,Hive元数据保存在内嵌的Derby数据库中,只能允许一个会话连接,只适合简单的测试.实际生产环境中不使用,为了支持多用户会话, 则需要一个独立的元数据库,使用MySQL作为 ...

  4. ubuntu系统下安装pip3及第三方库的安装

    ubuntu系统下会自带python2.x和python3.x坏境,不需要我们去安装.并且ubuntu系统下还会自动帮助我们安装python2.x坏境下的pip安装工具, 但是没有python3.x坏 ...

  5. ubuntu系统下安装pyspider:安装命令集合。

    本篇内容的前提是你已安装好python 3.5.在ubuntu系统中安装pyspider最大的困难是要依赖组件经常出错,特别是pycurl,但把对应的依赖组件安装好,简单了.下面直接上代码,所有的依赖 ...

  6. CentOS和Ubuntu系统下安装vsftp(助推大数据部署搭建)

    不多说,直接上干货! 同时,声明,我这里安装的vsftp,仅仅只为我的大数据着想,关于网上的复杂安装,那是服务和运维那块.我不多牵扯,也不多赘述. 一.CentOS系统里安装vsftp 第一步:使用y ...

  7. 在 Ubuntu/Debian 下安装 PHP7.3 教程

    介绍 最近的 PHP 7.3.0 已经在 2018 年12月6日 发布 GA,大家已经可以开始第一时间体验新版本了,这里先放出 PHP7.3 安装的教程以便大家升级. 适用系统: Ubuntu 18. ...

  8. Python 基础之在ubuntu系统下安装双版本python

    前言:随着python升级更新,新版本较于老版本功能点也有不同地方,作为一个初学者应该了解旧版本的规则,也要继续学习新版本的知识.为了能更好去学习python,我在ubuntu安装python2和py ...

  9. ubuntu系统下安装gstreamer的ffmpeg支持

    当您在安装gstreamer到您的ubuntu系统中时,为了更好地进行流媒体开发,需要安装ffmpeg支持,但一般情况下,直接使用 sudo apt-get install gstreamer0.10 ...

  10. Ubuntu系统下安装Eclipse

    第一步:查看操作系统位数. 打开终端,输入file /sbin/init 可以看到笔者Ubuntu系统为32位,读者可以使用该命令获取自己机器上的操作系统位数. 这一步是最至关重要的一步,笔者机器处理 ...

随机推荐

  1. KingbaseES V8R6运维案例之---pg_statistic toast表故障修复

    ​ 案例说明: 数据库在日常的维护过程中,执行表结构查询语句(\d t1),如下图所示,出现"missing chunk number 0 for toast value 16259 in ...

  2. Jetty的bytebufferpool模块

    bytebufferpool模块用于配置Jetty的ByteBuffer对象的对象池. 通过对象池的方式来管理ByteBuffer对象的使用和生命周期,期望降低Jetty进程内存的使用,同时降低JVM ...

  3. JDK 14的新特性:switch表达式

    目录 简介 写在前面 连写case switch返回值 yield 总结 简介 switch的新特性可是源远流长,早在JDK 12就以预览功能被引入了,最终在JDK 14成为了正式版本的功能:JEP ...

  4. Go 语言中切片的使用和理解

    切片与数组类似,但更强大和灵活.与数组一样,切片也用于在单个变量中存储相同类型的多个值.然而,与数组不同的是,切片的长度可以根据需要增长和缩小.在 Go 中,有几种创建切片的方法: 使用[]datat ...

  5. dev DEV控件:gridControl常用属性设置

    引用:https://www.cnblogs.com/kingsliu/articles/6145679.html 1.隐藏最上面的GroupPanelgridView1.OptionsView.Sh ...

  6. 在linux上使用Qt开发动态库项目,怎么只生成一个so文件

    背景: 在linux系统上,我们使用 Qt 开发动态库项目时,会默认生成四个文件:x.so  .x.so.1 .x.so.1.0.x.so.1.0.0 四个文件,只有一个真实的so库,剩下的三个都是链 ...

  7. java集合源码详解

    一 Collection接口 1.List 1.1ArrayList 特点 1.底层实现基于动态数组,数组特点根据下表查找元素速度所以查找速度较快.继承自接口  Collection ->Lis ...

  8. 基于C语言的面向对象设计模式(持续更新)

    前言 首先这篇文章只是初步的尝试,不涉及过于高深的编程技巧:同时需要表明的是,面向对象只是一种思想,不局限于什么样的编程语言,不可否认的是基于面向对象特性而设计的语言确实要比面向过程式的语言更加容易进 ...

  9. 批处理及有状态等应用类型在 K8S 上应该如何配置?

    众所周知, Kubernetes(K8S)更适合运行无状态应用, 但是除了无状态应用. 我们还会有很多其他应用类型, 如: 有状态应用, 批处理, 监控代理(每台主机上都得跑), 更复杂的应用(如:h ...

  10. 基于istio实现多集群流量治理

    本文分享自华为云社区<基于istio实现多集群流量治理>,作者: 可以交个朋友. 一 背景 对多云.混合云等异构基础设施的服务治理是Istio重点支持的场景之一.为了提高服务的可用性,避免 ...