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 অ্যাপ্লিকেশন নিরবচ্ছিন্নভাবে চলতে থাকবে।
Read more