تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

    نحوه نصب وب سرور آپاچی Apache روی سرور مجازی لینوکس Linux یا VPS


    ۲۴ دی ۱۴۰۳

    مقدمه

    وب‌سرور Apache HTTP، پرکاربردترین وب سرور در جهان است. این سرور، امکانات قدرتمندی را ارائه می‌دهد از جمله ماژول‌های قابل بارگذاری پویا (dynamically loadable modules)، پشتیبانی قوی از رسانه‌ها (media) و ادغام گسترده با دیگر نرم‌افزارهای محبوب.

    در این مقاله، یاد می‌گیرید که چگونه یک وب سرور Apache را روی سرور مجازی Ubuntu خود نصب کنید.

    در ادامه بخوانید:

    • نحوه نصب Apache
    • نحوه تنظیم Firewall
    • بررسی وب‌سرور (Web Server)
    • مدیریت فرایند Apache
    • تنظیم هاست‌های مجازی
    • آشنایی با فایل‌ها و دایرکتوری‌های مهم Apache

    پیش‌نیازها

    پیش از شروع این مقاله، به یک سرور مجازی Ubuntu نیاز دارید که شامل یک کاربر غیر روت (non-root) با دسترسی‌های sudo و فایروالی فعال برای مسدود کردن پورت‌های غیرضروری تنظیم شده باشد. می‌توانید با دنبال کردن مقاله ما با عنوان تنظیمات اولیه سرور برای Ubuntu این موارد را انجام دهید.

    همچنین برای درک کامل این مقاله، توصیه می‌شود در ابتدا، به مطالعه مقاله‌های زیر، بپردازید:

    مرحله اول – نصب Apache

    Apache در repositoryهای پیش‌فرض Ubuntu موجود است، بنابراین می‌توانید آن را با استفاده از ابزارهای معمول مدیریت بسته‌ها نصب کنید. در ابتدا، فهرست پکیج‌های local را با اجرای دستور زیر، به‌روزرسانی کنید:

    sudo apt update  

    سپس، پکیج apache2 را نصب کنید:

    sudo apt install apache2  

    پس از تأیید نصب، ابزار apt، وب سرور Apache و تمام وابستگی‌های لازم را نصب می‌کند.

    مرحله دوم – تنظیم فایروال (Firewall)

    پیش از تست Apache، لازم است تنظیمات فایروال را تغییر دهید تا دسترسی خارجی به پورت‌های پیش‌فرض وب، فراهم شود. در واقع، باید فایروال UFW را برای محدود کردن دسترسی به سرور خود تنظیم کرده باشید.

    در حین نصب، Apache به‌طور خودکار در UFW ثبت می‌شود و چندین پروفایل کاربردی ارائه می‌دهد که می‌توان از آن‌ها برای فعال یا غیرفعال کردن دسترسی به Apache از طریق فایروال استفاده کرد. اکنون می‌توانید لیست پروفایل‌های UFW را با اجرای دستور زیر مشاهده کنید:

    sudo ufw app list

    خروجی این دستور مشابه زیر است:

    Available applications:
      Apache
      Apache Full
      Apache Secure
      OpenSSH

    همان‌طور که در خروجی مشخص است، سه پروفایل برای Apache موجود است:

    • Apache: این پروفایل فقط پورت 80 (ترافیک وب معمولی و بدون رمزنگاری) را باز می‌کند.
    • Apache Full: این پروفایل هر دو پورت 80 (ترافیک وب معمولی و بدون رمزنگاری) و 443 (ترافیک رمزنگاری شده با TLS/SSL) را باز می‌کند.
    • Apache Secure: این پروفایل فقط پورت 443 (ترافیک رمزنگاری شده با TLS/SSL) را باز می‌کند.

    توصیه می‌شود محدودترین پروفایلی را که با تنظیمات شما سازگار است فعال کنید. از آنجا که در این راهنما هنوز SSL را پیکربندی نکرده‌اید، تنها نیاز به اجازه دسترسی به پورت 80 دارید:

    sudo ufw allow 'Apache'

    برای تأیید تغییرات، وضعیت فایروال را بررسی کنید:

    sudo ufw status

    خروجی دستور فوق، لیستی از ترافیک HTTP مجاز را نشان می‌دهد:

    Status: active
    
    To                         Action      From
    --                         ------      ----
    OpenSSH                    ALLOW       Anywhere                  
    Apache                     ALLOW       Anywhere                
    OpenSSH (v6)               ALLOW       Anywhere (v6)             
    Apache (v6)                ALLOW       Anywhere (v6)

    همان‌طور که در خروجی مشخص است، پروفایل فعال شده و دسترسی به وب سرور Apache امکان‌پذیر شده است.

    مرحله سوم – بررسی وب سرور

    در پایان فرآیند نصب، Ubuntu به طور خودکار، Apache را راه‌اندازی می‌کند. بنابراین وب سرور هم‌اکنون فعال و در حال اجرا است. برای اطمینان از فعال بودن سرویس، دستور زیر را اجرا کنید:

    sudo systemctl status apache2

    خروجی دستور فوق، مشابه زیر است:

    ● apache2.service - The Apache HTTP Server
         Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
         Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago
           Docs: https://httpd.apache.org/docs/2.4/
       Main PID: 5089 (apache2)
          Tasks: 55 (limit: 1119)
         Memory: 4.8M
            CPU: 33ms
         CGroup: /system.slice/apache2.service
                 ├─5089 /usr/sbin/apache2 -k start
                 ├─5091 /usr/sbin/apache2 -k start
                 └─5092 /usr/sbin/apache2 -k start

    همان‌طور که در خروجی مشخص است، سرویس با موفقیت راه‌اندازی شده است. با این حال، بهترین روش برای تست این موضوع درخواست یک صفحه، از Apache است.

    برای تأیید عملکرد صحیح Apache، می‌توانید از طریق آدرس IP سرور خود به صفحه پیش‌فرض Apache دسترسی پیدا کنید. اگر آدرس IP سرور خود را نمی‌دانید، می‌توانید آن را از طریق خط فرمان به روش‌های مختلف پیدا کنید:

    hostname -I

    خروجی دستور فوق، شامل چند آدرس خواهد بود که با فاصله از هم جدا شده‌اند. هر یک را در مرورگر خود امتحان کنید تا بررسی کنید کدام‌یک کار می‌کند.

    راه دیگر پیدا کردن آدرس IP سرور مجازی‌تان، استفاده از ابزار icanhazip.com است. این وب‌سایت، آدرس IP عمومی سرور شما را که از مکانی دیگر در اینترنت خوانده شده است، نمایش می‌دهد:

    curl -4 icanhazip.com  

    پس از به دست آوردن آدرس IP سرور، آن را در نوار آدرس مرورگر وارد کنید:

    http://your_server_ip

    در این صورت، صفحه پیش‌فرض وب سرور Ubuntu Apache را مشاهده خواهید کرد که مشابه تصویر زیر است:

    این صفحه نشان می‌دهد که Apache در سرور مجازی شما، به درستی کار می‌کند. همچنین، این صفحه شامل یک‌سری اطلاعات پایه در مورد فایل‌ها و دایرکتوری‌های مهم Apache است.

    مرحله چهارم – مدیریت فرایند Apache

    اکنون که وب سرور شما راه‌اندازی شده است، بیایید برخی از دستورات مدیریتی پایه را با استفاده از systemctl بررسی کنیم. برای توقف وب سرور، می‌توانید دستور زیر را اجرا کنید:

    sudo systemctl stop apache2  

    برای راه‌اندازی مجدد وب سرور در صورت توقف، می‌توانید از دستور زیر استفاده کنید:

    sudo systemctl start apache2

    برای توقف و سپس راه‌اندازی دوباره سرویس، می‌توانید دستور زیر را اجرا کنید:

    sudo systemctl restart apache2  

    اگر که فقط یک‌سری تغییرات در تنظیمات Apache ایجاد کرده‌اید، می‌توانید Apache را بدون قطع اتصال، با دستور زیر، دوباره بارگذاری کنید:

    sudo systemctl reload apache2  

    به‌طور پیش‌فرض، Apache به‌گونه‌ای تنظیم شده است که هنگام بوت شدن سرور، به‌طور خودکار شروع به کار کند. اگر نمی‌خواهید این رفتار ادامه یابد، می‌توانید با دستور زیر آن را غیرفعال کنید:

    sudo systemctl disable apache2

    برای فعال کردن مجدد سرویس به‌گونه‌ای که هنگام بوت سرور به‌طور خودکار راه‌اندازی شود، از دستور زیر استفاده کنید:

    sudo systemctl enable apache2

    با اجرای دستور فوق، Apache به‌طور خودکار هنگام بوت شدن سرور راه‌اندازی خواهد شد.

    مرحله پنجم — تنظیم هاست‌های مجازی

    هنگام استفاده از وب سرور Apache، می‌توانید از هاست‌های مجازی (Virtual Hosts) آن نیز، استفاده کنید (Virtual Hostها مشابه بلاک‌های سرور در Nginx هستند) تا بیش از یک دامنه را در یک سرور مدیریت و جزئیات مربوط به پیکربندی را، کپسوله‌سازی کنید. در این بخش، یک دامنه به نام your_domain تنظیم خواهیم کرد، اما شما باید آن را با نام دامنه واقعی خود جایگزین کنید.

    Apache در Ubuntu به طور پیش‌فرض یک بلاک سرور فعال دارد که محتوا را از مسیر /var/www/html ارائه می‌دهد. این ساختار برای یک سایت مناسب است، اما اگر میزبان چندین سایت هستید، مدیریت آن دشوار خواهد شد. به جای تغییر مسیر /var/www/html، یک دایرکتوری برای دامنه your_domain خود ایجاد کنید:

    sudo mkdir /var/www/your_domain

    در ادامه، مالکیت دایرکتوری را به کاربری که در حال حاضر وارد سیستم شده است اختصاص دهید (با استفاده از متغیر $USER):

    sudo chown -R $USER:$USER /var/www/your_domain

    اگر مقادیر پیش‌فرض umask (که مجوزهای پیش‌فرض یک فایل را تعیین می‌کند) را تغییر نداده‌اید، مجوزهای دایرکتوری ریشه (/) وب شما به احتمال زیاد درست تنظیم شده است. با این حال، برای اطمینان از صحیح بودن تنظیم مجوزها، به طوری که، مالک (Owner) امکان خواندن، نوشتن، و اجرای فایل‌ها را داشته باشد و دیگران تنها امکان خواندن و اجرای فایل‌ها را داشته باشند؛ دستور زیر را اجرا کنید:

    sudo chmod -R 755 /var/www/your_domain

    سپس، با استفاده از nano یا ویرایشگر دلخواه‌تان، یک صفحه index.html ایجاد کنید:

    sudo nano /var/www/your_domain/index.html

    درون فایل، کد زیر را قرار دهید:

    <html>
        <head>
            <title>Welcome to Your_domain!</title>
        </head>
        <body>
            <h1>Success!  The your_domain virtual host is working!</h1>
        </body>
    </html>

    سپس فایل را ذخیره کرده و از آن خارج شوید. اگر که از nano استفاده می‌کنید؛ می‌توانید این کار را با فشردن دکمه‌های CTRL+X و سپس Y و در نهایت ENTER، انجام دهید.

    برای اینکه Apache بتواند این محتوا را ارائه دهد، لازم است یک فایل virtual host با دستورات مناسب ایجاد کنید. به جای تغییر فایل پیکربندی پیش‌فرض که در مسیر /etc/apache2/sites-available/000-default.conf قرار دارد، یک فایل جدید در مسیر /etc/apache2/sites-available/your_domain.conf بسازید:

    sudo nano /etc/apache2/sites-available/your_domain.conf
    

    بلوک پیکربندی زیر که مشابه virtual host پیش‌فرض است، اما طبق دایرکتوری و نام دامنه جدید شما به‌روزرسانی شده است را به فایل فوق، اضافه کنید:

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName your_domain
        ServerAlias www.your_domain
        DocumentRoot /var/www/your_domain
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

    توجه کنید که مقدار DocumentRoot باید برابر با دایرکتوری جدید ما باشد و مقدار ServerAdmin ایمیلی است که مدیر سایت your_domain به آن دسترسی دارد. همچنین، دو دستور جدید به فایل، اضافه شده است: ServerName، که دامنه اصلی را تعیین می‌کند و ServerAlias، که نام‌های اضافی را به دامنه اصلی متصل می‌کنند. فایل را ذخیره کرده و ببندید. حالا آن را با ابزار a2ensite فعال کنید:

    sudo a2ensite your_domain.conf

    سایت پیش‌فرض تعریف‌شده در 000-default.conf را غیرفعال کنید:

    sudo a2dissite 000-default.conf

    سپس پیکربندی را بررسی کنید تا از بروز خطاهای احتمالی جلوگیری شود:

    sudo apache2ctl configtest

    باید خروجی مشابه زیر را دریافت کنید:

    . . .
    Syntax OK

    برای اعمال تغییرات، Apache را مجدداً راه‌اندازی کنید:

    sudo systemctl restart apache2

    اکنون Apache دامنه شما را ارائه می‌دهد. می‌توانید با مراجعه به http://your_domain این موضوع را تست کنید، صفحه نهایی، باید مشابه تصویر زیر باشد:

    مرحله ششم – آشنایی با فایل‌ها و دایرکتوری‌های مهم Apache

    اکنون که یاد گرفتید چگونه سرویس Apache را مدیریت کنید، بهتر است چند دقیقه وقت بگذارید تا با چند دایرکتوری و فایل مهم آشنا شوید.

    محتوا (Content)

    /var/www/html: محتوای واقعی وب که به‌صورت پیش‌فرض فقط شامل صفحه Apache است که قبلاً مشاهده کردید، از دایرکتوری /var/www/html ارائه می‌شود. این مورد با تغییر فایل‌های پیکربندی Apache قابل تغییر است.

    پیکربندی سرور

    • /etc/apache2: دایرکتوری پیکربندی Apache. تمام فایل‌های پیکربندی Apache در اینجا قرار دارند.
    • /etc/apache2/apache2.conf: فایل اصلی پیکربندی Apache. این فایل برای اعمال تغییرات در تنظیمات کلی Apache به کار می‌رود و قابل تغییر است. این فایل، مسئول بارگذاری بسیاری از فایل‌های دیگر در دایرکتوری پیکربندی است.
    • /etc/apache2/ports.conf: این فایل پورت‌هایی را مشخص می‌کند که Apache روی آن‌ها گوش می‌دهد. به‌صورت پیش‌فرض، Apache روی پورت ۸۰ و همچنین روی پورت ۴۴۳ (در صورت فعال بودن ماژول پشتیبانی از SSL) گوش می‌دهد.
    • /etc/apache2/sites-available/: دایرکتوری که در آن virtual hosts مخصوص هر سایت ذخیره می‌شوند. Apache از فایل‌های پیکربندی موجود در این دایرکتوری استفاده نمی‌کند مگر اینکه به دایرکتوری sites-enabled لینک شوند. معمولاً تمام پیکربندی‌های مربوط به server block در این دایرکتوری انجام می‌شوند و سپس با دستور a2ensite فعال می‌شوند.
    • /etc/apache2/sites-enabled/: دایرکتوری که در آن virtual hostهای فعال‌شده، ذخیره می‌شوند. معمولاً این فایل‌ها با لینک شدن به فایل‌های پیکربندی موجود در sites-available ایجاد می‌شوند. Apache هنگام راه‌اندازی یا بارگذاری مجدد، فایل‌ها و لینک‌های موجود در این دایرکتوری را می‌خواند تا یک پیکربندی کامل ایجاد کند.
    • /etc/apache2/conf-available/ و /etc/apache2/conf-enabled/: این دایرکتوری‌ها همان رابطه‌ای را دارند که sites-available و sites-enabled با یکدیگر دارند، اما برای ذخیره قطعه کدهای مربوط به پیکربندی استفاده می‌شوند که یک virtual host محدود نمی‌شوند. فایل‌های موجود در conf-available را می‌توان با دستور a2enconf فعال و با دستور a2disconf غیرفعال کرد.
    • /etc/apache2/mods-available/ و /etc/apache2/mods-enabled/: این دایرکتوری‌ها به‌ترتیب شامل ماژول‌های در دسترس و فعال هستند. فایل‌هایی که به .load ختم می‌شوند، شامل قطعه کدهایی برای بارگذاری ماژول‌های خاص هستند، درحالی‌که فایل‌هایی که به .conf ختم می‌شوند شامل پیکربندی آن ماژول‌ها هستند. ماژول‌ها را می‌توان با دستورات a2enmod و a2dismod فعال و غیرفعال کرد.

    لاگ‌های سرور

    • /var/log/apache2/access.log: به‌صورت پیش‌فرض، هر درخواست به سرور وب شما، در این فایل لاگ، ثبت می‌شود، مگر اینکه Apache به‌گونه‌ای دیگر پیکربندی شده باشد.
    • /var/log/apache2/error.log: به‌صورت پیش‌فرض، تمام خطاها در این فایل ثبت می‌شوند. دستور LogLevel در پیکربندی Apache مشخص می‌کند که جزئیات مربوط به خطاها، چقدر باشد.

    نتیجه‌گیری

    اکنون که وب سرور شما نصب شده است، گزینه‌های متنوعی برای استفاده از آن دارید. این وب سرور امکان راه‌اندازی وب‌سایت‌های استاتیک (Static Websites) با استفاده از HTML و CSS و JavaScript و همچنین وب‌سایت‌های داینامیک (Dynamic Websites) را با زبان‌هایی مثل PHP و Python فراهم می‌کند. بسیاری از سیستم‌های مدیریت محتوا (CMS) مانند WordPress، Drupal و Joomla نیز به راحتی با Apache سازگار هستند. علاوه بر این، Apache برای میزبانی APIها و برنامه‌های تحت وب (Web Applications) در فریم‌ورک‌هایی مثل Laravel و Django گزینه مناسبی است. با استفاده از قابلیت‌های mod_proxy، می‌توان از آن به عنوان پروکسی سرور برای مسیریابی درخواست‌ها نیز بهره برد. این وب سرور همچنین در ترکیب با Apache Tomcat می‌تواند برنامه‌های تحت جاوا (Java Web Applications) را اجرا کند. توانایی میزبانی انواع وب‌سایت‌ها و ارائه عملکرد بالا، آن را به انتخابی ایده‌آل برای توسعه‌دهندگان تبدیل کرده است.

    سرور مجازی (VPS) لیارا یکی از بهترین گزینه‌ها برای میزبانی پروژه‌های مختلف وب و اپلیکیشن هستند. این سرورها با زیرساخت‌های قدرتمند و به‌روز، تجربه‌ای پایدار و سریع را برای کاربران فراهم می‌کنند. یکی از ویژگی‌های برجسته لیارا، سرعت بالای سرورهای آن است که برای وب‌سایت‌ها و اپلیکیشن‌های پرترافیک بسیار ایده‌آل است. همچنین، این سرورها از منابع اختصاصی بهره‌مند هستند که باعث افزایش عملکرد و کاهش زمان بارگذاری (Loading Time) می‌شود.

    از دیگر مزایای VPS لیارا، قیمت‌های مقرون‌به‌صرفه آن است که امکان استفاده از خدمات حرفه‌ای را با هزینه کم فراهم می‌کند. لیارا علاوه بر زیرساخت قدرتمند، از پشتیبانی فنی ۲۴/۷ برخوردار است که مشکلات کاربران را به سرعت حل می‌کند. با این ویژگی‌ها، لیارا انتخابی مطمئن برای کسب‌وکارهای کوچک، متوسط و حتی استارتاپ‌ها به شمار می‌رود.

    همچنین بخوانید: نحوه راه‌اندازی اولیه سرور مجازی با اوبونتو Ubuntu

    ســــــــــــــــــــــال‌هاست که هستیم

    ۶ سال در کنار شما تجربه جمع کردیم. تازه در ابتدای مسیر هستیم، مسیر ساخت آینده.

    sixth

    جمع‌مـــــــــــان، جمع است

    بیش از ۴۰ هزار توسعه‌دهنده و صاحبان کسب و کار در جمع ما هستند. جای شما خالی‌ست...

    usersnumberusers

    خدمات رایگان لیارا

    ۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

    ۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

    هاست رایگان برای دیتابیس‌هاست رایگان برای دیتابیس‌

    دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

    سرویس DNS رایگانسرویس DNS رایگان

    به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

    ۱۰۰ هزار تومان اعتبار اولیه۱۰۰ هزار تومان اعتبار اولیه

    بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

    ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماهارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

    در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید. (به‌همراه دسترسی SMTP)

    هاست رایگان برای انواع وبسایتهاست رایگان برای انواع وبسایت

    تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

    همراه شما هستیم

    در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
    تلفن واحد فروش:
    ۰۲۵-۳۳۵۵۷۶۱۹ (روزهای کاری ۹ الی ۱۷)
    call
    تلفن واحد فروش: ۳۳۵۵۷۶۱۹-۰۲۵ (روزهای کاری ۹ الی ۱۷)