Linux安装nginx服务
本文最后更新于100 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

相关服务安装指南

从零开始搭建Dcat Admin可参考以下顺序安装:

一、Linux 安装配置卸载 mysql 服务 – 谢幕后 (xmhweb.cn)

二、Linux 安装 php 服务和 composer – 谢幕后 (xmhweb.cn)

三、Linux 安装 nginx 服务 – 谢幕后 (xmhweb.cn)

四、Laravel 框架搭建 – 谢幕后 (xmhweb.cn)

五、Dcat Admin 后台系统搭建 – 谢幕后 (xmhweb.cn)

前言

如果你计划长期运行Laravel服务并使其可从外部访问,建议使用更稳定的Web服务器软件(如Nginx或Apache)作为反向代理,而不是直接使用内置的PHP开发服务器。这样可以提供更好的性能和更强的安全性。你需要配置Web服务器以正确处理传入的HTTP请求,并将它们转发到Laravel应用程序。

安装

yum源安装

apt-get install nginx

验证  查看安装版本

nginx -v

源代码编译安装

安装gcc,gcc是Linux系统下的编译器

yum -y install gcc
#验证
gcc -v

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式

yum install -y pcre pcre-devel

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip

yum install -y zlib zlib-devel

openssl是web安全通信的基石

yum install -y openssl openssl-devel

下载nginx安装包

wget http://nginx.org/download/nginx-1.9.9.tar.gz

解压

tar -zxvf nginx-1.9.9.tar.gz

进入文件内部,运行以下三条命令

./configure
make
make install

切换到/usr/local/nginx/conf安装目录

cd /usr/local/nginx/conf
#修改端口,和web程序位置
vim nginx.conf     

切换目录到/usr/local/nginx/sbin下面

cd /usr/local/nginx/sbin
#服务器重启之后不会自动启动,需要手动运行
./nginx

查看nginx服务是否启动成功:ps -ef | grep nginx

配置

反向代理

以下方法适用于yum源安装(根据你的安装方式,路径可能有所不同)

编辑nginx配置文件

vim /etc/nginx/sites-enabled/default

添加

server {
    listen 8080;    #配置指示Nginx监听所有可用的IPv4接口上的80端口
    listen [::]:8080;    #配置指示Nginx监听所有可用的IPv6接口上的80端口
    server_name example.com;     # 使用你的域名替换example.com,比如10.10.166.213
    root /example.com/public;    # Laravel项目的public目录路径

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 配置日志文件路径
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    # 传递PHP脚本到PHP-FPM
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;     # 确保这里的地址和端口与你的PHP-FPM配置相匹配
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

# 防止访问 .htaccess 和 .env 等隐藏文件
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

server_name:你的域名。
root:指向Laravel项目的public目录的路径,这是Laravel应用的文档根目录。
location /:这个位置块确保所有非静态文件请求都会被重定向到index.php,这是Laravel路由的入口点。
location ~ \.php$:这个位置块负责处理PHP文件的请求,通过fastcgi_pass指令将请求传递给PHP-FPM处理。注意,你需要根据你的PHP-FPM配置来调整fastcgi_pass指令中的IP地址和端口。
location ~ /\.ht:阻止直接访问.htaccess.env等以点(.)开头的文件,提高安全性。

fastcgi_pass配置说明

要确定你应该在 fastcgi_pass 中使用哪个地址和端口,你需要查看 PHP-FPM 的配置文件/etc/php/8.1/fpm/pool.d/www.conf ,打开这个文件,你需要寻找 listen 指令,它指定了 PHP-FPM 监听的方式,可以是 TCP/IP 地址和端口,也可以是 Unix socket。如下图是Unix socket。

配置 Nginx 的 fastcgi_pass

fastcgi_pass unix:/run/php/php8.1-fpm.sock;

重启nginx服务

service nginx restart

问题排查

配置好nginx后还是访问不了服务,可以检查服务状态。确认在目标服务器上的相应端口(8000)上有服务运行。你可以使用如netstat -tuln | grep 8000或者ss -tuln | grep 8000的命令来检查是否有服务在监听该端口。

如上图所示服务正在监听8000端口,但它只绑定到了本地地址 127.0.0.1(也就是localhost)。这意味着该服务只能接受来自服务器本身的连接请求,而无法从外部网络(例如你尝试使用 curl 的机器)访问该服务。

要让Laravel的开发服务器监听所有网络接口,你可以使用以下命令:

php artisan serve --host=0.0.0.0 --port=8000
小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇