021-91008989

نوشته ها


با سلام

شاید شما هم در برخی مواقع با ارور DBException: FATAL: database is not accepting commands to avoid wraparound data loss in database “postgres” به هنگام استارت IBSng مواجه شده اید، حل این مشکل بسیار ساده میباشد ولی گاهاً کاربران را بسیار اذیت میکند، طی پرسش ها و در خواست هایی که برای حل این مشکل داشتیم بر آن شدم تا راه حل ساده این مشکل را در این پست درج کنم

ابتدا شما سرویس postgresql را بایستی غیر فعال کنید با دستور زیر service postgresql stop

سپس برای ادامه کار دستور su postgres  را وارد نمایید و دستورات زیر را به ترتیت وارد نمایید

touch /tmp/fix.sql

echo “VACUUM FULL;” > /tmp/fix.sql

postgres -D /var/lib/pgsql/data YOUR_DATABASE_NAME < /tmp/fix.sql

به جای  YOUR_DATABASE_NAME اسم دیتابیسی که مشکل داره و به هنگام ارور بالا اون رو مینویسه اینجا بنویسید.

سپس از postgresql با دستور exit خارج شده و سرویس فوق را ریستارت نمایید service postgresql restart

در صورتی که با اجرای دستورات بالا بازهم مشکلی در اجرای IBSng داشتید با ما در ارتباط باشید.


FTP مخفف عبارت File Transfer Protocol  پروتکلی استاندارد جهت انتقال فایل بین کامپیوترهای مختلف

می باشد. توسط این پروتکل و نرم افزارهای اف تی سمت کاربر ، مانند FileZilla ، CuteFTP و … می توانید

فایل های خود را بدون استفاده از کنترل پنل به هاست خود انتقال دهید.

درصورتیکه مدیریت سایت را در اختیار چند نفر قرار داده اید و هر کدام احتیاج به آپلود فایل روی هاست دارند

می توانید از اکانت اف تی پی برای محدود کردن سطح دسترسی هر مدیر استفاده کنید به این صورت که

برای هر یک از آنها یک اکانت  اف تی پی ایجاد کنید تا بتوانند بصورت همزمان و بدون ایجاد اختلال برای یکدیگر

به فایل های سرور دسترسی داشته باشند.

برای دیدن نحوه ایجادو…به ادامه مطلب بروید…

بیشتر بخوانید


آپلود فایل‌ها

اگر بخواهید که جوملا را بر روی Cpanel نصب نمایید باید آخرین نسخه جوملا فارسی تیم جوملا فارسی را از سایت جوملا فارسی دانلود کرده و بر روی هاست خود از طریق FTP یا File Manager در Cpanel آپلود نمایید.

Cpanel install joomla1.jpg

 

برای دیدن ادامه آموزش به ادامه مطلب بروید…

بیشتر بخوانید


شاید شما هم خیلی مواقع نیاز داشته باشید تا بدانید که در سرور سی پنل شما چه مقدار ایمیل Queue شده است اما اتمام لایسنس سی پنل این امکان را از شما سلب نموده است؟

برای مشاهده ایمیل های در صف از طریق ssh از دستور زیر میتوانید استفاده کنید:

exim -bp | exiqsumm

دستور فوق تعداد دامینهایی که به آنها ایمیل در حال ارسال است را به همراه تعداد ایمیل ها و تعداد کل صف ایمیل ها نمایش میدهد

در صورت نیاز به سرور مخصوص ایمیل مارکتینگ با  ما تماس بگیرید

 


یکی از بزرگ ترین مشکلات مشتریانی که از هاست اشتراکی و میزبانی وب لینوکس به سرور مجازی یا سرور اختصاصی کوچ میکنند مشکل ریستور کردن فایل های sql بزرگ و حجیم در MySQL سرور لینوکس است . برنامه هایی مانند phpmyadmin یا MySQL  Dumper قادر به ذخیره سازی و ریستور کردن و بازیابی دیتابیس های خیلی بزرگ و حجیم نیستند و در صورت انتقال و ریستور کردن با آن ها همیشه احتمال و خطر بازیابی ناقص اطلاعات و آسیب دیدین دیتابیس وجود دارد .

  MySQL-Backup-and-Restore

از طرفی همیشه امکان ریستور کردن بکاپ کلی یا Full Backup برای خریدار سرور مجازی یا سرور اختصاصی امکان پذیر نیست . مثلا فول بکاپ توسط کنترل پنل cPanel ایجاد شده است ولی سرور مقصد از کنترل پنل دایرکت ادمین یا کلوکسو استفاده میکند . در این وضعیت هیچ راهی نیست جز استفاده از دستورات و کامند های ssh در لینوکس . در صورت استفاده صحیح از این کامند ها و دستورات برای بازیابی و ریستور کردن فایل های MySQL و دیتابیس ، قادر خواهید بود به راحتی فایل های MySQL با پسوند .sql و حجم های بالای ۱۵ و ۲۰ گیگ را در کمترین زمان ممکن و بدون خطا و آسیب دیدن به اطلاعات بازیابی و ریستور کنید .

قبل از انجام ریستور کردن دیتابیس توسط دستورات لینوکس در محیط ssh ابتدا باید اندازه پارامتر max_allowed_packet را بر اساس حجم دیتابیس مورد نظر تنظیم نمایید . برای ایجاد تغییرات در این پارامتر باید فایل my.cnf در مسیر /etc/ را ادیت کرده و میزان مورد نظر خود را وارد نمایید . سپس فایل را ذخیره کرده و سرویس MySQL را ریست کنید .

حالا وارد کنترل پنل وب هاستینگ سرور خود شوید و یک دیتابیس جدید ایجاد کنید . سپس نام کاربری و کلمه عبور این دیتابیس جدید را ساخته و به آن اختصاص دهید . حالا از طریق ssh وارد فولدر و پوشه ای شوید که فایل .sql در آن واقع شده است . با دستورات زیر اقدام به بازیابی و ریستور کردن این فایل .sql داخل دیتابیس MySQL ساخته شده در کنترل پنل وب هاستینگ خود نمایید :

mysql -u dbuser -p  dbname < db.sql

با زدن کلید Enter سیستم عامل از شما رمز و کلمه عبور دیتابیس ساخته شده در کنترل پنل را میخواهد که با وارد کردن آن عملیات بازیابی و ریستور کردن دیتابیس آغاز میگردد . اگر به کلمه عبور MySQL Root Password دسترسی دارید میتوانید بدون نیاز به کلمه عبور و نام کاربری دیتابیس اقدام به بازیابی و ریستور کردن آن با یوزر root پایگاه داده MySQL نمایید :

mysql -u root -p  dbname < db.sql


اسکریپت phpmyadmin معروف ترین برنامه مدیریت تحت وب دیتابیس های مبتنی بر MySQL است که تقریبا تمام کنترل پنل های وب هاستینگ معروف لینوکس ، از آن به عنوان اولین یا تنها برنامه مدیریت دیتابیس های MySQL استفاده میکنند .  ریستور کردن و ایمپورت دیتابیس های بزرگ MySQL  به کمک زبان php و به واسطه اسکریپت phpmyadmin به هیچ عنوان پیشنهاد نمیشود (به دلیل احتمال بروز خطا با ایمپورت ناقص دیتابیس) ، بنا بر این فقط زمانی اقدام به انجام این کار کنید که حجم دیتابیس شما حد اکثر ۲۰ یا ۳۰ مگابایت و سرعت کانکشن و اینترنت شما نیز حد اقل ۵۱۲ است . در غیر این صورت احتمال ایمپورت ناقص و خراب شدن دیتابیس بسیار زیاد است .

phpmyadmin_import

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

در بیشتر سرور های میزبانی وب مبتنی بر کنترل پنل های وب هاستینگ سی پنل و دایرکت ادمین ، حد اکثر حجم مجاز آپلود فایل توسط php به صورت پیش فرض روی ۸ مگابایت محدود شده است . بنا بر این در صورت ایمپورت کردن و آپلود کردن دیتابیس های بزرگ تر از ۸ مگابایت با پیام های خطایی مشابه زیر مواجه خواهید شد :

You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.

the file size exceeded the maximum size permitted by your PHP configuration

برای حل این مشکل و رفع محدودیت حجم آپلود و ایمپورت دیتابیس های MySQL کافی است تا فایل php.ini را ویرایش کرده و مقادیر زیر را به این شکل افزایش دهید :

memory_limit = 128M
post_max_size = 128M
upload_max_filesize = 128M
max_execution_time = 300
max_input_time = 300

بعد از انجام  تغییرات فوق در فایل php.ini اقدام به ریستارت کردن وب سرور و/یا اجرا کننده php کنید تا تغییرات در سرور اعمال شوند :

service httpd restart

با مراجعه مجدد به صفحه ایمپورت phpmyadmin مشاهده خواهید کرد که محدودیت ۸ مگابایتی آپلود دیتابیس به ۱۲۸ مگابایت افزایش پیدا کرده است .

برای ریستور کردن دیتابیس های بزرگ تر از ۲۰ مگابایت حتما از طریق SSH و دستورات مربوط به MySQL استفاده کنید  . در مطالب گذشته وب سایت ، آموزش ریستور کردن فایل های پر حجم و بزرگ MySQL داده شده است


جلوگیری کردن از آپدیت شدن یک پکیج خاص در CentOS

اگر با REPO های سرور های مبتنی بر لینوکس CentOS زیاد کارمیکنید ، احتمالا بار ها و بار ها با آپدیت شدن اجباری بسیاری از برنامه ها و پکیج های لینوکس CentOS بعد از اجرای دستور yum update مواجه شده اید . برای حل این مشکل ، کافی است تا برنامه و پکیج مورد نظر خود را در تنظیمات فایل yum اصطلاحا Exclude کنید .

 

برای مثال ، بعد از نصب یک پکیج RPM از وب سایت RPM FORGE پکیج های geoip و geoip-devel بعد از هر بار اجرای دستور yum update  شروع به آپدیت شدن میکنند که به دلایلی بر خلاف میل ماست . برای exclude کردن این پکیج ها باید فایل yum.conf واقع در مسیر etc را ویرایش کرده و به شکل زیر آن ها را exclude کنیم :

ابتدا فایل yum.conf را ویرایش میکنیم :

vi /etc/yum.conf

حالا نام پکیج های مورد نظر را به این صورت در فایل yum.conf وارد میکنیم :

exclude=geoip* geoip-devel

حالا با دستور :wq فایل را ذخیره کرده و در نهایت دستور yum update را در محیط ssh اجرا میکنیم . همانطور که ملاحظه میکنید ، پکیج های exclude شده در فایل yum.conf هرگز با دستور yum آپدیت نخواهند شد و تنها روش آپگرید کردن آن ها به صورت دستی و کامپایل از سورس برنامه خواهد بود .

برای پیشگیری از بروز مشکلات مربوط به مخازن repository ، از نصب فایل های RPM غیر استاندارد روی سرور لینوکس RHEL اکیدا خود داری کنید . شاید بتوان گفت معتبر ترین وب سایت برای دانلود فایل های RPM وب سایت repoforge.org است . نصب پکیج ها و برنامه های لینوکس از سورس همیشه نسبت به پکیج های RPM ارجحیت دارد . در صورتی که تجربه و دانش کافی برای کامپایل و نصب برنامه ها از سورس دارید ، هرگز اقدام به نصب RPM در یک سرور مهم نکنید .


مشکل استارت نشدن سرویس MySQL در تمام سرور های هاستینگ لینوکس و به خصوص در سرور های مبتنی بر کنترل پنل های معروف سی پنل و دایرکت ادمین بسیار شایع است . پیام هایی خطایی که در هنگام اجرای دستور استارت سرویس MySQL در خروجی ترمینال مشاهده میشود متفاوت است و معمولا بسته به نوع کامپایل کردن MySQL ، ورژن MySQL مورد استفاده در لینوکس ، توزیع لینوکس ، کنترل پنل وب هاستینگ و … پیام خطای خروجی در ترمینال نیز متفاوت است .

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

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock

Starting MySQL. ERROR! Manager of pid-file quit without updating file

Starting MySQL.Manager of pid-file quit without updating file FAILED

MySQL Daemon failed to start

Another MySQL daemon already running with the same unix socket

ERROR 2003 (HY000): Can’t connect to MySQL server on 127.0.0.1

MySQL is not running, but lock exists FAILED

MySQL manager or server PID file could not be found

MySQL is running but PID file could not be found FAILED

Starting MySQL../etc/init.d/mysqld: line 159: kill: (9188) – No such process ERROR

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

وجود خطا در فایل my.cnf

 

در اولین قدم ، محتویات مربوط به فایل my.cnf را بررسی کنید . اگر تعداد خط ها و مقادیر وارد شده در این فایل زیاد هستند ، با دستور زیر فایل رو موقتا تغییر نام داده و سرویس MySQL را ریستارت کنید :

mv /etc/my.cnf /etc/my.cnf.dis

service mysqld restart

در سرور های سی پنل برای رییستارت کردن سرویس MySQL دستور زیر را اجرا کنید :

service mysql restart

در توزیع های لینوکس (بدون کنترل پنل وب هاستینگ) اوبونتو و دبیان نیز برای ویرایش فایل my.cnf مطابق زیر عمل کنید :

vi /etc/mysql/my.cnf

در صورتی که بعد از تغییر نام (و خارج کردن این فایل از دسترس سرویس MySQL) سرویس پایگاه داده MySQL بدون مشاهده ارور خاضی استارت شد‌ ، پس مشکل را باید در syntax یا مقدار دهی غلط به پارامتر های تاثیر گذار بر MySQL جستجو کرد .

خراب شدن یا Corrupt شدن جداول

این مشکل بیشتر در جدول های Innodb مشاهده میشود ولی در به طور کلی برای جداول Myisam نیز صادق است . در این وضعیت باید بسته به نوع جدول و دلایل Crash کردن دیتابیس ، به رفع مشکل بپردازید .

استارت همزمان چند سرویس MySQL

در حالت عادی ِ، با اجرای دستور service mysqld start اگر سرویس MySQL از قبل اجرا شده باشد ، با یک پیام خطا مبنی بر run بودن سرویس دریافت خواهید کرد . در شرایط خاص ، پیش می آید که چند نسخه یا Instance از این سرویس در حال اجرا باشد که خود سبب ایجاد اختلال در کار MySQL میگرردد . در این وضعیت ممکن است شما هرگز متوجه اجرای همزمان چند سرویس همزمان نشوید و حتی با اجرای دستور service mysqld start یکی از پیام های خطای مربوط به استارت نشدن سرویس MySQL در سرور لینوکس را دریافت کنید . در این وضعیت بهترین کار KILL کردن پراسس های مربوط به سرویس MySQL است .

killall -9 mysql

killall -9 mysqld

killall -9 mysql_safe

service mysqld start OR service mysqld start

استفاده یک daemon دیگر از سوکت MySQL

در این حالت کار سختی پیش روی شما نیست . کافی است تا فایل سوکت مربوط به سرویس MySQL را پاک کرده و سپس سرویس MySQL را استارت کنید :

rm /var/lib/mysql/mysql.sock

service mysqld start OR service mysqld start

قفل شدن MySQL در لینوکس

در مواقع خاص و نادر ، سرویس MySQL استاپ میشود ولی فایل مربوط به Lock یا قفل شدن سرویس MySQL از دایرکتوری مربوطه در لینوکس حذف نمیگردد . در این حالت پیام خطای روی خروجی ترمینال شبیه این خواهد بود :

mysql is dead but subsys locked

برای حل این مشکل کافی است تا فایل مربوط به lock شدن mysql را حذف کنید و مجددا اقدام به استارت کردن سرویس MySQL کنید :

rm /var/lock/subsys/mysqld

service mysqld start OR service mysql start

همانطور که بالاتر نیز به آن اشاره کردیم ، عدم استارت سرویس MySQL در برخی موارد بسیار پیچیده و گیج کننده خواهد بود و رفع آن همیشه به استناد به موارد آموزش داده شده امکان پذیر نیست . عوامل بسیار زیاد دیگری نیز میتوانند سبب استارت نشدن سرویس MySQL روی سرور لینوکس شوند که فقط با Trace کردن کامل و حرفه ای سرور لینوکس امکان رفع این ایراد میسر خواهد بود . در صورت بروز این مشکل در سرور های لینوکس خود ، حتما حل مشکل را به دست یک فرد با تجربه بسپارید ، چرا که در صورت انجام یک اشتباه ساده ، امکان آسیب دیدن جدی جدول های دیتابیس وجود خواهد داشت .

 

در صورتی که فرصت کافی برای کانفیگ و بهینه سازی سرور لینوکسی خود ندارید از طریق پرتال مشترکین با ما در ارتباط باشید.


بعد از نصب لینوکس توزیع Centos همانند همه سیستم عامل سرور های دیگر نیازمند تنظیمات کارت شبکه برای اتصال به شبکه داخلی و یا اینترنت و کلاً تنظیمات شبکه میباشد.

برای تنظیم کارت شبکه در لینوکس سنت او اس ابتدا پس از ورود به محیط SSH به آدرس مسیر زیر میرویم:

cd /etc/sysconfig/network-scripts

در مسیر فوق تنظیمات مربوط به کارت شبکه های سرور شما ذخیره میگردد، در صورتی که به صورت پیش فرض از یک کارت شبکه استفاده مینماید باید فایل ifcfg-eth0 را توسط ویرایشگر ویرایش نمایید، شما برای ویرایش فایل در لینوکس میتوانید از دستور vi که بصورت پیش فرض در تمامی توزیع های لینوکس نصب میگردد استفاده نمایید، و یا اینکه از ویرایشگر حرفه ای nano استفاده نمایید (این ویرایشگر بصورت پیش فرض نصب نیست و باید توسط دستور yum install nano نصب گردد)

فایل را همانند دستور مقابل ویرایش می نمایید :

nano ifcfg-eth0

همچنین به صورت مستقیم نیز میتوانستیم با دستور فوق و آدرس دهی مستقیم فایل تنظیمات کارت شبکه را ویرایش نماییم. همانند شکل زیر این فایل را متناسب با شبکه خود ویرایش نمایید:

تنیظمات IP در لینوکس

 

دقت کنید که گزینه ONBOOT در صورتی که نباشد ، یا no باشد کارت شبکه سرور لینوکس شما به صورت پیش فرض غیر فعال میباشد و باید بصورت دستی فعال نمایید (ifup eth0).

پس از انجام تغییرات مناسب در صورتی که از ویرایش گر vi استفاده کرده اید ابتدا دکمه ESC و سپس : گذاشته و سپس حرف x را برای ذخیره وارد و اینتر را بزنید.

برای انجام تغییرات در ویرایشگر nano در لینوکس ابتدا دکمه های ctrl+o و سپس دکمه ctrl+x را فشار و اینتر را وارد کنید

پس از اعمال تنظیمات یک بار توسط دستور service network restart سرویس کارت شبکه را درسرور لینوکسی خود ریستار نمایید تا بتوانید از سرور لینوکسی خود در شبکه دلخواه استفاده نمایید.

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

موفق باشید.