Ununtu服务器安装Nginx与PHP

1. 安装Nginx:

1.1

sudo apt update
sudo apt install nginx

验证结果,使用命令:

sudo systemctl status nginx

若有结果如下则说明成功:

但注意,此时只是在服务器上配置好了nginx,执行nginx -v应当可以看到版本号。此外,如果对nginx更新了配置,如增加了PHP解释,则应当重启nginx服务器:

sudo systemctl restart nginx

1.2

但是从外界还是无法访问,所以我们还需要配置防火墙,使用UFW防火墙管理工具可以轻松完成:

安装UFW:

sudo apt-get install ufw -y

启动UFW服务:

sudo ufw enable

(或者相反的,也可以关闭/重置防火墙,下面命令不在安装流程内,不要执行)

sudo ufw disable
sudo ufw reset

!注意:一定要先开启ssh端口的开放,不然下次连接就G了!!!连不上了!!!

sudo ufw allow 22

启动服务后,需要配置防火墙,使得局域网内其他IP地址可以访问服务器的 HTTP(80)和 HTTPS(443)端口

sudo ufw allow 'Nginx Full'

验证状态:

sudo ufw status

成功则会如下所示:

测试连通性:

在本地浏览器输入服务器IP地址,默认使用http端口,即可访问nginx默认界面:

2. 安装PHP:

PHP是服务端经常使用的编程语言,命令只需一行:

sudo apt install php-fpm

一旦安装完成,FPM 服务将会自动启动。想要检查服务状态,运行(这里安装的是7.4版本,可以使用命令php -v查看,将7.4改成实际安装版本即可):

sudo systemctl status php7.4-fpm

还可以安装mysql扩展,以便使得PHP可以做数据库相关操作:

sudo apt install php-mysql

安装后也需要重启PHP-FPM服务,以确保新更新被运行:

sudo systemctl restart php7.4-fpm

3. Nginx的相关配置

3.1

创建文件:sudo vim /etc/nginx/php-fpm74.conf,写入如下内容:

location ~ .*\.php$ {
fastcgi_pass 127.0.0.1:9004;
fastcgi_param PHP_SELF $uri;
fastcgi_param SERVER_NAME $host;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
include php_cgi.conf;
}

fastcgi_pass 127.0.0.1:9004代表要将信息通过9004端口传递给php-fpm处理,2~6行都是定义的变量,7,8行是include的两个文件。

3.2

创建文件:sudo vim /etc/nginx/php_cgi.conf,写入如下内容:

fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

3.3

创建文件:sudo vim /etc/nginx/conf.d/www.conf,写入如下内容:

server {
server_name 210.45.124.82;
index index.php;
root /opt/www;
include php-fpm74.conf;
}

进入/opt目录,新建www目录,这个目录就是默认网站的页面所在的目录了:

cd /opt
sudo mkdir www

4. php-fpm的相关配置

创建文件:sudo vim /etc/php-fpm.d/www.conf,(注意这个地方写的位置需要自己注意一下,我的安装位置是/etc/php/7.4/fpm,里面有这样四个文件或目录:conf.d php-fpm.conf php.ini pool.d,php-fpm.conf即主配置文件,其中有一句这样的语句:include=/etc/php/7.4/fpm/pool.d/*.conf,意思是导入以conf结尾的文件配置,所以我的文件位置在这个地方/etc/php/7.4/fpm/pool.d/www.conf),写入如下内容:

[global]
pid = run/php-fpm.pid
error_log = log/error.log
[www]
listen = 127.0.0.1:9004
user = www-data
group = www-data
pm = static
pm.max_children = 5
rlimit_files = 20000
request_terminate_timeout = 10
pm.max_requests = 20000

user,group也需要自定义化,打开文件/etc/nginx/nginx.conf ,看第一行user www-data,需与此值相同。

5. 重启服务,更新配置:

sudo systemctl restart nginx php7.4-fpm

也可以将两个服务加入开机服务(disable取消):

sudo systemctl enable nginx php7.4-fpm

6. 测试文件

回到/opt/www目录,创建文件:sudo vim info.php

<?php
phpinfo();
?>

然后在浏览器输入:ServerIP/info.php即可看到

7.可能错误排查

查看错误日志

// nginx
tail /var/log/nginx/error.log
// php
systemctl status php7.4-fpm.service

错误1:403,无文件或者权限不足

无文件问题根据3.3节设置的index去看对应的文件夹是否有文件

权限不足问题,则需要文件所有者账户将index的对应文件夹提权:sudo chmod R 777 /opt/www

错误2:503 gateway error,一般是php-fpm配置出错,需注意配置文件不要写错位置(要自己找安装位置,一般在/etc或者/usr/local/etc中并且要从主配置文件顺藤摸瓜,找到include的文件位置,并在相应位置创建),另外配置listen端口一定需与nginx的pass端口相同。

Ununtu服务器安装Nginx与PHP的更多相关文章

  1. 阿里云Linux服务器安装 nginx+mysql+php

    阿里云Linux服务器安装 nginx+mysql+php步骤1.登录服务器2.下载安装包3.将安装包上传到服务器的/home目录下 注:使用rz sz命令进行本地和服务器间的上传.下载,安装命令yu ...

  2. centos7 服务器安装nginx,mysql,php

    一.概述 项目的需要,今天在虚拟机上基于Centos安装配置了服务器运行环境,web服务用 nginx,数据库存储在mysql,动态脚本语言是php. 二.步骤 首页保证Centos7已经安装完毕,正 ...

  3. linux 服务器安装 nginx

    每次安装 nginx 都在网上找教程,这次特意记录一下安装过程. 第一步:安装依赖 一键安装依赖 yum -y install gcc zlib zlib-devel pcre-devel opens ...

  4. Linux服务器安装Nginx

    Nginx 安装 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.首先 ...

  5. linux服务器安装nginx及使用

    Nginx在个人的使用之后,感觉非常的方便,所以在这里给出自己安装配置方案.它是一款高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器.负载均衡是个不错的选择. ...

  6. 远程服务器安装nginx

    肯定有前端的小伙伴在腾讯云或者阿里云上购买了服务器,却不知道怎么访问使用它,那我们就一起来安装学习下? xshell 登录服务器,输入公网ip和密码登录 ls 查看目录,which nginx ,查看 ...

  7. 阿里云服务器安装nginx(ubantu16.04)

    下载安装包 sudo wget http://nginx.org/download/nginx-1.15.5.tar.gz 解压缩 tar zxvf nginx-1.15.5.tar.gz 打开目录 ...

  8. centos7云服务器安装nginx记录

    nginx作为一个web和反向服务器,应用广泛,尤其适合学习c/c++的人进行使用学习,今天就对这个我听了很多的nginx进行了一次安装配置,主要是针对菜鸟教程中的安装引导进行的个人试验.主要的关注点 ...

  9. CentOS Linux服务器安装Nginx

    1.安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 ...

  10. 构建企业级Nginx+Keepalived集群架构

    随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx. Nginx高性能.稳定性成为IT人士青睐的http和反向代理服务器,今天我们来实战构建Nginx+Keepalived高可用架 ...

随机推荐

  1. Nexus系列---【使用docker搭建nexus3仓库】

    1.Docker搭建nexus3私服 如果机器配置比较低,建议指定初始内存大小,默认2G docker run -d \ --restart=always \ --name=nexus3 \ -p 6 ...

  2. OSIDP-线程-04

    进程和线程 进程具有两个相互独立的特点: 1.资源所有权:进程包括存放进程映像的虚拟地址空间,具有对资源的控制权. 2.调度/执行:进程具有运行状态和优先级,是可被 OS 调度和分派的实体. 通常将分 ...

  3. IO在指定目录建文件

    path= "d:\\Project\\log\\log.txt"; File file = new File(path); //创建文件目录 if(!file.getParent ...

  4. 拉勾java核心类库--String类

    String类 @author :magiclx 摘要:String类是用final进行修饰的,关于字符串的一个类,其中包含很多个方法 关键词:String,常量池,正则表达式,数组转化 正文: 参考 ...

  5. 磊磊零基础打卡算法:day20 c++dfs树的深度优先遍历

    5.24 dfs深度优先搜索: 思想比较简单,就是一条路走到底,走到最深点处再回退一步,再看有没有路可以走,没有的话再回退一步,重复此步骤: 也是人们常讲的暴搜. 主要的用法: 通常需要一个状态数组来 ...

  6. Spring bean注入问题:NoUniqueBeanDefinitionException解决方案归纳

    引言 spring实现的bean自动注入在项目开发中是一个经常使用到的功能,但自动装配两个或多个bean时,会抛出NoUniqueBeanDefinitionException:No qualifyi ...

  7. C#重点语法——特性

    特性的基本理解 ************************************************************************************* 一.含义 特 ...

  8. Winform 应用DotnetBar

    Winform 使用NotNetBar namespace WindowsFormExample { public partial class FrmMain : Office2007Form { p ...

  9. DeepMind公司最新ai技术参加Codeforces击败大部分选手

    著名的编程竞赛网站Codeforces发布了一篇名为<AlphaCode(DeepMind) Solves Programming Problems on CodeForce>的文章,将阿 ...

  10. 近期调研和使用 zeromq 与 cppzmq 的一些问题

    关于message 消息分片 消息分片的发送 消息分片允许将多个消息封装成一条消息.在发送自定义协议数据时,我们经常需要在消息前"填充"一个包头.如下代码,在发送的时候加上 zmq ...