Linux下安装PHP并在nginx服务器中进行配置的详细方法
先介绍一下使用的环境: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服务器中进行配置的详细方法的更多相关文章
- linux下安装EJBCA 搭建私有CA服务器
linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1. linux mint18.3 62位: ...
- Linux下安装tar.gz类型的jdk,并配置环境变量
近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...
- linux下安装haproxy作为端口转发服务器,以及安装keepalived作为haproxy高可用方案
一.安装haproxy作为端口转发服务器(主服务器:172.28.5.4,备服务器:172.28.5.8,浮点IP为:172.28.5.6) 1.安装依赖包 yum -y install wget g ...
- Linux下安装python,ftp,Ubuntu和centos配置静态ip以及下载地址
一个服务器最多创建65535个端口Ubuntu apt-get aliyun转换https://www.cnblogs.com/hcl1991/p/7894958.htmlOpenSSLhttps:/ ...
- windows及linux下安装django simple captcha 遇到的各种问题及解决的方法
转载自http://www.cnblogs.com/descusr/p/3225874.html 全部程序写完之后,验证码图片不显示,点击图片地址会提演示样例如以下错误,而且在linux下的纠正办法 ...
- linux下安装VMware出错:Gtk-Message: Failed to load module "canberra-gtk-module"解决方法
最近又有兴趣在linux下搭建个虚拟机,于是去找了个VMWorkstation,安装的过程中报了两个错误 Gtk-Message: Failed to load module "pk-gtk ...
- linux下安装shellinabox实现web登录服务器
GitHub地址(含有文件下载和详细安装流程):https://github.com/shellinabox/shellinabox 这里我们使用的是redhat安装方法如下: 1.配置安装依赖环境 ...
- linux 下安装node 并使用nginx做域名绑定
#1 ,home目录下 下载nodejs安装包,解压 并修改文件夹名称 wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar. ...
- macos 下安装virtualenv,virtualenvwrapper,然后在pycharm中正常配置方法日志
1.安装virtualenv或virtualenvwrapper pip install virtualenv pip install virtualenvwraper 注意pip的版本号(查看 pi ...
随机推荐
- C#解析PDF
C#解析PDF的方式有很多,比较好用的有ITestSharp和PdfBox. PDF内容页如果是图片类型,例如扫描件,则需要进行OCR(光学字符识别). 文本内容的PDF文档,解析的过程中,我目前仅发 ...
- Redis概述与安装
一.什么是Redis 由c语言编写的,以键值对的形式存储的数据库. 缓存技术(驻留在内存中) key:value 支持5种数据类型: String Hash(哈希表) list ...
- drupal7 用到的一些钩子简介
1.hook_user_delete($account) 可用于自定义模块中,当用户被删除时,可以自定义一些自己需要的处理动作 2.hook_mail_alter(&$message) 可用于 ...
- laravel开发之-php artisan命令
php artisan :所有的命令列表 php artisan make:controller 文件夹名称/控制器名称 :创建控制器的命令以及控制器放置的文件夹 php artisan make:m ...
- linq返回的IEnumerable<T>泛型不能被列举计算大于1次
在分页获取Take后面加ToList()方法就能得到正确结果,为什么?
- MySQL数据库(9)----使用连接实现多表检索
有许多演示如何使用MySQL所支持的连接操作的示例,都用到了下列两个表 t1 和 t2: mysql> SELECT * FROM t1; +----+------+ | i1 | c1 | + ...
- Benefits of encapsulation
①:通过方法来控制成员变量的操作,提高了代码的安全性. ②:把代码用方法进行封装,提高了代码的复用性.
- 前端单元测试环境搭建 Karma Jasmine
Karma 官网On the AngularJS team, we rely on testing and we always seek better tools to make our life e ...
- C#实现字符串相似度算法
字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是: 把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这 ...
- Git分布式工作流程
Git官网给出了三种分布式工作流程: 集中式工作流程 集成管理者工作流 司令官与副官工作流 这里以私有gitserver服务器上的git-test项目为例,简单说明集中式工作流程. 基于分支的开发策略 ...