็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง Linux HTTPD ็ถฒ้ ไผบๆœๅ™จๅปบ็ฝฎๆ•™ๅญธ(Apache ๅฎ‰่ฃ่ˆ‡่จญๅฎšๆŒ‡ๅ—)

    ๐Ÿง Linux HTTPD ็ถฒ้ ไผบๆœๅ™จๅปบ็ฝฎๆ•™ๅญธ(Apache ๅฎ‰่ฃ่ˆ‡่จญๅฎšๆŒ‡ๅ—)

    Apache HTTP Server(httpd) ๆ˜ฏๆœ€ๅปฃๆณ›ไฝฟ็”จ็š„้–‹ๆบ็ถฒ้ ไผบๆœๅ™จไน‹ไธ€, ๅ…ทๅ‚™้ซ˜ๅบฆ็ฉฉๅฎšๆ€ง、ๅฏๆ“ดๅ……ๆ€ง่ˆ‡ๆจก็ต„ๅŒ–ๆžถๆง‹,ๆ”ฏๆด PHP、SSL、Proxy、Rewrite ่ˆ‡ๅคš่™›ๆ“ฌไธปๆฉŸ่จญๅฎš。 ๆœฌ็ฏ‡ๆ•™ๅญธไปฅ「ๅฏฆๅ‹™ๅฐŽๅ‘」ๆ–นๅผ,ๅธถไฝ ๅฎŒๆˆๅพžๅฎ‰่ฃ、ๅ•Ÿๅ‹•ๅˆฐ SSL ๅ•Ÿ็”จ็š„ๅฎŒๆ•ดๆต็จ‹。


    1️⃣ ๅฎ‰่ฃ Apache HTTPD

    # CentOS / RHEL ็ณปๅˆ—
    sudo yum install httpd -y
    
    # Ubuntu / Debian ็ณปๅˆ—
    sudo apt update
    sudo apt install apache2 -y
      

    ๅฎ‰่ฃๅฎŒๆˆๅพŒ,ไธป่ฆ่จญๅฎšๆช”ไฝ็ฝฎๅฆ‚ไธ‹:

    /etc/httpd/conf/httpd.conf      # CentOS / RHEL
    /etc/apache2/apache2.conf       # Ubuntu / Debian
      
    • DocumentRoot:้ ่จญ็ถฒ็ซ™ๆ น็›ฎ้Œ„(้€šๅธธ็‚บ /var/www/html
    • Listen:็›ฃ่ฝ็š„ๅŸ ่™Ÿ(้ ่จญ 80)
    • Include:่ผ‰ๅ…ฅๅ…ถไป–่จญๅฎšๆช”(ไพ‹ๅฆ‚ conf.d/*.conf

    2️⃣ ๅ•Ÿๅ‹•่ˆ‡้–‹ๆฉŸ่‡ชๅ‹•ๅ•Ÿ็”จๆœๅ‹™

    # ๅ•Ÿๅ‹•ๆœๅ‹™
    sudo systemctl start httpd
    
    # ่จญๅฎš้–‹ๆฉŸ่‡ชๅ‹•ๅ•Ÿๅ‹•
    sudo systemctl enable httpd
    
    # ๆŸฅ็œ‹็‹€ๆ…‹
    sudo systemctl status httpd
      

    ้ ่จญ็ถฒ็ซ™็›ฎ้Œ„็‚บ:

    /var/www/html/
      

    ๅฏๅปบ็ซ‹้ฆ–้ ๆธฌ่ฉฆ:

    echo "<h1>Hello Apache!</h1>" | sudo tee /var/www/html/index.html
    curl http://localhost
      

    ่‹ฅๅ‡บ็พ「Hello Apache!」ๅณไปฃ่กจ็ถฒ็ซ™ๆœๅ‹™้‹ไฝœๆˆๅŠŸ。


    3️⃣ ้˜ฒ็ซ็‰†่ˆ‡้€ฃ็ทš้ฉ—่ญ‰

    # ้–‹ๆ”พ HTTP / HTTPS ๆœๅ‹™
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
    
    # ้ฉ—่ญ‰ไผบๆœๅ™จ้‹ไฝœ
    curl -I http://localhost
      

    ๆˆ–ไฝฟ็”จ็€่ฆฝๅ™จ้–‹ๅ•Ÿ http://ไผบๆœๅ™จIP ้ฉ—่ญ‰้ฆ–้ ๆ˜ฏๅฆๅฏๆญฃๅธธ้กฏ็คบ。


    4️⃣ ่จญๅฎš่™›ๆ“ฌไธปๆฉŸ(Virtual Host)

    ่‹ฅๅŒไธ€ๅฐไธปๆฉŸ้œ€ๆœๅ‹™ๅคšๅ€‹็ถฒ็ซ™,ๅฏ่จญๅฎšๅคšๅ€‹่™›ๆ“ฌไธปๆฉŸ:

    # /etc/httpd/conf.d/example.conf
    
        ServerName www.example.com
        DocumentRoot /var/www/example
        ErrorLog /var/log/httpd/example_error.log
        CustomLog /var/log/httpd/example_access.log combined
    
      
    sudo mkdir -p /var/www/example
    echo "Hello Apache VirtualHost" | sudo tee /var/www/example/index.html
    sudo systemctl restart httpd
      

    ไฟฎๆ”นๆœฌๆฉŸ hosts ๆธฌ่ฉฆ:

    sudo sh -c 'echo "127.0.0.1 www.example.com" >> /etc/hosts'
    curl http://www.example.com
      

    ่‹ฅๆญฃๅธธ้กฏ็คบๅ…งๅฎน,ๅณ่กจ็คบ่™›ๆ“ฌไธปๆฉŸ้…็ฝฎๆˆๅŠŸ。


    5️⃣ ๅ•Ÿ็”จ SSL(HTTPS)

    ็‚บ็ถฒ็ซ™ๅ•Ÿ็”จๅŠ ๅฏ†้€ฃ็ทš,ๅฏไฝฟ็”จ่‡ช็ฐฝๆ†‘่ญ‰้€ฒ่กŒๆธฌ่ฉฆ:

    # ๅฎ‰่ฃ mod_ssl ๅฅ—ไปถ
    sudo yum install mod_ssl -y   # CentOS / RHEL
    sudo apt install openssl      # Ubuntu / Debian
    
    # ็”ข็”Ÿ่‡ช็ฐฝๆ†‘่ญ‰
    sudo openssl req -x509 -nodes -days 365 \
      -newkey rsa:2048 \
      -keyout /etc/ssl/private/apache-selfsigned.key \
      -out /etc/ssl/certs/apache-selfsigned.crt
      

    ไฟฎๆ”น ssl.conf ๆˆ– default-ssl.conf ไปฅๅผ•็”จๆ†‘่ญ‰่ทฏๅพ‘ๅพŒ้‡ๆ–ฐๅ•Ÿๅ‹•:

    sudo systemctl restart httpd
    curl -k https://localhost
      

    ๆˆๅŠŸ้กฏ็คบๅณไปฃ่กจ HTTPS ๅ•Ÿ็”จๅฎŒๆˆ。


    6️⃣ ๅธธ่ฆ‹ๅ•้กŒ่ˆ‡่จบๆ–ท

    # ๆŸฅ็œ‹้Œฏ่ชคๆ—ฅ่ชŒ
    sudo tail -n 20 /var/log/httpd/error_log
    
    # ็ขบ่ช Listen Port
    sudo ss -tuln | grep :80
    
    # ้ฉ—่ญ‰่จญๅฎš่ชžๆณ•
    sudo apachectl configtest
    
    # ้‡ๆ–ฐ่ผ‰ๅ…ฅ่จญๅฎš(ไธไธญๆ–ท้€ฃ็ทš)
    sudo systemctl reload httpd
      

    ่‹ฅๅ ฑ้Œฏ「Permission denied」,่ซ‹ๆชขๆŸฅ SELinux ๆˆ–ๆช”ๆกˆๆฌŠ้™:

    sudo setenforce 0
    # ๆˆ–ๆฐธไน…่ชฟๆ•ด /etc/selinux/config ็‚บ permissive
      

    ๐Ÿงญ ่กŒๅ‹•ๆธ…ๅ–ฎ(ๅฟซ้€Ÿ่ค‡ๆŸฅ)

    ✅ ๅฎ‰่ฃ httpd / apache2 ไธฆ่จญๅฎš่‡ชๅ•Ÿๅ‹•
    ✅ ้–‹ๅ•Ÿ้˜ฒ็ซ็‰† HTTP / HTTPS
    ✅ ๆ”พ็ฝฎ index.html ๆธฌ่ฉฆ้ฆ–้ 
    ✅ ่จญๅฎš่™›ๆ“ฌไธปๆฉŸไธฆๆธฌ่ฉฆๅŸŸๅๅฐๆ‡‰
    ✅ ๅ•Ÿ็”จ SSL ่ˆ‡่‡ช็ฐฝๆ†‘่ญ‰
    ✅ ้ฉ—่ญ‰่จญๅฎšๆช”่ชžๆณ•ไธฆ่ง€ๅฏŸๆ—ฅ่ชŒ
      

    ๐Ÿ“˜ ็ต่ชž

    ้€้ŽไปฅไธŠๆญฅ้ฉŸ,ไฝ ๅทฒ่ƒฝๆˆๅŠŸ้ƒจ็ฝฒไธ€ๅฐๅฎŒๆ•ด็š„ Apache HTTPD ็ถฒ้ ไผบๆœๅ™จ。 ๆŽŒๆก้˜ฒ็ซ็‰†้–‹ๆ”พ、่™›ๆ“ฌไธปๆฉŸ็ฎก็†่ˆ‡ SSL ๅ•Ÿ็”จๅพŒ,ๅณๅฏ้€ฒไธ€ๆญฅๆ•ดๅˆ LAMP ๆžถๆง‹ๆˆ–ๅๅ‘ไปฃ็†ๆ‡‰็”จ, ๆ‰“้€ ๅฑฌๆ–ผไฝ ่‡ชๅทฑ็š„็ฉฉๅฎš็ถฒ็ซ™ๆœๅ‹™็’ฐๅขƒ。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・็ณป็ตฑๅปบ็ฝฎ็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš