Server Configuration (Apache/Nginx)

ডিপ্লয়মেন্ট এবং Production Setup - কেকপিএইচপি (CakePHP) - Web Development

261

CakePHP অ্যাপ্লিকেশন চালানোর জন্য সঠিক Server Configuration প্রয়োজন। সাধারণত Apache অথবা Nginx সার্ভার ব্যবহার করা হয়, এবং এই সার্ভারগুলোর সঠিক কনফিগারেশন করলে CakePHP অ্যাপ্লিকেশনগুলো ভালোভাবে চলতে পারে। এখানে আমরা Apache এবং Nginx সার্ভারের জন্য CakePHP কনফিগারেশন নিয়ে আলোচনা করব।


Apache সার্ভারের কনফিগারেশন

Apache একটি জনপ্রিয় ওয়েব সার্ভার যা CakePHP অ্যাপ্লিকেশন হোস্ট করার জন্য খুবই উপযুক্ত। CakePHP অ্যাপ্লিকেশন চালানোর জন্য Apache সার্ভারের কনফিগারেশন করার সময় কিছু গুরুত্বপূর্ণ প্যারামিটার ঠিকভাবে সেট করতে হয়।

১. Apache সার্ভারের প্রাথমিক কনফিগারেশন

আপনি যদি CakePHP অ্যাপ্লিকেশন Apache তে হোস্ট করতে চান, তাহলে প্রথমে আপনার Apache সার্ভারের কিছু সেটিংস কনফিগার করতে হবে।

প্রথমে mod_rewrite মডিউলটি সক্রিয় করতে হবে, কারণ CakePHP URL রাইটিং এর জন্য mod_rewrite ব্যবহার করে।

sudo a2enmod rewrite

তারপর, Apache সার্ভারের কনফিগারেশন ফাইল (যেমন /etc/apache2/sites-available/000-default.conf) এ কিছু পরিবর্তন করতে হবে। নিচে একটি সাধারণ কনফিগারেশন উদাহরণ দেয়া হলো।

২. Apache কনফিগারেশন ফাইল

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/myapp/webroot
    ServerName myapp.local

    <Directory /var/www/html/myapp/webroot>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

এখানে:

  • DocumentRoot: CakePHP অ্যাপ্লিকেশনের webroot ডিরেক্টরির পাথ।
  • AllowOverride All: .htaccess ফাইল ব্যবহার করার অনুমতি দেয়।
  • Require all granted: সমস্ত ইউজারের জন্য অ্যাক্সেস অনুমোদন করে।

৩. .htaccess ফাইল কনফিগারেশন

CakePHP তে URL রি-রাইট করার জন্য .htaccess ফাইল ব্যবহার করা হয়। এই ফাইলটি সাধারণত CakePHP প্রজেক্টের মধ্যে অন্তর্ভুক্ত থাকে। যদি .htaccess ফাইলটি না থাকে, তাহলে নিচে দেয়া কনফিগারেশনটি আপনার webroot ডিরেক্টরিতে যোগ করুন।

RewriteEngine On
RewriteRule ^$ index.php [L]
RewriteRule (.*) index.php/$1 [L]

এটি সমস্ত রিকোয়েস্টকে index.php এর মাধ্যমে পাস করবে এবং URL রি-রাইটিংয়ের মাধ্যমে CakePHP অ্যাপ্লিকেশন পরিচালনা করবে।

৪. Apache সার্ভিস রিস্টার্ট করা

আপনার কনফিগারেশন ফাইল আপডেট করার পর, Apache সার্ভিসটি রিস্টার্ট করুন।

sudo systemctl restart apache2

এখন আপনার CakePHP অ্যাপ্লিকেশন Apache সার্ভারে সফলভাবে রান করবে।


Nginx সার্ভারের কনফিগারেশন

Nginx একটি হালকা ও দ্রুত ওয়েব সার্ভার, যা অনেক CakePHP অ্যাপ্লিকেশনে ব্যবহার হয়। Nginx তে CakePHP অ্যাপ্লিকেশন হোস্ট করার জন্য কিছু নির্দিষ্ট কনফিগারেশন প্রয়োজন।

১. Nginx সার্ভারের কনফিগারেশন

নিচে একটি সাধারণ Nginx কনফিগারেশন উদাহরণ দেয়া হলো।

server {
    listen 80;
    server_name myapp.local;

    root /var/www/html/myapp/webroot;

    index index.php;

    access_log /var/log/nginx/myapp.access.log;
    error_log /var/log/nginx/myapp.error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^/index.php(/|$) {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/myapp/webroot$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/myapp/webroot$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

এখানে:

  • root: CakePHP অ্যাপ্লিকেশনের webroot ডিরেক্টরির পাথ।
  • try_files $uri $uri/ /index.php?$query_string: এই লাইনটি Nginx কে বলে, যদি রিকোয়েস্ট করা ফাইল পাওয়া না যায়, তাহলে সেটি index.php এ পাস করতে।

২. Nginx সার্ভিস রিস্টার্ট করা

কনফিগারেশন ফাইল আপডেট করার পর, Nginx সার্ভিসটি রিস্টার্ট করুন।

sudo systemctl restart nginx

এখন আপনার CakePHP অ্যাপ্লিকেশন Nginx সার্ভারে সফলভাবে চালু হবে।


সঠিক PHP কনফিগারেশন

CakePHP এর সঠিক কার্যকারিতার জন্য PHP এর কিছু কনফিগারেশন সঠিকভাবে সেট করা প্রয়োজন। বিশেষত:

  • memory_limit: এটি CakePHP এর জটিল অ্যাপ্লিকেশনের জন্য যথেষ্ট বড় হতে হবে (যেমন 256M বা 512M)।
  • max_execution_time: এটি বেশি সময় ধরে চলা স্ক্রিপ্টের জন্য বড় হতে হবে (যেমন 300 সেকেন্ড)।
  • upload_max_filesize এবং post_max_size: ফাইল আপলোডের জন্য এই সেটিংগুলো যথেষ্ট বড় হতে হবে।

php.ini ফাইলে এই সেটিংগুলো আপডেট করুন:

memory_limit = 512M
max_execution_time = 300
upload_max_filesize = 10M
post_max_size = 20M

CakePHP অ্যাপ্লিকেশন সঠিকভাবে চালানোর জন্য Apache বা Nginx সার্ভারের কনফিগারেশন অত্যন্ত গুরুত্বপূর্ণ। Apache তে mod_rewrite সক্রিয় করে .htaccess ফাইলের মাধ্যমে URL রি-রাইট করা হয়, আর Nginx তে try_files নির্দেশনা ব্যবহার করে রিকোয়েস্ট গুলো index.php তে পাস করা হয়। এছাড়া, PHP কনফিগারেশনও অ্যাপ্লিকেশনের পারফরম্যান্সে গুরুত্বপূর্ণ ভূমিকা রাখে। সঠিক কনফিগারেশনের মাধ্যমে, আপনার CakePHP অ্যাপ্লিকেশন নিরবচ্ছিন্নভাবে চলতে থাকবে।

Content added By
Promotion

Are you sure to start over?

Loading...