مشکل شناخت نام هاست در آپاچی

کسایی که وب‌کارند و کد وب می‌زننند زیاد پیش میاد که روی سیستم لوکال‌شون آپاچی، این وب سرویس محبوب را نصب کنند تا کارهاشون را بتونند تست کنند. خیلی وقت‌ها میشه که بعد از نصب آپاچی و موقع شروع به کار اون این پیام را می‌بینیم:apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName.
دلیلش چیه؟ دلیلش اینه که تنظیمات FDQN سیستم‌تون درست نیست و سیستم نمی‌تونه FDQN سیستم را اتوماتیک شناسایی کنه.

راه حلش چیه؟
۱. توی تنظیمات آپاچی بگین اسم کامل سرور Default چیه.
۲. تنظیمات FDQNت را درست کنید. در ساده‌ترین حالت برین توی فایل etc/hosts/ و جلوی 127.0.0.1 اسم کامل هاست‌تون (شامل اسم هاست و نام دامنه مثلا sadeq.localdomain) را اضافه کنید. دقت کنید که اسم کامل هاست حتما باید اولین اسم بعد از IP باشه!

مشکل‌های مشابه برای چه ابزارهای دیگه‌ای ممکنه رخ بده؟ Exim که به عنوان MTA پیشفرض در Debian استفاده می‌شه هم ممکنه همین مشکل را داشته باشه و موقع شروع به کار پیام بده که نمی‌تونه FDQN سیستم را شناسایی کنه. روش ۲م این مشکل را هم حل می‌کنه.

پی‌نوشت: FDQN چیه؟ FDQN مخفف Fully Qualified Domain Name است و بعضی وقت‌ها به عنوان نام مطلق هم بهش گفته می‌شه. این اسم نام هاست را به صورت یکتا در سلسه مراتب DNS سرورها مشخص می‌کنه (در اینترنت یا اینترانت). این نام از یه اسم هاست و یه دامنه تشکیل شده. (اسم دامنه می‌تونه تک بخشی مثلا localdomain یا چند بخشی مثلا sadeq.ir باشه)

نوشتن و خواندن به زبان فارسی در کنسول متنی لینوکس

یه زمان‌هایی بود که لینوکس با زبان فارسی مشکل داشت. یه سری آدم مثل بهداد و یه سری شرکت مثل فارسی‌وب شریف اومدن و روی این موضوع کار کردند. الان پشتیبانی لینوکس از زبان فارسی خیلی خیلی عالیه.

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

کنسول را یونی‌کد کنید

برای اینکه کنسول بتونه کاراکترهای غیرلاتین را نمایش بده باید بهش بگین کنسول یونی‌کده.
برای اینکار فایل /etc/default/console/console-setup را ویرایش کنید و

CHARMAP="UTF-8"
CODESET="Arabic"
FONTFACE="Fixed"
FONTSIZE="8x16"

سپس دائمون console-setup را ری‌استارت کنید.

مپینگ کی‌برد را فارسی کنید.

برای اینکه بتونین فارسی تایپ کنید باید کی‌برد ایران را بارگزاری کنید.
برای اینکار فایل /etc/default/keyboard را ویرایش کنید

XKBMODEL="pc105"
XKBLAYOUT="us,ir"
XKBVARIANT=","
XKBOPTIONS="grp:shift_caps_toggle,lv3:ralt_switch,grp_led:scroll"

سپس دائمون keyboard-setup را ری‌استارت کنید.

از bicon استفاده کنید.

برای اینکه عمل تبدیل کاراکترهای فارسی به کاراکترهای Visual انجام بشه باید از bicon استفاده کنید.
bicon فقط با اندازه ترمینال 80×25 کار می‌کنه. پس ممکنه لازم بشه فایل console-setup  را ویرایش کنید و عرض و طول کنسول را ثابت کنید!

با استفاده از shitft-capslock می‌تونید زبان تایپ را عوض کنید!

پ.ن. ممکنه نیاز داشته باشید بسته console-data را هم نصب کنید. با لود کردن keyboard map فارسی (دستور loadkeys) و دادن پارامتر مسیر فایل مپ مثلا /usr/share/keymaps/i386/qwerty/fa.kmap.gz مپینگ دلخواهتون را بارگذاری کنید)

پ.ن: من روی دبیان ۶ تست کردم. محیط متن من موقع بوت میره توی حالت شبه گرافیک و در نتیجه مطمئن نیستم که این روش برای همه کار کنه. اما امتحانش ارزش داره

نصب msge در دبیان تستینگ

اگه شما هم مثل من از Debian Testing برای میزکار استفاه می‌کنید، و قبلا به Gnome 2 عادت داشتید، از ظاهر Mint خوشتون بیاد.
اما اگه به هر دلیلی نخواهید که برین روی Mint، می‌تونید با نصب msge یه سری چیز آشنا ببینید!

برای نصب اول git را نصب کنید.
بعد یه clone از git://github.com/linuxmint/MGSE.git بگیرید.
بعد برین داخل فولدری که ایجاد کردین واسه msge و دستور زیر را بزنید:
./test install
فراموش نکنید که بسته gnome-tweak-tool را هم نصب کنید.
با اجرای gnome-tweak-tool که به عنوان advance setting شناخته می‌شه، می‌تونید اکستنشن‌های مختلف را فعال و غیر فعال کنید.

برای منو گنوم یه چیز دیگه هم نیاز دارید. اونم mint-menu هست. اون را هم می‌تونید با git از نشانی git://github.com/linuxmint/mintmenu.git بگیرید.
بعد وارد فولدر mintmenu بروید و ./test را اجرا کنید.
به همین سادگی، می‌تونید محیط دوست‌داشتنی gnome2 را دوباره داشته باشید.

اطلاعات بیشتر:
https://github.com/linuxmint/MGSE

خداحافظ اینترنت

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

و این فردا نزدیک و نزدیک‌تر شد. تا امروز.

از امروز به نظر می‌رسد فقط باید تلوزیون ملی دید، اینترنت ملی استفاده کرد. اخبار ملی خواند و شنید. رای ملی داد. عقیده‌ای ملی داشت. از امروز باید ملی باشی.

بدرود اینترنت.

 

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

تغییر اندازه پارتیشن دائمی در توزیع‌های زنده

یکی از چیزای خوب توی لینوکس امکان ساده درست کردن یه فلش قابل بوت و همراه داشتن اون برای استفاده‌های گوناگونه.
وقتی از فلش بوت می‌کنید سرعت دیسک زنده به نسخه‌های نصب شده خیلی نزدیک می‌شه و از همه مهمتر اینکه می‌تونید یه پارتیشن تعیین کنید که اطلاعات خاص شما (مثلا پوشه خانگی شما) روی اون ذخیره بشه و با هر بار بوت از روی اون فلش‌دیسک به اون اطلاعات دسترسی داشته باشید.
من هم با استفاده از ابزاری که در سایت پن‌درایو لینوکس( http://www.pendrivelinux.com ) معرفی می‌کنه و  ارائه می‌ده یه فلش بوت از روی دیسک نصب mint ساختم. موقع ساخت فقط ۱۲۴ مگ برای اون در نظر گرفتم. و حالا این فضا پر شده و حتی در روند عادی بوت اختلال ایجاد کرده.
اگه شما هم مثل من دچار مشکل شدید، اولین قدم اینه که موقع بوت پارامتر persist را از خط بوت حذف کنید. با اینکار انگار نه انگار که شما پارتیشن persist روی فلش‌مموری درست کردین. لینوکستون به صورت کاملا تمیز مثل زمانی که از روی سی‌دی بوت کردین بالا میاد.
یه راه دیگه هم هست و اون تغییر اندازه این پارتیشه. برای این کار اول با استفاده از دستور dd اندازه اون فایل را بزرگ می‌کنیم.
مثلا برای اینکه یک گیگ به فضای دیسک اضافه کنیم این دستور را وارد می‌کنیم:

% dd if=/dev/zero bs=1M count=1024 >> casper-rw

بعد باید فایل سیستم را درستش کنیم که با این اندازه جدید سازگار بشه:

% resize2fs casper-rw

خرج خونه

همیشه برای اینکه بدونم پولم را خرج چی کردم مشکل داشتم.
به همین دلیل بود که سال گذشته یه برنامه خیلی ساده و کوچولو نوشتم که توی اون خرج‌هام را یادداشت می‌کردم.
دوستان می‌دونند که حافظه خوبی ندارم، پس برنامه را سبک نوشتم که با حداقل هزینه بتونم با موبایل و استفاده از اینترنت gprs موبایل کار ثبت خرج‌هام را انجام بدم.
بعد از اون دیگه وقت نکردم به برنامه امکانات اضافه کنم مثلا برنامه باید:
۱. سیستم احراز هویت داشته باشه.
۲. گزارش عملکرد مثلا ماه و هفته گذشته داشته باشه.
و …
چند وقتی بود که ازش استفاده نمی‌کردم، امروز یادم اومد و برنامه را گذاشتم روی github که هر کسی خواست بتونه استفاده کنه:
https://github.com/sadeqn/home-costs
کمک کنید این برنامه بهتر بشه.

این برنامه با گواهی حق استفاده gpl3 منتشر شده.

 

پ.ن. یه اشکال توی کد sql نصب رفع شد. این باگ باعث می‌شد بعد از ایجاد جداول و viewها برنامه به درستی اجرا نشه.
پ.ن. یه سیستم ساده احراز هویت بهش اضافه شد. کاربر دیفالت و رمزش را در فایل readme بخونید.

پ.ن. یه خورده ساختار کد را بهتر کردم و الان نزدیک‌تر شده به ساختار MVC. البته هنوز کلی کار داره. ‌آخرین نسخه را از مخزن git hub‌ می‌تونید بگیرید.

استخدام برنامه‌نویس php

شرکت ما به دنبال استخدام چند تا برنامه‌نویس php است. متن آگهی استخدام اینه:

شرکت درخشان صنعت ( www.dsi.ir ) برنامه‌نویس php استخدام می‌کند
مهارت‌های لازم:
* تسلط کامل به PHP و آشنایی با مبانی شی‌گرایی
* آشنایی با بانک اطلاعات MySQL

شرایط کاری:
* ساعت کار ۸:۰۰ لغایت ۱۷:۳۰، شنبه تا چهارشنبه
* محیط کاری چالشی

نشانی محل کار در غرب تهران است.

در صورت تمایل اطلاعات خود را به همراه رزومه در فرم http://job.ebtekar.info وارد و ارسال نمایید

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

تا یادم نرفته این را هم بگم که اهل php نیستید ولی توانایی خاصی تو تولید نرم‌افزار (غیر از php) دارین حتما کامنت بزارین یا تماس بگیرید.

فعال و غیرفعال کردن کاربر در لینوکس

در صورتی که نیاز دارید دسترسی یک کاربر خاص به لینوکس را غیرفعال کنید کافی‌است دستور زیر را اجرا کنید:

passwd USERNAME -l

و برای فعال کردن مجدد کاربر می‌توانید دستور زیر را استفاده کنید:

passwd USERNAME -u

این دستور یک ! به ابتدای کلمه عبور کاربر مورد نظر در فایل /etc/shadow اضافه می‌‌کند یا آن را حذف می‌کند.

در صورتی که بخواهید این کار به صورت خودکار و در زمان‌های خاص انجام شود می‌توانید از crontab‌ یا at‌ استفاده کنید. crontab برای کارهای تکراری و at برای انجام کار در تاریخ/زمان مشخص!
به همین سادگی به همین خوشمزگی!

استفاده از دامنه با نام فارسی

چند ساله که داره روی اسم دامنه‌هایی با الفبایی غیرلاتین کار می‌شه. نتیجه کار یه استاندارد هست به نام IDN که خلاصه International Domain Name است. در این استاندارد نام از یه رشته غیرلاتین به کد Punycode تبدیل می‌شود.

برای دامنه‌های ایران IRNIC مسوول ثبت و نگهداری و مدیریت است. این مجموعه برای ایجاد یک دامنه فارسی به نام .ایران فعالیت کردند و الان این دامنه قابل استفاده است. مثلا اگه شما روی نشانی http://یزدانپرست.ایران.ir کلیک کنید، وارد وبلاگ خودخودمان می‌شوید. یا نشانی http://سمپاد.ایران.ir شما را به وب‌سایت انجمن دانش‌آموختگان استعدادهای درخشان می‌بره.
در هر این نام‌ها هنوز مشکلی دارند و اون اینکه هنوز لازمه که .ir به نام دامنه ,ایران اضافه بشه که به نظر جالب نمی‌یاد.
اگه شما مسوول یه isp باشید یا روی سرورهای سازمانی که توش کار می‌کنید نظارت داشته باشید می‌تونید این مشکل را با یه حقه دور بزنید.
برای اینکار لازمه که اول از همه BIND9 که معروف‌ترین DNS Server دنیا است را روی سرور اینترنت نصب کنید. بعد دو تا زون برای .ایران و .ايران اضافه کنید. (اشتباه نکنید یکیش با ی فارسی است و دیگری ي عربی! چون punnycodeها برای اونها فرق می‌کنه)
بعد به BIND9 بگین که درخواست برای تبدیل نام به آی‌پی برای این Zoneها را به سرور ns.nic.ir ارسال کنه.
توی Ubuntu برای اینکار کافیه یه فایل با این محتویات بسازید:

zone "xn--mgba3a4fra" {
        type forward;
        forwarders {194.225.70.89; 137.189.6.21; 198.6.1.162;};
};

zone "xn--mgba3a4f16a" {
        type forward;
        forwarders {194.225.70.89; 137.189.6.21; 198.6.1.162;};
};

و بعد داخل فایل named.conf این خط را اضافه کنید
فراموش نشه که بعد از راه‌اندازی مجدد BIND کلاینت‌ها را جوری تنظیم کنید که از این سرور به عنوان DNS سرور استفاده کنند.

برای امتحان می‌تونید به نشانی http://صادق.ايران بروید. اگه باز شد، شما کار را درست انجام دادین! فراموش نکنید حتما از فایرفاکس یا مرورگری که از IDN پشتیبانی می‌کنه برای تست استفاده کنید!