Tag Archive port

Byphunsanit

apache: port

สาเหตุที่ต้องเปลี่ยน port apache จากมาตราฐาน 80, 443 เพราะว่า server ลง iis เอาไว้และต้องการใช้งานทั้งคู่ไปพร้อมๆ กันเลย แต่ที่ลงไว้มันจะชนกันใช้พร้อมกันไม่ได้

วิธีเปลียนก็ไม่ยากแค่หา config ที่มันเขียนเลข port อยู่แล้วใส่เลข port อื่นที่ไม่มีใครใช้ firewall ไม่ block เข้าไปแทน อย่างจะเปลี่ยนจากมาตราฐาน http port 80 เป็น 84 และ https 443 เป็น 85

  1. เปิดไฟล์ C:\xampp\apache\conf\httpd.conf แล้วแก้บรรทัด
    1. Listen 80 แก้เป็น
      Listen 84
    2. ServerName localhost:80 แก้เป็น
      ServerName localhost:84
  2. เปิดไฟล์ C:\xampp\apache\conf\extra\httpd-ssl.conf แล้วแก้บรรทัด
    1. Listen 443 แก้เป็น
      Listen 85
    2. <VirtualHost _default_:443> แก้เป็น
      <VirtualHost _default_:85>
    3. ServerName www.example.com:443 แก้เป็น
      ServerName www.example.com:85
  3. restart apache
  4. ทดสอบโดยการเปิดเว็บเช่น http://localhost:84 และ https://localhost:85

จริง ๆ แล้วมีผู้ได้กรุณาเขียนวิธีเปลี่ยน apache port ไว้ละเอียดมาก How to change XAMPP apache server port? และดู port ที่ว่างได้จากกิสต์ Well-known ports

Byphunsanit

ทำ Virtual Host ใน Apache

เพราะว่าต้องแยกส่วนของ frontend และ backend ไว้คนละ server เพื่อความสดวกและปลอดภัย โดยทั้งคู่จะติดต่อกันผ่านทาง api แต่เวลาเขียนมีคอมพิวเตอร์แค่เครื่องเดียว ตามปกติสามารถทำได้โดยแยกงานไว้คนละ folder และเพื่อให้เหมือนของจริงยิ่งขึ้นก็ใข้วิธีทำ Virtual Host แยกออกเป็น 2 เซิร์ฟเวอร์ (ถึงจะแค่เครื่องจำลองก็เถอะ)

ทำได้โดยการเปิดไฟล์ C:\xampp\apache\conf\extra\httpd-vhosts.conf และเพิ่ม


## backend
Listen 81
<VirtualHost *:81>

    CustomLog "D:\xampp\htdocs\cms_backend\logs\apacheAccess.txt" common
    ErrorLog "D:\xampp\htdocs\cms_backend\logs\apacheError.txt"

    php_flag display_errors on
    php_flag log_errors on
    php_value error_log "D:\xampp\htdocs\cms_backend\logs\phpError.txt"
    php_value error_reporting 2147483647

    DocumentRoot "D:\xampp\htdocs\cms_backend\www"

    ServerAdmin [email protected]
    ServerName backend.localhost

</VirtualHost>

## frontend
Listen 82
<VirtualHost *:82>

    CustomLog "D:\xampp\htdocs\cms_frontend\logs\apacheAccess.txt" common
    ErrorLog "D:\xampp\htdocs\cms_frontend\logs\apacheError.txt"

    php_flag display_errors on
    php_flag log_errors on
    php_value error_log "D:\xampp\htdocs\cms_frontend\logs\phpError.txt"
    php_value error_reporting 2147483647

    DocumentRoot "D:\xampp\htdocs\cms_frontend\www"

    ServerAdmin [email protected]
    ServerName frontend.localhost

</VirtualHost>

อธิบาย

Listen
คือหมายเลขพอร์ตที่จะให้รอรับ request อย่าตั้งให้ชนกับตัวอื่น
CustomLog, ErrorLog
คือไฟล์ log ที่แยกออกมาของแต่ละ virtual host โดยสามารถอ่านคู่มือได้จาก Log Files
php_flag, php_value
คือ การปรับแต่ง php เป็นพิเศษสำหรับ server ตัวนี้เท่านั้น
DocumentRoot
คือ folder ที่ไว้เก็บ php ที่เราตั้งใจแยกไว้ เป็น code ชุดเดียวกับที่เราจะเอาขึ้น server จริง
ServerAdmin, ServerName
คือ ข้อมูล server แต่ละตัว

ทดสอบโดย restart apache ใหม่และเปิดเว็บ

Byphunsanit

การ config visual Directory ใน apache

หลังจากลง appserv หรือ xampp เราก็จะสามารถเข้าไปเพื่อเขียนงานได้ทันที ในบางครั้งการทำเว็บก็มีความต้องการให้บางส่วนของเว็บทำงานเป็นพิเศษต่างจากปกติที่โปรแกรมจัดไว้ให้ เช่น เว็บมีขนาดใหญ่มากไม่เหมาะที่จะเก็บไว้ในไดร์ฟเดียวกับเว็บอื่นๆ ไม่ต้องการที่จะที่จะเก็บไว้ในไดร์ฟซี หรือต้องวางไว้โดยใช้ port พิเศษเพื่อความปลอดภัย
ใช้ editplus เปิด Config จะอยู่ที่ C:\xampp\apache\conf\httpd.conf ใช้ เนื่องจากต้องการจะแยก config ทีเพิ่มมาใหม่ไว้อีกที่เพื่อความเป็นระเบียบและบริหารง่าย จะใช้วิธี include ให้ไปอ่านจากอีกไฟล์หนึ่ง เพิ่มบรรทัด
Include “C:\xampp\apache\conf\extra\httpd-plus.conf” หลัง include คือ ชื่อไฟล์และพาร์ทที่จะเก็บ config ตัวใหม่
ถ้าต้องการ map directory ใหม่ใช้

Alias /www2 "d:/www2/"
<Directory "d:/www2">
AllowOverride All
Order allow,deny
Allow from all
</Directory>

อธิบายคือ map directory d:/www2 โดยจะสามารถเรียกโดย url http://localhost/www2/
ถ้าต้องการกำหนด port หรือค่าอื่นๆด้วย

Listen 8080
Alias /www2 " d:/www2/"
<Directory "d:/www2/">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:8080>
ServerAdmin [email protected]
DocumentRoot "d:/www2"
ServerName Plus.localhost
ServerAlias dev.localhost
ErrorLog "logs/Plus.localhost-error.log"
CustomLog "logs/Plus.localhost-access.log" combined
</VirtualHost>

จะต่างกันที่เรียกโดย url http://localhost:8080 คือต้องระบุ port ด้วยและ config บางส่วนจะต่างกัน
เช่น การกำหนดอีเมล์ผู้ดูแล domain
อ่าน ทำ dns (Domain Name System) ส่วนตัว เพิ่มเติมครับ