文档章节

Linux下安装PHP并在nginx服务器中进行配置的详细方法

o
 osc_x4h57ch8
发布于 2018/04/23 23:51
字数 1200
阅读 12
收藏 0

今天想自己搭一个blog网站,由于之前一直使用Java开发服务器,并且使用的是nginx,所以没有搭建PHP的运行环境。于是决定写下这篇博文与大家一起分享一下。

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

不同的系统版本可能配置有些稍微不同,请大家配置的时候注意。

Linux系统版本可以通过命令:lsb_release -a 查看,这里小哥要说一声的是,该命令支持所有Linux系统,不论你是用的是红帽系还是Debian系,都可以使用。

 

现在开始步入正题了!

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即可!
 
不知不觉时间又到了11点半了,总是给人一种措不及防的感觉。博客就先不再搭建了,明天再继续。小伙伴们如果有任何疑问可以随时与我交流。
转载请注明博客地址与作者,支持原创,纯手写不容易。
安利一个技术交流群,363016536。
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

github的正确搜索方式

wc_飞豆
1分钟前
0
0
交叉编译-如何编译Android平台的可执行程序

首先来看看Linux平台下如何使用gcc编译出当下平台的可执行程序。 我们先来准备一个main.c文件 #include<stdio.h>int main(){ printf("Hello Gcc!"); return 0;} 上面是...

shzwork
5分钟前
0
0
Java 获取资源文件路径

1 问题描述 通过源码运行时,一般使用如下方式读取资源文件: String str = "1.jpg"; 资源文件与源码文件放在同一目录下,或者拥有同一父级目录: String str = "a/b/1.jpg"; 这样直接编译...

氷泠
37分钟前
6
0
git 为项目设置用户名/邮箱/密码

1.找到项目所在目录下的 .git,进入.git文件夹,然后执行如下命令分别设置用户名和邮箱 git config user.name "Affandi" git config user.email "123333333@qq.com" 然后执行命令查看con......

有时很滑稽
今天
0
0
如何从int转换为String? - How do I convert from int to String?

问题: I'm working on a project where all conversions from int to String are done like this: 我正在一个项目中,所有从int到String转换都是这样完成的: int i = 5;String strI = "" ......

javail
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部