การตั้งค่า nginx ตั้งค่า / การตั้งค่าท้องถิ่น


0

ฉันพยายามตั้งค่า nginx ที่กำหนดเองสำหรับไซต์ ตั้งค่าท้องถิ่น ฉันใช้เครื่องเสมือน vmware Mac OS X EL capitan 10.11 และใช้บทช่วยสอนนี้

มันคือ nginx.conf ของฉัน

enter code here

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
   worker_connections  1024;
}


http {
   include       mime.types;
    default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

server {
  root /Users/myfolder/Documents/folder/project-folder/;
  index index.php index.html index.htm;
  server_name project.dev;
  index index.php;
  client_max_body_size 2000M;
  location / {
    try_files $uri $uri/ /index.php?$args;
  }
  # Add trailing slash to */wp-admin requests.
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;
  # Directives to send expires headers and turn off 404 error logging.
  location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
      access_log off; log_not_found off; expires max;
  }
  location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_buffer_size 128k;
      fastcgi_buffers 4 256k;
      fastcgi_busy_buffers_size 256k;
      fastcgi_index index.php;
      include fastcgi.conf;
  }
 }

การกำหนดค่า project.dev:

enter code here
server {
root /Users/myfolder/Documents/folder/project/;
index index.php index.html index.htm;
server_name project.dev;
index index.php;
client_max_body_size 2000M;
location / {
  try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
    access_log off; log_not_found off; expires max;
}
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_index index.php;
    include fastcgi.conf;
 }
}   

โฮสต์:

 ##
 # Host Database
 #
 # localhost is used to configure the loopback interface
 # when the system is booting.  Do not change this entry.
 ##
 127.0.0.1    project.dev
 255.255.255.255    broadcasthost
 ::1    

ฉันพยายามติดตั้งhttp://project.dev - มันไม่ทำงาน ไม่สามารถเข้าถึงเว็บไซต์นี้ ฉันพลาดอะไร?

คำตอบ:


3

nginx.conf ของคุณและ project.dev ของคุณค่อนข้างถูก hosed และในความคิดของฉันโฮสต์ของคุณคือ "ไม่ได้มาตรฐาน"

ฉันเสนอวิธีการอื่น - ใช้การกำหนดค่าโฮสต์เสมือนโดยไม่มีไซต์มาตรฐาน

ฉันคิดว่า nginx ติดตั้งแล้วด้วยการชง แทนที่จะใช้sudo brew services nginx start/stopคำสั่ง (ซึ่งสร้าง / โหลดและยกเลิกการโหลด / ลบ launchemon ตลอดเวลา) ฉันใช้ daemon เรียกใช้แบบถาวรที่นี่

  • หยุด nginx!
  • คัดลอก nginx 'launch daemon ไปที่ / Library / LaunchDaemons และแก้ไขการอนุญาต:

    sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
    sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
    
  • สร้างโฟลเดอร์ต่อไปนี้ (หากยังไม่มีอยู่)

    mkdir -p /usr/local/etc/nginx/logs
    mkdir -p /usr/local/etc/nginx/sites-available
    mkdir -p /usr/local/etc/nginx/sites-enabled
    
  • แทนที่เนื้อหาของ nginx.conf ปัจจุบันด้วย

    worker_processes  1;
    
    error_log  /usr/local/etc/nginx/logs/error.log debug;
    
    events {
        worker_connections  256;
    }
    
    http {
        include             mime.types;
        default_type        application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /usr/local/etc/nginx/logs/access.log  main;
    
        sendfile            on;
    
        keepalive_timeout   65;
    
        index index.html index.php;
    
        include /usr/local/etc/nginx/sites-enabled/*; 
    }
    
  • สร้างโฟลเดอร์โครงการของคุณ:

    mkdir -p ~/Development/project-folder/project.dev
    
  • เพิ่มอย่างน้อยindex.htmlง่ายๆใน ~ / Development / project-folder / project.dev (เพื่อให้สามารถทดสอบ nginx)
  • สร้างไฟล์project.devใน / usr / local / etc / nginx / sites-available / ด้วยเนื้อหาต่อไปนี้:

    server {
      listen                *:80;
      server_name           project.dev;
    
      location / {
        root  /Users/your_username/Development/project-folder/project.dev;
        try_files  $uri  $uri/  /index.php?$args;
        index  index.html index.htm index.php;
      }
    
      location ~ \.php$ {
        root  /Users/your_username/Development/project-folder/project.dev;
        try_files  $uri  $uri/  /index.php?$args;
        index  index.html index.htm index.php;
    
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
    
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_intercept_errors on;
        include fastcgi_params;
      }
    
    }
    

    ตอนนี้เชื่อมโยง project.dev กับ sites.enabled:

    ln -s /usr/local/etc/nginx/sites-available/project.dev /usr/local/etc/nginx/sites-enabled
    
  • แก้ไขไฟล์ที่คุณโฮสต์ด้วยsudo nano /etc/hostsเพื่อ:

    127.0.0.1   localhost
    127.0.0.1   project.dev
    255.255.255.255 broadcasthost
    ::1             localhost 
    
  • ทดสอบการกำหนดค่า nginx:

    sudo nginx -t
    
  • เริ่ม nginx ด้วย:

    sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
    
  • ทดสอบเว็บไซต์ด้วย:

    curl -IL http://project.dev:80
    
  • หากต้องการจัดการ nginx ให้สร้างนามแฝงที่มีประโยชน์ได้ง่ายๆใน ~ / .bash_profile เช่น:

    alias nginx.start='sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist'
    alias nginx.stop='sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist'
    alias nginx.restart='nginx.stop && nginx.start'
    

    แหล่งที่มาของ. bash_profile ที่แก้ไขsource ~/.bash_profileหลังจากนั้น


หลังจากตั้งค่าเว็บไซต์พื้นฐานที่ใช้งานได้ให้เพิ่มคำสั่ง / ตำแหน่งเพิ่มเติมที่จำเป็นทั้งหมด ตรวจสอบบันทึกข้อผิดพลาดเพื่อหาข้อผิดพลาดในภายหลัง!


ในการเข้าถึงเว็บไซต์ของ OS X VM ด้วยไคลเอนต์ (เช่นโฮสต์ VM - คอมพิวเตอร์จริงของคุณ) ให้เพิ่มรายการสำหรับ project.dev ในไฟล์โฮสต์ของลูกค้า:

127.0.0.1   localhost
ip_address_of_osx-vm    project.dev
255.255.255.255 broadcasthost
::1             localhost 

การตั้งค่าที่ง่ายที่สุดสำหรับ VM คือการเชื่อมต่อเน็ตเวิร์กอินเตอร์เฟสของ VM กับเครือข่ายบริดจ์:

VM> การตั้งค่า> อุปกรณ์ที่ถอดออกได้> อะแดปเตอร์เครือข่าย> เครือข่ายบริดจ์> อีเธอร์เน็ต(หรือ Wi-Fi)

ในการกำหนดค่าตามความชอบเครือข่ายของ VM กำหนดค่า IP ในเครือข่ายเดียวกันกับอินเตอร์เฟสเครือข่ายของโฮสต์ VM ตัวอย่าง: หากอินเตอร์เฟสที่เชื่อมต่อเป็น Wi-Fi และที่อยู่ IP ของ Wi-Fi ของโฮสต์ VM คือ 192.168.0.15/255.255.255.0 ให้เลือก IP ที่ไม่ซ้ำในเครือข่ายเดียวกันสำหรับอินเทอร์เฟซเครือข่ายเครือข่ายของ OS X VM (เช่น 192.168.0.115 /255.255.255.0)

ไฟล์โฮสต์ (เว็บไซต์) ของลูกค้าควรมีลักษณะดังนี้:

127.0.0.1   localhost
192.168.0.115   project.dev
255.255.255.255 broadcasthost
::1             localhost  
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.