فعال نشدن FollowSymLinks در Htaccess

به دلایل امنیتی تابع FollowSymLinks در سرور ها غیر فعال هست ، برای فعال کردن آن در سرور های دایرکت ادمین طبق دستورالعمل زیر عمل نمایید

cd /usr/local/directadmin/custombuild

./build update
./build set harden-symlinks-patch yes
./build set secure_htaccess no
./build apache
./build rewrite_confs

تغییر engine دیتابیس ها از InnoDB به MyISAM ( دسترسی یوزر )

[tabs]

[tab title=”درباره انجین های دیتابیس”]

InnoDB یکی از موتورهای ذخیره سازی اطلاعات در دیتابیس MySQL است. در مقایسه با سایر موتورهای ذخیره سازی پایگاه داده (همچون MYISAM و … ) ، InnoDB دارای نقصی در زمینه محاسبه فضای استفاده نشده در جداول دیتابیس است. این مسئله به مرور زمان باعث حجیم شدن پایگاه داده مربوطه خواهد شد.

همانطور که می دانید در دیتابیس سرور یک فلدر با نام مشابه به ازای هر دیتابیس (در مسیر مشخص شده ) ایجاد می شود که این فلدر شامل موارد ذیل می باشد :

–          تمامی فایلهای مربوط به دیتابیس

–           فایلهای ibd  ، که تنها برای هر یک از جداول InnoDB  ایجاد می شود

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

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

متأسفانه در MySQL (برخلاف MS-SQL ) ابزار یا دستوری برای حذف لاگ فایلها وجود ندارد. همچنین با حذف و ایجاد مجدد دیتابیس InnoDB  اگرچه این مشکل به صورت موقت حل خواهد شد ولی متاسفانه با انجام تراکنش های جدید و ازدیاد حجم لاگ فایلها مجدداً شرایط قبل تکرار خواهد شد.

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

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

باتوجه به توضیحات ارائه شده در رابطه با فایل ibd  ، بک آپ هایی که به صورت خودکار (مانند بک آپ های ایران پیج ) از جداولInnoDB   تهیه می شوند قابل ریستور نخواهند بود لذا در صورتیکه موتور جداول دیتابیس شما InnoDB  می باشد به خاطر داشته باشید که باید به صورت دوره ای از طریق ابزار PHP MY Admin  نسبت به تهیه بک آپ از اطلاعات خود اقدام نمایید یا اینکه نسبت به تغییر به انجین MyISAM اقدام نمایید در غیر اینصورت متاسفانه ایران پیج ( و حتی سایر سرویس دهندگان ) در این مورد بک آپ قابل بازیابی جهت ارائه نخواهد داشت.

 

[/tab]
[tab title=”تغییر انجین از phpmyadmin”]

۱- برای تغییر engine دیتابیس ها از InnoDB به MyISAM  وارد phpmyadmin شوید

۲- بر روی نام دیتابیس کلیک کردید

۳- سپس تیبلی که نوع آن InnoDB هست را بر رویش کلیک کنید

۴-در صفحه جدید از تب های بالا بر روی oprations کلیک کرده

۵- در صفحه جدید گزینه Storage EngineDocumentation را یافته و از منوی کشویی جلوی آن MyISAM را انتخاب نمایید

۶- بر روی گزینه GO کلیک کنید

[/tab]

[tab title=”تغییر انجین – راه آسان”]

۱- برای تغییر engine دیتابیس ها از InnoDB به MyISAM  وارد phpmyadmin شوید

۲- بر روی نام دیتابیس کلیک کردید

۳-در صفحه جدید از تب های بالا بر گزینه export کلیک کنید

۴- فایل را دانلود کنید و با notepad یا notepad++ واژه های InnoDB را یافته و با MyISAM جایگذاری کنید

۶- پس از انجام ابتدا یک دیتابیس جدید بسازید و سپس این فایل را که بر روی رایانه ویرایش کردید زیپ کرده ( به صورت dbname.sql.zip ) و سپس ایمپورت کنید

۷- مشخصات دیتابیس جدید را به فایل کانفیگ هاست اسکریپت اضافه کنید

۸- دیتابیس قدیمی را پس از تست کردن دیتابیس جدید حذف کنید

[/tab]

[/tabs]

 

تغییر انجین دیفالت در mysql

اگر می خواهید به صورت دیفالت انجین دیتابیس هایی که از این پس می سازید myisam باشند وارد my.cnf شوید و سپس خط زیر را بعد از تگ mysql اضافه کنید

default-storage-engine=MYISAM

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

default-storage-engine=InnoDB

ران نشدن سرویس mysql به دلیل کرش innodb

درصورتیکه سرویس Mysql ران نمیشد و با خطای این مواجه شدید

ابتدا /var/lib/mysql رفته و فایل .err را مشاهده کنید ( به خطوط آخر رفته ) و ببینید دلیل ران نشدن کرش شدن innodb هست یا خیر ؟

اگر بود ابتدا دستور زیر را وارد کنید :

ls -l ib_logfile0 ib_logfile1

سپس همچین نتیجه ای به قرار زیر به شما می دهد :

-rw-rw—- 1 mysql mysql 50331648 Sep 13 01:34 ib_logfile1

در حال حاضر حجم فایل ib_ligfile0 ما ۵۰۳۳۱۶۴۸ می باشد ، برای شما هر مقدار که بود از این به بعد به جای این عدد در مراحل بعدی عدد مربوط به سرور خود را وارد کنید

nano /etc/my.cnf

وارد که شدید پس از تگ mysqld خطوط زیر را وارد کنید

innodb_log_file_size=50331648
innodb_force_recovery=6

حال سرویس mysql را ریستارت کنید سرویس Mysql شما ران می شود

دقت نمایید که در این حالت تیبل های InnoDB فقط read only هستند و قابل تغییر و تعمیر نمی باشند ، برای حل مشکل پس از ران شدن باید از دیتابیس ها بک آپ بگیرید و تبدیل به myisam کنید ( آموزش در سایت موجود هست ) و سپس مجدد دیتابیس را جایگذاری کنید

حل مشکل خطای the connection was reset apache

در سرور لینوکسی اگر گاها در مرورگر با خطای the connection was reset apache مواجه شدید مشکل از تنظیمات آپاچی می باشد

درصورتیکه موردی را تغییر دادید به حالت قبل بازگردانید ، اگر موردی را تغییر نداده اید خط زیر را به انتهای فایل httpd.conf اضافه کنید

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>

برای اضافه کردن لازم است تا به ssh لاگین کنید و با دستور locate httpd.conf ، این فایل را بیابید

حل مشکل سطح دسترسی ها در وردپرس

اگر در وردپرس با خطای

پیش از ذخیره‌ی ویرایش‌هایتان لازم است این پرونده را قابل‌نوشتن کنید. برای اطلاعات بیشتر مستندات (انگلیسی) را ببینید.

مواجه می شوید یا در حین آپلود افزونه با پیام درج اطلاعات ftp روبرو می شوید با دستورات  زیر در ssh سرور ، suphp را نصب کنید

 

cd /usr/local/directadmin/custombuild/
./build clean
./build update
./build set php5_cgi yes
./build set php5_cli no
./build all d
./build rewrite_confs

مشکل ران نشدن mysql پس از آپگرید به ورژن ۵٫۶

یکی از مشکلاتی که ممکن است پس از آپرگرید شدن mysql به ورژ۵٫۶ رخ دهد خطا در /usr/sbin/mysqld[] می باشد که متن آن در فایل ارور لاگ واقع در /var/lib/mysql/hostname.err قابل مشاهده هست

برای حل مشکل دستور زیر را جهت انتقال یک سری فایل از پوشه mysql خود انجام دهید

mv /var/lib/mysql/ib* /root/

سپس mysql را ریستارت کنید ، اگر مشکل حل نشد وارد پوشه tmp شوید و محتویات آنرا حذف کنید ، اگر در فایل ارور لاگ موردی از my.cnf نامعتبر شناخته می شود ، آنرا نیز برطرف کنید