相关服务安装指南
从零开始搭建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
评论