我正在尝试建立一个 LEMP stack Wordpress 网站。在这样做的过程中,我在两个不同的教程之间切换作为资源,虽然我在解决遇到的问题和挑战时感到自豪,但这让我困惑了一段时间。
我尝试对两个教程中的 nginx 配置文件进行科学改造,希望奇迹般地不会出现语法错误。不幸的是我没有运气。我正在尝试理解 nginx 语言,但我发现很难确定到底是什么发出了错误。感谢您的阅读。
我遵循的两个教程来自 digitalocean.com 和 LandChad.net
运行“nginx -t”返回:
nginx: [emerg] invalid number of arguments in "include" directive in /etc/nginx/sites-enabled/example:11 nginx: configuration file /etc/nginx/nginx.conf test failed
我知道第 11 行存在问题,但我不知道如何面对它。我无法理解 nginx 的语法并修改此错误...教程指出,如果我的 php 版本已经过时,我可能需要从 7.3 更改 php 版本。我运行 'php -v' 返回:
PHP 7.4.33 (cli) (built: Jun 9 2023 16:51:37) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
请参阅下面的配置文件详细信息
server {
server_name example.com ;
root /var/www/example ;
index index.html index.htm index.nginx-debian.html ;
location / {
try_files $uri $uri/ =404 ;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf
fastcgi_pass unix:/var/run/php/php7.4.33-fpm.sock;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name example.com ;
return 404; # managed by Certbot
}
我漏掉了一个“;”在包含行中。语法没问题,测试成功。