Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

Apache บน Debian 11

Apache บน Debian 11

คำสั่งในการติดตั้ง  apache2

sudo apt install apache2

คำสั่งในการถอนการติดตั้ง  apache2

sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
sudo apt-get autoremove --purge

คำสั่ง ตรวจสอบ เวอร์ชั่นของ Apache

sudo apache2 -v

ผลที่แสดงออกมาเมื่อใช้คำสั่ง ตรวจสอบ

root@www:/etc# sudo apache2 -v
Server version: Apache/2.4.52 (Debian)
Server built: 2022-01-03T21:27:14

คำสั่งเรียกใช้งาน ส่วนมามันเรียกใช้งานอัติโนมัติ อยู่แล้ว

systemctl is-enabled apache2

คำสั่ง  รีสตาร์ทการทำงาน หรือกรณี จะ เริ่มการทำงานหรือหยุดการทำงาน ก็แค่ เปลี่ยนจาก restart >start,stop

systemctl restart apache2

กรณีที่เรามีการแก้ไขค่า คอนฟิก ก็เรียกใช้คำสั่ง 

sudo systemctl reload apache2

คำสั่งตรวจสอบสถานะของมัน Checking the Status of Apache Webserver

systemctl status apache2

ผลที่แสดงออกมาเมื่อเราใช้คำสั่งตรวจสอบสถานะ

root@www:/etc# systemctl status apache2
● apache2.service – The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Sat 2022-03-26 14:57:12 +07; 5 days ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 341 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUC>
Process: 37066 ExecReload=/usr/sbin/apachectl graceful (code=exited, status>
Main PID: 493 (apache2)
Tasks: 11 (limit: 4528)
Memory: 2.6G
CPU: 15min 43.387s

ใช้คำสั่ง s2enmod เพื่อเปิดค่าของ Apache modules  ตามตัวอย่าง กรณีเราเปิดค่า ssl rewrite header

a2enmod ssl rewrite headers

ขั้นตอนการคอนฟิก Configuring Apache Web Server

ในขั้นตอนนี้ น่าจะทำความเข้าใจโครงสร้างมันให้ดี จะช่วยได้มากในการปรับแต่งค่าต่างๆๆๆ ตามที่เราเข้าใจ บางครั้งหากเราอ่านคำแนะนำ และเราต้องการมาปรับแต่งตามแบบของเราเอง

ในการศึกษาเกี่ยวกับพวกนี้ การคอนฟิก อาจจะแตกต่างกันไป อย่ายึดหลักตายตัวว่าต้องทำแบบนั้น ต้องทำแบบนี้ หากเราทดสอบแล้วว่า ที่เคยทำมาแบบไหนง่าย และได้ผล ให้ใช้แบบเดิมจะลดเวลาได้มาก และให้จดบันทึกไว้

โครงสร้างของไฟล์ สำหรับคอนฟิก ของ apache จะเป็นแบบนี้ครับ

  1. ในส่วนที่เก็บไฟล์คอนฟิกหลักจะอยู่ใน  /etc/apache2 
  2. ไฟล์หลักที่ใช้ในการคอนฟิก คือ/etc/apache2/apache2.conf

    ตัวอย่าง ไฟล์ใน  /etc/apache2/sites-available 

    วิธีการดูให้ใช้คำสั่ง ls

    root@www:/etc/apache2/sites-available# ls
    

    เมื่อใช้คำสั่ง ls  มี  000-default.conf เป็นไฟล์ดีฟอลต์  และมี nextcloud.conf  เป็นไฟล์ที่เราสร้างขึ้นมาใหม่สำหรับ วิชวลโอสต์ของเรา

    000-default.conf     default-ssl.conf      nextcloud.conf
    

    ตัวอย่าง ไฟล์ใน  /etc/apache2/sites-enable 

     จะเห็นว่ามี  000-default.conf เป็นไฟล์ดีฟอลต์  และมี nextcloud.conf  เป็นไฟล์ที่เราสร้างขึ้นมาใหม่  เช่นกัน แต่มัน link ไปยัง  /etc/apache2/sites-avilable

    root@www:/etc/apache2/sites-enabled# ls
    000-default.conf  nextcloud.conf
    

    วิธีดูว่า มีการสร้าง link ไปจริงหรือไม่ ให้ใช้ คำสั่ง ls-la

    root@www:/etc/apache2/sites-enabled# ls -la
    total 8
    drwxr-xr-x 2 root root 4096 Feb 17 13:29 .
    drwxr-xr-x 8 root root 4096 Feb 17 19:11 ..
    lrwxrwxrwx 1 root root   35 Feb 17 12:44 000-default.conf -> ../sites-available/000-default.conf
    lrwxrwxrwx 1 root root   33 Feb 17 13:29 nextcloud.conf -> ../sites-available/nextcloud.conf
    

    กรณีไฟล์ default-ssl.conf

    default-ssl.conf  ใช้สำหรับกรณีที่เราต้องการเปิดการใช้งาน ssl หรือ https  เพื่อทดสอบวิธีการ

    • sudo a2ensite default-ssl
    • enable mod ssl.
    • sudo a2enmod ssl
    • systemctl restart apache2

    Setup Apache Virtual Host for Nextcloud

    ตัวอย่างกรณีเราติดตั้ง Nextcloud แล้วเราสร้าง ไฟล์คอนฟิกสำหรับมัน  To use the virtual host installation

    vi  /etc/apache2/sites-available/nextcloud.conf
    

    หลังจากนั้น ให้แก้ไขค่า โดยกำหนดให้เป็น โดเมนเนมของเราเอง ตามตัวอย่างชื่อโดเมนเนม knupan.live ให้เปลี่ยนเป็นโดเมนเนมที่เรามีหรือสร้างขึ้นมาเอง

    <VirtualHost *:80>
        ServerName www.knupan.live
        ServerAlias knupan.live
    
        # auto redirect HTTP to HTTPS
        Redirect permanent / https://www.knupan.live/
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName www.knupan.live
        ServerAlias knupan.live
    
       # DocumentRoot /var/www/nextcloud/
        DocumentRoot  /var/www/
    
        Protocols h2 http/1.1
    
        # auto redirect www to non-www
        <If "%{HTTP_HOST} == 'knupan.live'">
            Redirect permanent / https://www.knupan.live/
        </If>
    
        # log files
        ErrorLog /var/log/apache2/www.knupan.live-error.log
        CustomLog /var/log/apache2/www.knupan.live-access.log combined
    
        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/www.knupan.live/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.knupan.live/privkey.pem
    
        # HSTS
        <IfModule mod_headers.c>
            Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>
    
        <Directory /var/www/nextcloud/>
            Options +FollowSymlinks
            AllowOverride All
    
            <IfModule mod_dav.c>
                Dav off
            </IfModule>
    
            SetEnv HOME /var/www/nextcloud
            SetEnv HTTP_HOME /var/www/nextcloud
        </Directory>
    </VirtualHost>
    

    ทดสอบว่าที่เราปรับแต่งไปแล้วมี ปัญหาหรือไม่

    apachectl configtest
    
    systemctl restart apache2
    

    ปกติหากเราคอนฟิกค่าดังกล่าว มันจะยังไม่ทำงาน  เพราะมันจะทำงานในแบบเดิมของมัน หากต้องการให้ทำงาน ตามที่เราต้องการก็ให้ใช้คำสั่ง

    a2ensite nextcloud.conf
    

    Warning, Tip, Notice, or Information.

    จะเห็นว่า ในไฟล์คอนฟิก  /etc/apache2/sites-available/nextcloud.conf

    ได้กำหนดที่เก็บข้อมูลเว็บไชต์ ไว้ที่ 

    DocumentRoot /var/www/

    ดังนั้นเราต้องดำเนินการในขั้นตอนต่อไปนี้ด้วย

    เปลี่ยนชื่อเจ้าของและกลุ่ม ใน /var/www  ใช้ -R เพื่อเปลี่ยนทั้งหมด to change the permissions of a folder and all its subfolders and files in one step

    chown -R www-data:www-data /var/www
    

    เปลี่ยนสิทธิ์ในการเข้าถึง     /var/www

    chmod 755  /var/www
    

    เมื่อมีการแก้ไขค่าคอนฟิกต้องใช้คำสั่ง 

    systemctl reload apache2
    

    การติดตั้งและการปรับแต่ง Apache บน Debian ที่สำคัญมีแค่นี้แหละคิดว่าไม่น่าจะยาก

    Tags:  

    Leave a Reply

    Your email address will not be published. Required fields are marked *