【发布时间】:2022-09-27 09:55:43
【问题描述】:
我正在尝试使用 LEMP 堆栈在数字海洋上的 Ubuntu 22.04 服务器上部署我的 laravel 应用程序... 所以我已经安装了 Linux、Nginx、所有 PHP 依赖项并配置了数据库并添加了一个新用户。这是我的 /sites-available/zili-zala.com 的样子
server {
listen 80;
server_name zili-zala.com www.zili-zala.com;
root /var/www/zili-zala.com/public;
add_header X-Frame-Options \"SAMEORIGIN\";
add_header X-XSS-Protection \"1; mode=block\";
add_header X-Content-Type-Options \"nosniff\";
index index.html index.htm 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; }
location ~ \\.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\\.(?!well-known).* {
deny all;
}
}
这是我的 .env 的样子
APP_NAME=soko
APP_ENV=production
APP_KEY=****
APP_DEBUG=true
APP_URL=example.com
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydatabase
DB_USERNAME=myusername
DB_PASSWORD=mypassword
我已经授予服务器用户对存储和缓存文件夹的写入权限。我还将符号链接添加到启用站点的文件中。但是当我进入浏览器时,我得到一个空白屏幕。我仍然不知道发生了什么。任何帮助将不胜感激。
-
调试的第一步是,备份 laravel 的 index.php 文件,并拥有一个 index.php 文件,其中包含一个 echo 语句或 phpinfo() 以确保服务器配置良好并执行index.php 文件。如果你能做到这一点,那么下一步将是调试应用程序。但在此之前尝试一下。同时检查 nginx 日志。
-
您是否设置了 DNS 以将您的域名指向您的服务器?
-
白页可能意味着发生了内部服务器错误(如果关闭显示错误,您将得到一个空白页,它应该在生产服务器上)并且内部服务器错误基本上可以意味着任何事情。检查您的网络服务器错误日志,看看那里是否有任何 PHP 错误。
-
顺便说一句,您意识到通过发布该 .env 文件,您已经向整个互联网提供了您的网站地址,包括您的数据库凭据和您的应用程序密钥。绝不共享凭据等敏感信息,您应该总是在某处发布代码时屏蔽/删除它们。您应该尽快更改服务器上的用户名/密码/应用程序密钥。
-
即使您编辑了问题,任何人都可以阅读revision history,因此您仍然需要更改凭据。另外,在那之前有几个人已经看过这个问题。一旦您不小心在网上(或其他任何地方)泄露了凭据,就认为它们是不安全的。
标签: php laravel digital-ocean ubuntu-22.04