先介绍一下使用的环境: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. Rest架构下的增删改查

    首先还是要连接一下什么是Rest, REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP, ...

  2. Golang把所有包括底层类库,输出到stderr的内容, 重新定向到一个日志文件里面?

    不论应用是如何部署的,我们都期望能扑捉到应用的错误日志, 解决思路: 自己写代码处理异常拦截,甚至直接在main函数中写异常拦截. stderr重定向到某个文件里 使用 syscall.Dup2 第一 ...

  3. PHP 经典算法

    <?  //--------------------  // 基本数据结构算法 //--------------------  //二分查找(数组里查找某个元素)  function bin_s ...

  4. Bootstrap框架和inconfont、font-awesome使用

    iconfont的使用:https://www.cnblogs.com/clschao/articles/10387580.html Bootstrap介绍 Bootstrap是Twitter开源的基 ...

  5. laravel之引入图片上传类

    1.在官网http://www.uploadify.com/ 下载插件,flash verison 的版本是免费版 2.解压后将文件夹放置在指定的目录下 3.前端导入css,js文件,可以仿照文件夹中 ...

  6. vscode 实用的插件

    REST-Client api接口测试插件 在项目中新建以.http后缀名的文件即可. 右键使用 可以生产多种语言的请求代码块.可以说是非常舒服了. 使用代码块功能生成了node环境的http请求. ...

  7. ArcGIS10.x Engine直连提示连接超时ORA-12170 来自:http://www.iarcgis.com/?p=1004

    导语 随着Esri大力宣传直连,用户也越来越由服务连接,改为直连,当然ArcGIS Engine开发用户也不例外. 环境 Oracle数据库,ArcGIS版本不限,不过由于9版本多以服务连接,以10版 ...

  8. 使用NodeJs搭建的小型web应用

    原文英文链接:http://www.nodebeginner.org 中文翻译链接:http://www.nodebeginner.org/index-zh-cn.html 学习链接:一本全面的Nod ...

  9. centos虚拟机下安装nginx

    通过yum安装 yum install epel-release -y(企业级的镜像源) yum install nginx-y 启动.停止.重启 service nginx start servic ...

  10. 如何清除SQL 的登录名

    复制路径 找到SqlStudio.bin 文件删除即可 SQL Server 2016 版本: C:\Users\%username%\AppData\Roaming\Microsoft\SQL Se ...