اودوو 17 بهبودهای عملکردی بیشتری، یک رابط کاربری ارتقاء یافته و قابلیتهای جدیدی را ارائه میدهد. برای سیستم مدیریت پایگاه داده اودوو 17، PostgreSQL و پایتون نسخه 3.10 مورد نیاز هستند. این مقاله به شما فرآیند نصب اودوو 17 بر روی سرور Ubuntu 20.04 LTS را به صورت مرحله به مرحله آموزش میدهد.
مرحله 1: ورود به سرور اوبونتو از طریق SSH
ssh username@IP_Address -p Port_number
از طریق SSH به سرور خود متصل شوید.
مرحله 2: بهروزرسانی سرور
برای بهروزرسانی سیستم عامل و بستههای موجود در سرور اوبونتو، دستور زیر را اجرا کنید:
sudo apt-get update
sudo apt-get upgrade
مرحله 3: امنسازی سرور
برای افزایش امنیت سرور خود، دستور زیر را برای نصب OpenSSH و Fail2ban اجرا کنید:
sudo apt-get install openssh-server fail2ban
استفاده از Fail2ban میتواند از حملات SSH جلوگیری کند.
مرحله 4: نصب بستهها و کتابخانهها
ابتدا بستههای پایتون مورد نیاز برای Odoo را نصب کنید و pip3 را تنظیم کنید:
sudo apt-get install -y python3-pip
برای نصب وابستگیهای وب و بستههای دیگر، از دستورات زیر استفاده کنید. مطمئن شوید که تمامی بستهها بدون مشکل نصب شده باشند:
sudo apt-get install python-dev python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev
سپس npm را نصب کنید:
sudo apt-get install -y npm
ایجاد یک لینک نمادین برای nodejs:
sudo ln -s /usr/bin/nodejs /usr/bin/node
نصب less و افزونههای مربوطه:
sudo npm install -g less less-plugin-clean-css
و نصب node-less:
sudo apt-get install -y node-less
مرحله 5: راهاندازی سرور پایگاه داده
همانطور که قبلاً اشاره شد، PostgreSQL سرور پایگاه داده مورد استفاده در Odoo است. برای نصب PostgreSQL از دستور زیر استفاده کنید:
sudo apt-get install postgresql
سپس پایگاه داده را تنظیم و نصب کنید. یک کاربر برای مدیریت پایگاه داده ایجاد کنید:
sudo su - postgres createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo17
کاربر و رمز عبور ایجاد شده برای فایل پیکربندی Odoo نیاز خواهد بود. PostgreSQL از یک کاربر سیستم مجزا برای انجام وظایف استفاده میکند. برای تغییر بین کاربران، دستور زیر را اجرا کنید:
sudo su - postgres
سپس یک کاربر پایگاه داده برای Odoo 17 ایجاد کنید:
psql ALTER USER odoo17 WITH SUPERUSER;
این دستور به کاربر حقوق دسترسی Superuser میدهد. سپس از Postgres و PSQL خارج شوید:
\q exit
مرحله 6: ایجاد یک کاربر سیستم
برای امنیت و اجرای وظایف Odoo، یک کاربر سیستم بسازید. این کاربر دسترسی محدودی به فایلها و دایرکتوریهای Odoo خواهد داشت:
sudo adduser --system --home=/opt/odoo17 --group odoo17
مرحله 7: دریافت نسخه Odoo 17 از Git
در این مرحله باید فایل سورس Odoo را روی سرور آپلود کنید. ابتدا git را روی سرور نصب کنید:
sudo apt-get install git
سپس با تغییر کاربر سیستم به Odoo17، فایلها را به دایرکتوری خانگی او دانلود کنید:
sudo su - odoo17 -s /bin/bash
دستور زیر سورس Odoo را از گیت در دایرکتوری کاربر فعلی، یعنی /opt/odoo، کلون میکند:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 --single-branch .
پس از پایان عملیات، از کاربر Odoo خارج شوید:
exit
مرحله 8: نصب پکیجهای مورد نیاز پایتون
برای نصب پکیجهای پایتون مورد نیاز Odoo، از دستور زیر استفاده کنید:
sudo pip3 install -r /opt/odoo/requirements.txt
مرحله 9: نصب Wkhtmltopdf
برای چاپ گزارشها از Odoo به صورت فایلهای PDF، به Wkhtmltopdf نیاز دارید که گزارشها را از HTML به PDF تبدیل میکند. برای نصب آن، دستورات زیر را اجرا کنید:
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb sudo apt install -f
مرحله 10: تنظیم فایل پیکربندی
Odoo برای کارکرد به اطلاعاتی مانند کاربر پایگاه داده، رمز عبور و مکان افزونهها نیاز دارد. ابتدا یک فایل پیکربندی Odoo ایجاد کنید. یک فایل نمونه پیکربندی در پوشه Odoo موجود است که میتوانید آن را کپی کرده و در مسیر مناسب قرار دهید. برای کپی کردن فایل پیکربندی:
sudo cp /opt/odoo17/debian/odoo.conf /etc/odoo17.conf sudo nano /etc/odoo17.conf
تنظیمات زیر را در فایل پیکربندی اعمال کنید:
[options]
; This is the password that allows database operations: admin_passwd = admin db_host = False db_port = False db_user = odoo17 db_password = False addons_path = /opt/odoo17/addons logfile = /var/log/odoo/odoo17.log
سپس مجوزهای دسترسی کاربر سیستم Odoo را به فایل پیکربندی بدهید:
sudo chown odoo17: /etc/odoo17.conf sudo chmod 640 /etc/odoo17.conf
برای ایجاد دایرکتوری گزارش Odoo و تنظیم مجوزهای آن:
sudo mkdir /var/log/odoo sudo chown odoo17:root /var/log/odoo
مرحله 11: فایل سرویس Odoo
برای اجرای Odoo به عنوان یک سرویس، باید یک فایل سرویس ایجاد کنیم. فایل جدید را در مسیر /etc/systemd/system/odoo17.service ایجاد کنید:
sudo nano /etc/systemd/system/odoo17.service
سپس محتوای زیر را در فایل سرویس قرار دهید:
[Unit] Description=Odoo17 Documentation=http://www.odoo.com [Service] # Ubuntu/Debian convention: Type=simple User=odoo17 ExecStart=/opt/odoo17/odoo-bin -c /etc/odoo17.conf [Install] WantedBy=default.target
پس از ذخیره، مجوزهای فایل سرویس را تنظیم کنید:
bashCopy codesudo chmod 755 /etc/systemd/system/odoo17.service sudo chown root: /etc/systemd/system/odoo17.service
مرحله 12: اجرای Odoo 17
برای راهاندازی Odoo، از دستور زیر استفاده کنید:
bashCopy codesudo systemctl start odoo17.service
برای بررسی وضعیت سرویس Odoo، از این دستور استفاده کنید:
bashCopy codesudo systemctl status odoo17.service
اکنون میتوانید با وارد کردن آدرس زیر به Odoo دسترسی پیدا کنید، که شما را به صفحه ایجاد پایگاه داده هدایت میکند:
plaintextCopy codehttp://<your_domain_or_IP_address>:8069
بررسی لاگهای Odoo
در صورت بروز مشکل در نصب یا برای مشاهده لاگهای Odoo در زمان واقعی، میتوانید از دستور زیر استفاده کنید:
bashCopy codesudo tail -f /var/log/odoo/odoo.log
برای تنظیم سرویس Odoo جهت اجرای خودکار پس از ریاستارت سرور:
bashCopy codesudo systemctl enable odoo17.service
اگر تغییری در افزونهها ایجاد کردید و میخواهید این تغییرات در اجرای Odoo اعمال شوند، سرویس Odoo را ریاستارت کنید:
sudo systemctl restart odoo17.service
نکات مهم برای دیپلوی Odoo 17 در محیط تولید
- استفاده از Reverse Proxy (مانند Nginx):
برای بهینهسازی کارایی و مدیریت بهتر ترافیک، پیشنهاد میشود از یک سرور وب مانند Nginx به عنوان Reverse Proxy استفاده کنید. این کار باعث میشود درخواستهای ورودی به Odoo مدیریت شوند و ترافیک سنگین به طور مؤثرتر هندل شود.
میتوانید Odoo را پشت یک Nginx راهاندازی کنید و Nginx را بهگونهای پیکربندی کنید که درخواستهای HTTPS را به Odoo فوروارد کند. این کار به بهبود امنیت، استفاده از گواهینامه SSL و مدیریت بهتر اتصالها کمک میکند.
برای نصب Nginx:sudo apt install nginx
سپس فایل تنظیمات Nginx را برای Odoo ایجاد کنید. - فعالسازی SSL (با استفاده از Let’s Encrypt):
استفاده از HTTPS به جای HTTP به شدت توصیه میشود تا امنیت دادههای کاربران تضمین شود. شما میتوانید از گواهینامههای SSL رایگان توسط Let’s Encrypt استفاده کنید. برای نصب Let’s Encrypt:
sudo apt install certbot python3-certbot-nginx
سپس با استفاده از دستور زیر، SSL را برای دامنه Odoo فعال کنید:sudo certbot --nginx -d your_domain
- بهینهسازی عملکرد سرور PostgreSQL:
در محیطهای تولیدی با بار زیاد، بهینهسازی سرور پایگاه داده PostgreSQL اهمیت ویژهای دارد. شما میتوانید پارامترهای PostgreSQL را برای تنظیمات بهتر عملکرد، مثل افزایش shared_buffers و work_mem، بر اساس منابع سرور تنظیم کنید.
نمونهای از فایل تنظیمات PostgreSQL:sudo nano /etc/postgresql/@version_of_postgres/main/postgresql.conf
سپس مقادیر مناسب برای پارامترها را تغییر دهید. - تنظیمات لاگگیری:
در محیط تولیدی، تنظیمات لاگگیری دقیق به شما کمک میکند مشکلات را سریعتر پیدا و رفع کنید. اطمینان حاصل کنید که لاگهای Odoo در فایل مناسب ذخیره شوند و فضای لاگها بررسی و مدیریت شود. همچنین، برای جلوگیری از پر شدن فضای سرور، از logrotate برای مدیریت و چرخش لاگها استفاده کنید.
برای نصب logrotate:sudo apt install logrotate
- استفاده از Workers:
برای بهبود کارایی Odoo در حالت تولید، از workers استفاده کنید. کارگران (Workers) فرآیندهای جداگانهای هستند که درخواستهای همزمان بیشتری را پردازش میکنند. تعداد کارگران بستگی به منابع سختافزاری سرور دارد. توصیه میشود تعداد کارگران را بر اساس فرمول زیر تعیین کنید:
Workers = (CPU Cores x 2) + 1
برای مثال، اگر سرور شما 4 هسته CPU دارد، میتوانید 9 worker تنظیم کنید.
در فایل پیکربندی Odoo، خط زیر را اضافه کنید:workers = 9
- استفاده از Redis برای Caching:
برای بهبود عملکرد و کاهش بار روی پایگاه داده، پیشنهاد میشود Redis را برای ذخیرهسازی کش (Caching) تنظیم کنید. Redis به شما کمک میکند که درخواستهای مکرر به پایگاه داده کاهش یابد و سرعت بارگذاری صفحات افزایش یابد.
برای نصب Redis:sudo apt install redis-server
سپس Redis را در تنظیمات Odoo فعال کنید:[options] longpolling_port = 8072 proxy_mode = True dbfilter = ^%h$
- تنظیم پشتیبانگیری خودکار (Backup): همواره تهیه نسخه پشتیبان منظم از پایگاه داده و فایلهای Odoo اهمیت دارد. شما میتوانید اسکریپتهای پشتیبانگیری خودکار را تنظیم کنید تا مطمئن شوید در صورت بروز مشکل، دادهها و اطلاعات حیاتی از دست نمیروند. از ابزارهایی مانند pg_dump برای تهیه نسخه پشتیبان از پایگاه داده و rsync برای پشتیبانگیری از فایلهای سیستم استفاده کنید.
نمونه اسکریپت پشتیبانگیری از پایگاه داده PostgreSQL:
bashCopy code#!/bin/bash backup_dir="/backup/db" date=$(date +%F) filename="odoo_backup_$date.sql" pg_dump odoo_db > "$backup_dir/$filename"
با رعایت این نکات و تنظیمات، میتوانید یک استقرار مطمئن، امن و کارآمد برای Odoo در محیط تولید ایجاد کنید.