无论我尝试什么,当我访问docker机器ip时,我总是得到HTTP错误代码500。
我运行laradock通过Docker工具箱(操作系统:Windows 10),并有一个默认的虚拟机运行。我已经按照视频中的说明设置laradock。
我已经成功地将我需要的文件夹挂载到VM中,并根据我的代码在VM中的位置更改了docker-compose.yml:
这是我的docker-compose.yml文件:
版本:'2'
服务:
nginx:
build: ./nginx
volumes_from:
- volumes_source
volumes:
- ./logs/nginx/:/var/log/nginx
ports:
- "80:80"
- "443:443"
links:
- php-fpm
php-fpm:
build:
context: ./php-fpm
dockerfile: Dockerfile-70
volumes_from:
- volumes_source
expose:
- "9000"
links:
- workspace
mysql:
build: ./mysql
volumes_from:
- volumes_data
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: homestead
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
postgres:
build: ./postgres
volumes_from:
- volumes_data
ports:
- "5432:5432"
environment:
POSTGRES_DB: homestead
POSTGRES_USER: homestead
POSTGRES_PASSWORD: secret
mariadb:
build: ./mariadb
volumes_from:
- volumes_data
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: homestead
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
neo4j:
build: ./neo4j
ports:
- "7474:7474"
- "1337:1337"
environment:
- NEO4J_AUTH=homestead:secret
volumes_from:
- volumes_data
mongo:
build: ./mongo
ports:
- "27017:27017"
volumes_from:
- volumes_data
redis:
build: ./redis
volumes_from:
- volumes_data
ports:
- "6379:6379"
memcached:
build: ./memcached
volumes_from:
- volumes_data
ports:
- "11211:11211"
links:
- php-fpm
beanstalkd:
build: ./beanstalkd
ports:
- "11300:11300"
privileged: true
links:
- php-fpm
beanstalkd-console:
build: ./beanstalkd-console
ports:
- "2080:2080"
links:
- beanstalkd
workspace:
build:
context: ./workspace
args:
- INSTALL_PRESTISSIMO=false
volumes_from:
- volumes_source
tty: true
volumes_source:
build: ./volumes/application
volumes:
- /c/Users/pomodoro.xyz/code:/var/www/laravel
volumes_data:
build: ./volumes/data
volumes:
- /var/lib/mysql:/var/lib/mysql
- /var/lib/postgres:/var/lib/postgres
- /var/lib/mariadb:/var/lib/mariadb
- /var/lib/memcached:/var/lib/memcached
- /var/lib/redis:/data
- /var/lib/neo4j:/var/lib/neo4j/data
- /var/lib/mongo:/data/db
当我登录到工作区并更改文件时,它们会反映到主机中,所以我在这方面很擅长。
这是我的工作容器中的文件夹结构(就像视频一样):
root@d463d55e545b:/var/www/laravel# ls -l
total 30
drwxrwxrwx 1 1000 staff 4096 Jul 20 19:58 app
-rwxrwxrwx 1 1000 staff 1646 Jul 20 19:58 artisan
drwxrwxrwx 1 1000 staff 0 Jul 20 19:58 bootstrap
-rwxrwxrwx 1 1000 staff 1272 Jul 20 19:58 composer.json
drwxrwxrwx 1 1000 staff 4096 Jul 20 19:58 config
drwxrwxrwx 1 1000 staff 4096 Jul 20 19:58 database
-rwxrwxrwx 1 1000 staff 503 Jul 20 19:58 gulpfile.js
-rwxrwxrwx 1 1000 staff 12 Jul 21 15:13 index.html
drwxrwxrwx 1 1000 staff 4096 Jul 23 09:24 laradock
-rwxrwxrwx 1 1000 staff 212 Jul 20 19:58 package.json
-rwxrwxrwx 1 1000 staff 1026 Jul 20 19:58 phpunit.xml
drwxrwxrwx 1 1000 staff 4096 Jul 23 10:39 public
-rwxrwxrwx 1 1000 staff 1918 Jul 20 19:58 readme.md
drwxrwxrwx 1 1000 staff 0 Jul 20 19:58 resources
-rwxrwxrwx 1 1000 staff 567 Jul 20 19:58 server.php
drwxrwxrwx 1 1000 staff 0 Jul 20 19:58 storage
drwxrwxrwx 1 1000 staff 0 Jul 20 19:58 tests
drwxrwxrwx 1 1000 staff 0 Jul 20 19:59 vendor
正如我从docker exec看到的,所有nginx.conf文件等都被加载到了容器中——它被加载到了我的nginx容器中。
作为参考,这里是我的laravel.conf
server{听80default_server;听[::]: 80default_serveripv6Only=on;
root /var/www/laravel/public;
index index.php index.html index.htm;
服务器名称:laravel.dev www.laravel.dev;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
和nginx.conf:
用户www数据;工人4;pid/run/nginx.pid;
事件{worker_connections 2048;multi_accept on;use epoll;}
http{server_tokens off;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 15;type_hash_max_size 2048;client_max_body_size 20M;include/etc/nginx/mime.types;默认_type应用程序/octet流;access_登录;error_登录;gzip开启;gzip_禁用“msie6”;include/etc/nginx/conf.d/.conf;include/etc/nginx/sites available/;open_file_cache max=100;}
守护进程关闭;
这是我的laravel根目录的.env文件:
APP_ENV=本地APP_DEBUG=真APP_KEY=APP_URL=http://localhost
数据库连接=mysql数据库主机=192.168.99.100数据库端口=3306数据库=homestead数据库用户名=homestead数据库密码=secret
缓存驱动程序=文件会话驱动程序=文件队列驱动程序=同步
REDIS_主机=192.168.99.100 REDIS_密码=空REDIS_端口=6379
邮件驱动程序=smtp邮件\u主机=mailtrap.io邮件\u端口=2525邮件\u用户名=null邮件\u密码=null邮件\u加密=null
我还通过登录工作区容器并键入以下内容来设置文件夹的权限:
chmod-R 777存储引导/缓存
但我仍然得到超文本传输协议500错误的docker-机器ip。我错过了什么?
我看到的一个潜在问题是,您在. env中为您的服务主机(DB_HOST,REDIS_HOST)使用IP地址。这些IP地址可能会改变,因此使用容器名称作为主机地址更安全。在你的情况下,你会想要使用"DB_HOST=mysql"和"REDIS_HOST=redis"。
http 500意味着nginx配置可能没有问题,听起来更像是Laravel配置问题。我建议您检查您的laravel日志文件(storage/logs/laravel.log
)以了解更多信息。
问题内容: 我真的很难站起来从html页面到我的node.js应用程序然后再回到html页面的双向数据传输。 我很确定我已经找到了正确的解决方案,但是我只是没有使它起作用。 我在node.js应用程序中使用了以下内容: 以下是我的html页面: 因此,当我运行节点应用程序时,服务器运行正常。当我启动html页面时,收到警报“在这里!”。当我按下按钮“ NameGameIt”时,我收到警报“现在怎么
因此,我使用服务器(google-app-engine)在客户端应用程序上进行身份验证。当我使用JavaFX、Webview或HttpsURLConnection时,一切都很好,它们连接起来了,但是当我使用HttpClient时,它会抛出以下错误 javax.net.ssl.sslpeerunverifiedexception:peer未在sun.security.ssl.sslsessionim
我在服务层的spring-boot应用程序中使用了Hystrix(Camden.sr7版本),而没有回退方法。Service的方法之一如下所示: 对于这样的响应,不清楚实际上是从哪个方法抛出异常的。如果我将版本更改为brixton.sr5(以前的版本),它将返回清晰的响应: 因此Hystrix的新版本(实际上是spring-cloud-dependencies的新版本)不会抛出HystrixRun
JMeter HTTP请求-404错误 当我运行jmx文件时,其中一个HTTP请求文件会抛出404错误。屏幕截图如上图所示。 有人能为这个问题提出一些解决方案吗?
我对Docker和ZK映像有一个非常大的问题。这不会在我的机器上本地发生,但当我在docker上运行时,它会抛给我这个错误:这里有错误 Docker文件: 我通过打字来建造 > 2.docker构建-tmy_image。 3.sudo docker run-p 8080:8080资产 然后它向我抛出了照片中的错误。 请帮帮我,因为我什么都找不到。
既然我们可以在Javascript中使用关键字抛出任何东西,那么我们就不能直接抛出一个错误消息字符串吗? 有人知道这里面有什么陷阱吗? 让我对此添加一些背景:在JavaScript世界中,人们通常依赖参数检查而不是使用try-catch机制,因此只使用抛出致命错误是有意义的。不过,为了能够捕捉一些系统错误,我必须为我自己的错误使用一个不同的类,而不是创建错误的子类,我认为我应该只使用String。