/etc/nginx/sites-avialable.d/bookstack.conf:示例来自Github
server {
listen 80;
listen [::]:80;
server_name 127.0.0.1;
root /var/www/bookstack/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
/var/www/bookstack/.env中的代码:
APP_URL=http://127.0.0.1
# Database details
DB_HOST=localhost
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=bookstack
# Mail system to use
# Can be 'smtp' or 'sendmail'
MAIL_DRIVER=smtp
# Mail sender details
MAIL_FROM_NAME="BookStack"
MAIL_FROM=bookstack@example.com
# SMTP mail options
# These settings can be checked using the "Send a Test Email"
# feature found in the "Settings > Maintenance" area of the system.
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
/var/log/nginx/error.log中的代码:
2023/04/27 02:59:57 [crit] 20019#20019: *1 connect() to unix:/run/php/php7.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: 127.0.0.1, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.2-fpm.sock:", host: "127.0.0.1"
但是在/run/php/中没有这个文件。我没有文件夹php在/run太。位如果我删除
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
从/etc/nginx/sites-avialable.d/bookstack.conf,我有同样的错误,但一些txt文件下载后刷新页面.
我为书库重新创建了数据库,为她重新创建了用户和权限。在网上查了很多解决方案,但没有一个适合我的情况。我期待至少正确的方向,在那里我可以找到更远的路。
1条答案
按热度按时间wr98u20j1#
Ronin,欢迎来到StackOverflow,也许是工程学的世界!让我试着解释一下你正在尝试做什么的核心概念,这样你就可以在下次自己正确配置它。
首先,我从来没有听说过“AltServer 10”,这使得你不太容易遵循如何使用NGINX和PHP-FPM设置应用程序堆栈的一般教程。但我为你做了一些研究。
PHP FPM
第一,确保您安装了PHP-FPM。这是软件包的定义:https://packages.altlinux.org/en/p10/srpms/php8.1-fpm-fcgi/
我不知道什么oackage管理器AltServer正在使用...所以你应该看看这个。
安装FPM后,您必须配置FPMs PHP工作池。
在Ubuntu、RHEL、CentOS上,配置文件将在
/etc/php/7.3/fpm/pool.d
中,并命名为www.conf
。如果您使用的是其他软件包,配置路径可能会有所不同。雷米会指着“我总是改变我的设置来MapNGINX的运行用户,像这样。请不要这不是完整的
www.conf
!listen
配置很重要。它告诉FPM将套接字放在哪里(在本例中),我们可以发送请求(从NGINX)到哪里。这必须符合您的nginx配置。但首先让我们创建/启动FPM服务。同样,我不知道如何在AltServer上实现,但如果Alt使用
systemd
和systemctl
,您可以执行类似/bin/systemctl start php8-fpm.service
的操作我已经研究了AltServer FPM包,很可能该服务将这样命名。标签:https://packages.altlinux.org/en/p10/srpms/php8.1-fpm-fcgi/specfiles/
好了,现在您应该已经启动并运行了一个FPM服务。请检查运行目录。它应该有一个类似
/var/run/php80-fpm.sock
的sock
文件NGINX
我的NGINX PHP看起来像
请检查您的
fastcgi.conf
中的内容。它应该包括上面列出的一些fcgi
指令。这将足以使您的PHP应用程序工作。一个非常好的教程可以在DigitalOcean上找到:https://www.digitalocean.com/community/tutorials/php-fpm-nginx
它涵盖了Ubuntu,但你应该能够适应它。
NGINX的PHP-FPM替代品是NGINX Unit。
在AltServer上也可用:https://packages.altlinux.org/en/p10/srpms/unit/
确保安装的是Unit +语言模块for PHP
unit-php
。标签:https://packages.altlinux.org/en/p10/binary/unit-php/x86_64/配置将更加容易,因为您唯一要做的就是创建一个单元配置并应用它。描述如下:
http://unit.nginx.org/configuration/#php
所以,这是我的帖子的结尾,你将有很多东西要阅读和理解,以便继续前进。15年前我和你一样。一开始很痛苦,但值得。不要盲目地跟随教程。阅读PHP和PHP-FPM。理解为什么!你需要像FPM或Unit这样的东西。这将让你成长,下次你可以在5分钟内设置NGINX + PHP设置:)
快乐学习!