有很多配置文件,我放了一个文件,但我没有看到它的效果。
要么我的配置是错误的,要么 Apache 未加载配置文件。
有没有我可以触发的命令来查看特定的配置文件是否被 Apache 加载?
apachectl configtest
Run Code Online (Sandbox Code Playgroud)
不打印错误。服务器重新启动没有错误。
这个问题的大多数答案是,设置 fastcgi_param SCRIPT_FILENAME 并且它会起作用(斜体格式被破坏了?!)。
我已经设置了这个变量(正确)但它仍然显示错误而不是 404 页面,因为问题的根源在这里:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)
一个不存在的路径被传递给 php5-fpm,这反过来打印错误,在日志中看起来像:
FastCGI sent in stderr:
"Unable to open primary script: ... (No such file or directory)"
while reading response header from upstream
Run Code Online (Sandbox Code Playgroud)
所以在该行之前fastcgi_pass 必须有一个条件来检查文件是否真的存在,或者,如果fpm worker返回“file not found”,引导nginx返回404页面。
我怎样才能做到这一点?
我正在使用 Debian,最新的 dotdeb nginx-lite。我已经读过,server如果域没有特定的服务器部分,nginx 找到的第一部分将用作后备/默认部分。
我从我的安装中删除了sites-available和sites-enabled,因为我/www对所有与 http 相关的内容都使用了专用安装。
我/etc/nginx/nginx.conf有这些行,包括其他 confs:
include /www/conf.d/nginx/default.conf;
include /etc/nginx/conf.d/*.conf;
include /www/conf.d/nginx/*;
Run Code Online (Sandbox Code Playgroud)
default.conf 看起来像:
server {
server_name 0.0.0.0;
listen 0.0.0.0:80;
rewrite ^ http://mymaintarget.com permanent;
}
Run Code Online (Sandbox Code Playgroud)
这对我不起作用。我仍然收到此警告:
Restarting nginx: nginxnginx: [warn] conflicting
server name "0.0.0.0" on 0.0.0.0:80, ignored
Run Code Online (Sandbox Code Playgroud)
我很确定没有其他服务器部分,并且 default.conf 是第一个包含/使用的。
任何人都知道有什么问题或配置默认服务器的正确方法是什么?
更新完整的配置文件:
nginx.conf:
user www-data;
worker_processes 8;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 10;
types_hash_max_size …Run Code Online (Sandbox Code Playgroud) 我只能通过 Live CD 启动,并且需要将 Debian 软件包安装firmware-linux-nonfree到我的服务器上才能成功启动。
我怎样才能做到这一点?会chroot帮助我吗?
我们有一个带有外部驱动器的小盒子,用于备份配置集。我发现这个问题很简单,在重新启动或什么的未知事件驱动的切换/dev/sda1到/dev/sdb1。
我怎样才能绕过这个或配置 fstab 来尝试这两个位置?
/dev/sda1 /stor ext4 defaults,noatime,noexec 0 0
Run Code Online (Sandbox Code Playgroud)
你可以看到我做了一些调试:
root@nsa:~# mount /stor
mount: special device /dev/sda1 does not exist
Run Code Online (Sandbox Code Playgroud)
正如您在下面看到的,我在编写问题时进行了一些调试。
系统日志:
Jul 16 09:48:48 nsa kernel: [167416.395274] EXT4-fs warning (device sda1):
__ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
Run Code Online (Sandbox Code Playgroud)
#df -h之前umount:
/dev/sda1 1.4T 185G 1.1T 15% /stor
Run Code Online (Sandbox Code Playgroud)
#dmesg:
[ 170.431715] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[119366.019470] usb 1-1.2: USB disconnect, device number 4
[119366.297601] …Run Code Online (Sandbox Code Playgroud) nginx ×2
apache-2.2 ×1
apt ×1
debian ×1
fastcgi ×1
fstab ×1
hard-drive ×1
live-cd ×1
mount ×1
php-fpm ×1
rescue-disk ×1
usb ×1
virtualhost ×1