首页 > 系统相关 >Ununtu服务器安装Nginx与PHP

Ununtu服务器安装Nginx与PHP

时间:2023-04-14 22:35:49浏览次数:40  
标签:php nginx fpm sudo Nginx Ununtu conf PHP fastcgi

Ununtu服务器安装Nginx与PHP

1. 安装Nginx:

1.1

sudo apt update
sudo apt install nginx

验证结果,使用命令:

sudo systemctl status nginx

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

image

但注意,此时只是在服务器上配置好了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

成功则会如下所示:
image

测试连通性:

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

image

2. 安装PHP:

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

sudo apt install php-fpm

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

sudo systemctl status php7.4-fpm

image

还可以安装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,需与此值相同。

image

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即可看到
image

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端口相同。

标签:php,nginx,fpm,sudo,Nginx,Ununtu,conf,PHP,fastcgi
From: https://www.cnblogs.com/fireinstone/p/17320143.html

相关文章

  • Linux离线安装nginx详细教程
    本文安装环境centos7.9一、什么是离线安装?使用离线安装包进行软件安装的方式就叫离线安装。离线安装包又叫做完整安装包,包含所有的安装文件。与其相对的是在线安装,即在条件允许且网络良好的条件下采用网络安装的方式。在线安装方式的缺点是在不太好的网络状况下容易出现长时......
  • nginx、PHP安装配置
    1、安装nginxsudoapt-getinstallnginx2、配置nginxsudovim/etc/nginx/sites-available/defaultserver{ listen80; #443是https的端口,如果你用的是http就用‘80’代替‘443ssl’ #server_namewebofhu.......
  • PHPnow
    PHPnow中文应用框架PHPnowframework提供安全快速的PHP开发解决方案,PHPnowframework采用国际公认的mvc思想,采用OOP方式开发,易扩展、稳定、超强大负载能力,企业级安全部署,重点发展现代安全快速的互联网应用程序开发,PHPnow改名为ServKit。PHPnow是Win32下绿色免费的Apache+PHP......
  • nginx集群和nginx主备不是同一个概念
    Nginx 集群搭建 https://huaweicloud.csdn.net/63560e7dd3efff3090b591dc.html?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-14-117463438-blog-127292749.235^v28^pc_relevant_default&dept......
  • docker nginx
    1,#创建挂载目录mkdir-p/home/nginx/confmkdir-p/home/nginx/logmkdir-p/home/nginx/html 2,#生成容器dockerrun--namenginx-p9001:80-dnginx#将容器nginx.conf文件复制到宿主机dockercpnginx:/etc/nginx/nginx.conf/home/nginx/conf/nginx.conf#将容器c......
  • 学习K8S 使用Operator部署管理Nginx
    创建一个KubernetesOperator部署nginx的大致过程如下:确定您要使用的OperatorSDK版本并安装它。使用OperatorSDK命令行创建新的Operator项目。定义CustomResourceDefinition(CRD),即将在Kubernetes中定义的自定义资源规范,以及该资源的状态和操作。例如,定义一个名为......
  • 自己项目用到的Nginx环境部署手册
    nginxsticky基于cookie的负载均衡googler开发的google-perftools优化Nginx管理,性能将会有一定程度的提升[/size]([/size][size=10.5pt;font-family:'Calibri',sans-serif;"lang="EN-US]64位[/size]操作系统请先安装libunwind库,32位操作系统不要安装。libunwind库为基于64......
  • nginx使用
    我使用的是windows环境1、下载nginx包文件https://nginx.org/en/download.html2、解压3、运行nginx.exe4、输入localhost:80启动成功 自己的项目在nginx中运行1、本地dist文件内容粘贴到nginx文件下的html目录中2、更改配置添加重定向,避免路由跳转404配置代理 ......
  • Linux PHP多版本编译安装及快捷切换版本
    编译安装              安装多个版本的PHP其实毫无压力,主要是编译安装的时候--prefix和--with-config-file-path设置为不同的目录即可。       分享我编译安装的命令:./configure--prefix=/usr/local/php/--enable-debug--enable-gd--with-freetype--......
  • PHP cli模式执行脚本 -- 通过getopt()接收参数
    学习记录留作参考祝君好运用于执行Linux定时任务的PHP文件,通过接收不同参数实现不同功能。使用cli模式执行一些操作PHP用于定时任务的代码使用getopt()获取命令行参数short_options注意:使用:使用cli模式执行一些操作PHP官方文档:执行PHP文件#可以使用下面两个......