先介绍一下使用的环境:centos 7.4,  PHP 7.0 ,  nginx 1.12

Linux系统版本可以通过命令:lsb_release -a 查看.

现在开始步入正题了!

1.  首先查看一下nginx是否已经安装成功。

Linux命令:find /|grep nginx.conf  如果安装完成,会显示出你的nginx配置文件所在的目录,我这里的目录是在  /etc/nginx目录下。

不会安装的小伙伴请自行百度,有时间的时候我也会写篇博客专门介绍nginx的安装及其配置等问题,在这里就不加罗列了。

2. 安装PHP

我这里使用快捷的安装方式,采用yum直接安装。

分别执行命令:

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel

# systemctl restart httpd

小伙伴们也可以使用编译安装的方法进行安装。

这时候可以在nginx的html目录中新建一个php文件,检测是否可以使用。这里我新建一个名为:index.php的文件,内容如下:

<?php

phpinfo();

?>

输入命令重启nginx     nginx -s reload

这时候就可以通过浏览器输入你的PHP测试文件进行测试了,我这里输入的是:location/index.php

这时候发现问题了,浏览器并没有正常加载PHP测试文件,而是直接将文件下载到本地了。这是因为nginx没有办法解析php后缀的文件,于是直接将它发送给你了。

清楚问题了,所以就需要配置一下nginx服务器。

打开你的nginx服务器的配置文件:nginx.conf。它的路径可以通过  find /|grep nginx.conf  查看。

在http{ }中,

找的location / {

  root html;
             index  index.html index.htm;
         }  在index后面加一句话  index.php

更改后的内容为:

location / {

  root html;
  index index.php index.html index.htm;
  } 

然后再在location / { }后面添加一下内容:

  # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
         # Fastcgi服务器和程序(PHP,Python)沟通的协议.
         location ~ \.php$ {
               # 设置监听端口
               fastcgi_pass   127.0.0.1:9000;
               # 设置nginx的默认首页文件(上面已经设置过了,可以删除)
               fastcgi_index  index.php;
               # 设置脚本文件请求的路径
               fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
               # 引入fastcgi的配置文件
               include        fastcgi_params;
         }

配置完成后保存,重启nginx,nginx -s reload

然后这是再在浏览器中输入你的测试PHP文件路径(web访问路径),就会发现大功告成!PHP文件已经可以正常运行了。

如果你的服务器还是无法正常加载PHP的话,提示网页错误或者直接下载,那么就检查一下你的Linux是否打开9000端口或者是被占用了。

查看端口:netstat -antp

当现实没有9000端口的时候,说明现在9000端口没有被占用,利用  php-cgi -b 127.0.0.1:9000 &   开启PHP 9000端口,其中&是后台运行,别忘了加上!

有9000端口出现的时候,需要查看是哪个程序占用了,确认占用程序可以停止后杀死进程,kill PID

例如这里是:kill 5611

然后再执行  php-cgi -b 127.0.0.1:9000 &  开启PHP 9000端口即可。

这里补充一点,使用php-cgi有可能会在一段时间之后网站不能进行访问,所以建议使用php-fpm启动PHP.

这里再补充一点,也许有的小伙伴会在重启nginx服务器的时候遇到这样的错误:

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

解决方法:

[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

这是因为,nginx.pid丢失了,所以使用nginx -c的参数指定nginx.conf文件的位置,再重新启动nginx即可!

Linux下安装PHP并在nginx服务器中进行配置的详细方法的更多相关文章

  1. linux下安装EJBCA 搭建私有CA服务器

    linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1.  linux mint18.3 62位: ...

  2. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

  3. linux下安装haproxy作为端口转发服务器,以及安装keepalived作为haproxy高可用方案

    一.安装haproxy作为端口转发服务器(主服务器:172.28.5.4,备服务器:172.28.5.8,浮点IP为:172.28.5.6) 1.安装依赖包 yum -y install wget g ...

  4. Linux下安装python,ftp,Ubuntu和centos配置静态ip以及下载地址

    一个服务器最多创建65535个端口Ubuntu apt-get aliyun转换https://www.cnblogs.com/hcl1991/p/7894958.htmlOpenSSLhttps:/ ...

  5. windows及linux下安装django simple captcha 遇到的各种问题及解决的方法

    转载自http://www.cnblogs.com/descusr/p/3225874.html 全部程序写完之后,验证码图片不显示,点击图片地址会提演示样例如以下错误,而且在linux下的纠正办法 ...

  6. linux下安装VMware出错:Gtk-Message: Failed to load module "canberra-gtk-module"解决方法

    最近又有兴趣在linux下搭建个虚拟机,于是去找了个VMWorkstation,安装的过程中报了两个错误 Gtk-Message: Failed to load module "pk-gtk ...

  7. linux下安装shellinabox实现web登录服务器

    GitHub地址(含有文件下载和详细安装流程):https://github.com/shellinabox/shellinabox 这里我们使用的是redhat安装方法如下: 1.配置安装依赖环境 ...

  8. linux 下安装node 并使用nginx做域名绑定

    #1 ,home目录下 下载nodejs安装包,解压 并修改文件夹名称 wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar. ...

  9. macos 下安装virtualenv,virtualenvwrapper,然后在pycharm中正常配置方法日志

    1.安装virtualenv或virtualenvwrapper pip install virtualenv pip install virtualenvwraper 注意pip的版本号(查看 pi ...

随机推荐

  1. C#解析PDF

    C#解析PDF的方式有很多,比较好用的有ITestSharp和PdfBox. PDF内容页如果是图片类型,例如扫描件,则需要进行OCR(光学字符识别). 文本内容的PDF文档,解析的过程中,我目前仅发 ...

  2. Redis概述与安装

    一.什么是Redis ​ 由c语言编写的,以键值对的形式存储的数据库. 缓存技术(驻留在内存中) ​ key:value ​ 支持5种数据类型: ​ String ​ Hash(哈希表) ​ list ...

  3. drupal7 用到的一些钩子简介

    1.hook_user_delete($account) 可用于自定义模块中,当用户被删除时,可以自定义一些自己需要的处理动作 2.hook_mail_alter(&$message) 可用于 ...

  4. laravel开发之-php artisan命令

    php artisan :所有的命令列表 php artisan make:controller 文件夹名称/控制器名称 :创建控制器的命令以及控制器放置的文件夹 php artisan make:m ...

  5. linq返回的IEnumerable<T>泛型不能被列举计算大于1次

    在分页获取Take后面加ToList()方法就能得到正确结果,为什么?

  6. MySQL数据库(9)----使用连接实现多表检索

    有许多演示如何使用MySQL所支持的连接操作的示例,都用到了下列两个表 t1 和 t2: mysql> SELECT * FROM t1; +----+------+ | i1 | c1 | + ...

  7. Benefits of encapsulation

    ①:通过方法来控制成员变量的操作,提高了代码的安全性. ②:把代码用方法进行封装,提高了代码的复用性.

  8. 前端单元测试环境搭建 Karma Jasmine

    Karma 官网On the AngularJS team, we rely on testing and we always seek better tools to make our life e ...

  9. C#实现字符串相似度算法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是: 把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这 ...

  10. Git分布式工作流程

    Git官网给出了三种分布式工作流程: 集中式工作流程 集成管理者工作流 司令官与副官工作流 这里以私有gitserver服务器上的git-test项目为例,简单说明集中式工作流程. 基于分支的开发策略 ...