让Linux(Debian/Ubuntu、RHEL/CentOS)的nginx(Web服务器)支持PHP

昨天给大家介绍了Nginx(Web服务器)的安装教程,反应很好,有的评论也给疯子加了见识,对此了解的更多。希望大家继续和疯子互动,互相学习,互相进步。如果有某些不对的地方,欢迎指出,会立马更改的。😏

现在很多的Web服务器,都离不开php的影子,今天就给大家带来如何让nginx支持php的教程。

PHP的起源及介绍

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。

PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。

PHP的应用范围相当广泛,尤其是在网页程序的开发上。一般来说PHP大多运行在网页服务器上,透过运行PHP代码来产生用户浏览的网页。PHP可以在多数的服务器和操作系统上运行,而且使用PHP完全是免费的。根据2013年4月的统计数据,PHP已经被安装在超过2亿4400万个网站和210万台服务器上。

具体大家可以看下维基百科:https://zh.wikipedia.org/wiki/PHP

开始安装、Let's Go

PHP官方并没有想nginx建立对应的apt或者yum源,只有源码,但是呢,在yum软件包管理下的有Remi这个源,里面包含了php最新的稳定版,而在apt软件包管理下也有一个php的软件源,虽然系统自带,但是版本比较低

RHEL/CentOS:(下面以CentOS7.6为例)

注释:以下命令全部以root用户执行,另外大家复制代码的时候前面的#不要复制,#代表的是root权限
我们先来安装epel源,这个是Remi源的依赖

# yum install epel-release.noarch -y
把epel源更改源阿里的,下载速度会快点
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

安装remi源,并清理更新yum缓存

# yum install https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm -y
把remi源改为阿里的,下载速度会提升不少
# sed -i "s/#baseurl=http:\/\/rpms.remirepo.net/baseurl=http:\/\/mirrors.aliyun.com\/remi/g" /etc/yum.repos.d/remi-safe.repo && sed -i "s/mirrorlist/#mirrorlist/g" /etc/yum.repos.d/remi-safe.repo
# yum clean all && yum makecache

现在我们开始安装php啦,从PHP官网得知最新稳定版本的是7.3.7( 2019年7月4日更新)

安装php-fpm
# yum install php73-php-fpm.x86_64 -y
把php-fpm运行用户改为nginx
# sed -i "s/apache/nginx/g" /etc/opt/remi/php73/php-fpm.d/www.conf
设置开机启动
# systemctl enable php73-php-fpm.service

然后修改nginx配置文件,基于上一个教程nginx1.16版本的默认配置修改

让nginx默认优先加载index.php
# sed -i "10 s/index\ \ index.html/index\ \ index.php\ index.html/g" /etc/nginx/conf.d/default.conf
让nginx支持php
# sed -i "30,36 s/#/\ /g" /etc/nginx/conf.d/default.conf
# sed -i "34 s/\/scripts/\/usr\/share\/nginx\/html\//g" /etc/nginx/conf.d/default.conf

测试php是否成功

在网站根目录新建一个index.php
# echo -e "<?php\n\tphpinfo();\n?>" > /usr/share/nginx/html/index.php
重启nginx和启动php-fpm
# systemctl restart nginx && systemctl start php73-php-fpm.service

然后我们打开浏览器,输入Web服务器的IP地址,如果得到下面的页面就代表成功啦~

Debian/Ubuntu:(下面以Debian10为例)

注释:以下命令全部以root用户执行,另外大家复制代码的时候前面的#不要复制,#代表的是root权限

我们来给增加php的源, 由Ondřej Surý大神维护的

Debian 10
# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# curl -fsSL https://packages.sury.org/php/apt.gpg | apt-key add -
Ubuntu 18.04
# apt install -y software-properties-common && add-apt-repository ppa:ondrej/php

更新apt源并安装php最新稳定版本7.3.6(目前Ondrej源没有跟新到7.3.7,应该很快就会适配了)

# apt update && apt install php7.3-fpm -y
把php-fpm运行用户改为nginx
# sed -i "s/www-data/nginx/g" /etc/php/7.3/fpm/pool.d/www.conf
# sed -i "36 s/\/run\/php\/php7.3-fpm.sock/127.0.0.1:9000/g" /etc/php/7.3/fpm/pool.d/www.conf
设置开机启动
# systemctl enable php7.3-fpm.service

然后修改nginx配置文件,基于上一个教程nginx1.16版本的默认配置修改

让nginx默认优先加载index.php
# sed -i "10 s/index\ \ index.html/index\ \ index.php\ index.html/g" /etc/nginx/conf.d/default.conf
让nginx支持php
# sed -i "30,36 s/#/\ /g" /etc/nginx/conf.d/default.conf
# sed -i "34 s/\/scripts/\/usr\/share\/nginx\/html\//g" /etc/nginx/conf.d/default.conf

测试php是否成功

在网站根目录新建一个index.php
# echo -e "<?php\n\tphpinfo();\n?>" > /usr/share/nginx/html/index.php
重启nginx和php-fpm
# systemctl restart nginx && systemctl restart php7.3-fpm.service

然后我们打开浏览器,输入Web服务器的IP地址,如果得到下面的页面就代表成功啦~

总结

大家尽量不要复制,看看修改的那些文件的配置,打开看一看,疯子以前没有在debian上面安装过php,也是从百度,谷歌总结而来的,最后在虚拟机上面实验成功才给大家一步一步写的教程,大家的满意就是对疯子最大的赞赏。下期将会给大家带来(MariaDB)数据库的安装教程。感谢大家的支持,谢谢~

本文来源 蓝点网,由 疯子 整理编辑,其版权均为 蓝点网 所有,文章内容系作者个人观点,不代表 蓝点网 对观点赞同或支持。如需转载,请注明文章来源。
4
leishimingmacyoyo山外的鸭子哥zozovo
哇哦恭喜您已成功屏蔽了蓝点网的小广告
   
百度网盘不限速下载器PanDownload v2.1.0版发布 满速下载网盘文件你家的宽带可能已经支持IPv6协议要不要设置试试看如何禁止系统自动更新到Windows 10 Version 1809版[视频]生命在于折腾系列 虚拟机里玩谷歌原生版安卓系统

评论:

11 条评论,访客:9 条,站长:2 条
  1. StarryVoid
    StarryVoid发布于: 
    Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 64位版 Windows 10 64位版

    提醒,remi源使用后请关闭, yum update 易出现问题

    • 疯子
      疯子发布于: 
      Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 64位版 Windows 10 64位版

      没 你换下阿里云的remi源就可以了 直接安装remi源镜像是国外了,所以有时候会报错,下载不下来

  2. macyoyo
    macyoyo发布于: 
    Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 64位版 Windows 10 64位版

    Linux 会区分大小写,这个大家的注意

    • 疯子
      疯子发布于: 
      Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 64位版 Windows 10 64位版

      嗯嗯 是的 这点和win不一样

  3. margin
    margin发布于: 
    Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Mac OS X  10.14.5 Mac OS X 10.14.5

    可以了解下宝塔面板,面板里集成了n多东西,相对雨管理来说更方便。

    • 啦啦噜啦
      啦啦噜啦发布于: 
      Safari 12.1.1 Safari 12.1.1 iPhone iOS 12.3.2 iPhone iOS 12.3.2

      宝塔的可视化管理的确对新手很友好,但就怕宝塔有安全漏洞

  4. 188****0852
    188****0852发布于: 
    QQbrowser 10.4.3620.400 QQbrowser 10.4.3620.400 Windows 7 64位版 Windows 7 64位版

    请问一下,我用centos7的httpd显示我的网页正常,用ubuntu的nginx,apache2都显示不正常,就是页面布局乱了,有时候还会只显示文字,求解! 正常的显示是renjianan.tk

    • 山外的鸭子哥
      山外的鸭子哥发布于: 
      Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 64位版 Windows 10 64位版

      按F12 打开浏览器开发工具 检查是不是某些CSS或js没有加载成功

      • 188****0852
        188****0852发布于: 
        QQbrowser 10.4.3620.400 QQbrowser 10.4.3620.400 Windows 7 64位版 Windows 7 64位版

        哈哈 解决了 是我压缩解压缩的问题 导致访问不到css之类的 被自己蠢到了

        • 山外的鸭子哥
          山外的鸭子哥发布于: 
          Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 64位版 Windows 10 64位版

          对嘛 一般这种都是资源加载问题

  5. 啦啦噜啦
    啦啦噜啦发布于: 
    Safari 12.1.1 Safari 12.1.1 iPhone iOS 12.3.2 iPhone iOS 12.3.2

    下一期MariaDB大赞😘

发表评论