CakePHP একটি PHP ফ্রেমওয়ার্ক যা Apache বা Nginx সার্ভারের সাথে সহজেই কনফিগার করা যায়। এর জন্য কিছু মৌলিক কনফিগারেশন প্রয়োজন, বিশেষ করে URL রাইটিং এবং ডিরেক্টরি পারমিশন। নিচে Apache এবং Nginx সার্ভারের জন্য CakePHP কনফিগারেশন পদ্ধতি আলোচনা করা হয়েছে।
Apache সার্ভারের সাথে CakePHP কনফিগারেশন
১. Apache এর জন্য .htaccess ফাইল
CakePHP স্বয়ংক্রিয়ভাবে .htaccess ফাইল ব্যবহার করে URL রাইটিং এবং রিডাইরেকশন পরিচালনা করে। CakePHP ইনস্টল করার সময় এই ফাইলগুলি তৈরি হয়ে যায়। আপনাকে শুধুমাত্র নিশ্চিত করতে হবে যে Apache এর mod_rewrite সক্রিয় আছে।
২. mod_rewrite সক্রিয় করা
Apache সার্ভারে mod_rewrite চালু করা প্রয়োজন, যাতে CakePHP এর রাউটিং সিস্টেম কাজ করতে পারে। এটি সক্রিয় করতে নিচের পদক্ষেপগুলি অনুসরণ করুন:
- Apache কনফিগারেশন ফাইল (যেমন
httpd.conf) অথবা ভ্যানডর ফোল্ডার (যেমন/etc/apache2/apache2.confবা/etc/httpd/httpd.conf) খুলুন। mod_rewriteমডিউলটি সক্রিয় করতে এই লাইনটি খুঁজুন এবং কমেন্ট সরিয়ে দিন:LoadModule rewrite_module modules/mod_rewrite.soএরপর,
.htaccessফাইলের মাধ্যমে URL রাইটিং এর অনুমতি দিতে, আপনার Apache কনফিগারেশন ফাইলে নিচের সেটিংটি যোগ করুন:<Directory /path/to/your/cakephp/app> AllowOverride All </Directory>Apache সার্ভিস পুনরায় রিস্টার্ট করুন:
Linux (Ubuntu/Debian):
sudo service apache2 restartCentOS/RHEL:
sudo systemctl restart httpd
৩. CakePHP ডিরেক্টরি পারমিশন
CakePHP এর কিছু ফোল্ডারের জন্য সঠিক পারমিশন থাকতে হবে, যাতে এটি সঠিকভাবে কাজ করতে পারে। বিশেষত, tmp এবং logs ডিরেক্টরির জন্য সঠিক পারমিশন দিতে হবে। এটি করতে নিচের কমান্ডগুলি ব্যবহার করুন:
chmod -R 777 /path/to/your/cakephp/app/tmp
chmod -R 777 /path/to/your/cakephp/app/logs
৪. Apache কনফিগারেশন (Optional)
আপনার CakePHP অ্যাপ্লিকেশনটি Apache এর মাধ্যমে রান করানোর জন্য আপনি একটি সাইট কনফিগারেশন ফাইল তৈরি করতে পারেন, যেটি /etc/apache2/sites-available অথবা /etc/httpd/conf.d ফোল্ডারে রাখতে হবে।
উদাহরণ:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /path/to/your/cakephp/app/webroot
ServerName yourdomain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /path/to/your/cakephp/app/webroot>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
এর পর, সাইটটি সক্রিয় করতে:
sudo a2ensite your-site.conf
sudo systemctl reload apache2
Nginx সার্ভারের সাথে CakePHP কনফিগারেশন
Nginx CakePHP এর জন্য বেশ জনপ্রিয় একটি ওয়েব সার্ভার, এবং এটি Apache এর মতো .htaccess ফাইল ব্যবহার করে না। Nginx এর জন্য URL রাইটিং কনফিগারেশন nginx.conf ফাইলে করতে হয়।
১. Nginx কনফিগারেশন ফাইল
Nginx সার্ভারের কনফিগারেশন ফাইলটি সাধারণত /etc/nginx/nginx.conf বা /etc/nginx/sites-available/ ডিরেক্টরির মধ্যে থাকে।
আপনার Nginx কনফিগারেশন ফাইলে CakePHP এর জন্য রাউটিং সেটআপ করতে নিচের কোডটি ব্যবহার করুন:
server {
listen 80;
server_name yourdomain.com;
root /path/to/your/cakephp/app/webroot;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ ^/index.php {
fastcgi_pass 127.0.0.1:9000; # PHP-FPM এর পোর্ট
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # PHP-FPM এর পোর্ট
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_log /var/log/nginx/cakephp_error.log;
access_log /var/log/nginx/cakephp_access.log;
}
২. PHP-FPM কনফিগারেশন
Nginx সাধারণত PHP ফাইলগুলি প্রক্রিয়া করতে PHP-FPM (FastCGI Process Manager) ব্যবহার করে। PHP-FPM সঠিকভাবে কনফিগার করা না থাকলে CakePHP সঠিকভাবে কাজ করবে না।
PHP-FPM ইনস্টল করা না থাকলে, এটি ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
Ubuntu/Debian:
sudo apt-get install php-fpmCentOS/RHEL:
sudo yum install php-fpmনিশ্চিত করুন যে PHP-FPM সার্ভিস চালু আছে:
Ubuntu/Debian:
sudo service php7.x-fpm startCentOS/RHEL:
sudo systemctl start php-fpm
৩. Nginx এবং PHP-FPM পুনরায় চালু করা
কনফিগারেশন ফাইল আপডেট করার পর, Nginx এবং PHP-FPM সার্ভিস পুনরায় রিস্টার্ট করতে হবে:
sudo systemctl restart nginx
sudo systemctl restart php7.x-fpm
৪. CakePHP ডিরেক্টরি পারমিশন
Nginx সার্ভারের জন্যও CakePHP এর tmp এবং logs ডিরেক্টরিতে সঠিক পারমিশন সেট করা প্রয়োজন:
chmod -R 777 /path/to/your/cakephp/app/tmp
chmod -R 777 /path/to/your/cakephp/app/logs
CakePHP এর সাথে Apache বা Nginx সার্ভার কনফিগারেশন খুবই সহজ, তবে কিছু গুরুত্বপূর্ণ পদক্ষেপ অনুসরণ করতে হয় যেমন mod_rewrite এবং fastcgi এর ব্যবহার, .htaccess অথবা Nginx কনফিগারেশন ফাইলের মাধ্যমে URL রাইটিং। এছাড়াও, সঠিক ডিরেক্টরি পারমিশন নিশ্চিত করা প্রয়োজন যাতে CakePHP সঠিকভাবে কাজ করতে পারে। Apache অথবা Nginx এর মাধ্যমে CakePHP অ্যাপ্লিকেশন ডিপ্লয় করা হলে, আপনি স্কেলেবল, উচ্চ পারফরম্যান্স ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Read more