2017-04-16 46 views
0

我用PHP創建了nginx服務器,但它不工作。docker nginx,php有什麼不對?

這是我的搬運工,compose.yml:

web: 
    image: nginx:latest 
    ports: 
     - 127.0.0.1:8080:80 
    volumes: 
     - ./docs:/docs 
     - ./site.conf:/etc/nginx/conf.d/site.conf 
    links: 
     - php 
php: 
    image: php:latest 
    volumes: 
     - ./docs:/docs 

site.conf:

server { 
    listen 80; 
    index index.php; 
    server_name php.local; 
    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 
    root /docs; 

    location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass php:9000; 
     fastcgi_index index.php; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
    } 
} 

/etc/hosts中

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6 
127.0.0.1 php.local 

碼頭工人在終端運行沒有錯誤:

sudo docker-compose up -d 
Starting php_php_1 
Starting php_web_1 

而當我輸入瀏覽器127:0:0:1:8080或php.local:8080它被拒絕連接爲什麼?

回答

0

這不是端口的正確語法轉發

- 127.0.0.1:8080:80 

用一個簡單的

- 8080:80 

泊塢窗作曲家IP替換它不是你的本地主機。要找出您的碼頭工人,撰寫IP,你需要調用docker-machine ip default,(例如,如果你正在起訴OSX)...在這裏閱讀更多https://docs.docker.com/machine/reference/ip/

通常的IP是一樣的東西192.168.99.100所以如果喲打電話http://192.168.99.100:8080,你服務器上的docker-compose容器應該可到達

+0

我使用Fedora。根據教程,我不需要碼頭機器。它應該在本地主機...呼籲http://192.168.99.100:8080不工作。 – smiady