آیا همیشه برای تغییر آدرس ، انتقال اطلاعات سایت لازم است؟

اطلاعات حجیمی روی یکی از پوشه های یک سروری (I) دارید اما سایتتان روی یک سرور دیگر (II)هست چه راهی برای لینک دهی به سرور (I) در سایتان دارید ، در حالی که نمیخواهید دامنه ی سرور (I) را به بازدیدکنندگان نشان دهید ؟

data transfer (بیشتر…)

اجرای CronJob در وب سرور لوکال ویندوز

در صورتی که بخواهید یک برنامه نوشته شده به زبان PHP در سرور اجرا شود خیلی راحت میتوانید با استفاده از تنظیمات کنترل پنل سرور در قسمت CronJob این کار را انجام دهید اما اگر فایل PHP مورد نظر شما می بایست در لوکال مثلا xampp  یا wampp اجرا شود روش کار متفاوت خواهد بود . من برای هماهنگ سازی اطلاعات روی دیتابیس سرور با اطلاعات موجود در دیتابیس کامپیوترم از این روش استفاده کردم تا هر 5 دقیقه یکبار دستوراتی که میخواهم اجرا شود .

12413779-vector-illustration-of-clipboard-with-pen-on-white-background

برای اینکار می بایست ابتذا فایل PHP مورد نظر خود را در www یا htdocs لوکال قرار بدهید سپس با رفتن به تنظیمات Windows Task Scheduler و تعریف یک دستور و زمان بندی اجرا، اسکریپت مورد نظر را بطور مداوم اجرا کنید .

(بیشتر…)

اتصال PHP به Microsoft sql server توسط sqlsrv

MS SQL یکی از انواع دیتابیس ارائه شده توسط ماکروسافت می باشد ، این دیتابیس معمولا بر روی windows server نصب شده و میتوان هم تحت وب و هم تحت پلاتفرم های نرم افزاری دیگر مثل C sharp و … از آن استفاده نمود ، اما موضوعی که در این نوشته قصد شرح آن را دارم اتصال به آن توسط PHP است ، دیتابیسی که در PHP معمولا با آن کار می شود Mysql می باشد که بصورت پیش فرض تمامی امکانات برای این اتصال در وب سرور های شبیه Apache فراهم شده است ، اما متاسفانه برای اتصال به ms sql این امکانات بصورت پیش فرض فراهم نیست. در گذشته و ورژن های قبلی PHP از دستور mssql_connect برای اتصال استفاده میشد اما در ورژن های اخیر PHP و ویندوزهای پیشرفته تر مثل 7 این دستور به خوبی کار نمی کند و ماکروسافت را مجبور به ارائه درایوری به نام Sqlsrv کرده است .


(بیشتر…)

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

سیستم عامل موبایل اندروید بطور پیش فرض نمی تواند اتصال adhoc network ساخته شده توسط کامپیوتر را شناسایی کند ، همین باعث می شود که  اشتراک گذاشتن اینترنت از کامپیوتر با وایرلس با این روش امکان پذیر نباشد ، گرچه سیستم عامل های دیگر یا کامپیوترهای دیگر می توانند این اتصال را شناسایی کنند .

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

اما روشی که در این نوشته قصد توضیحش را دارم  بدون احتیاج به هیچ تغییری در گوشی و فقط با تغییر نوع وایرلس امکان اشتراک اینترنت مقدور خواهد بود .

 

(بیشتر…)

کار با فایل های RAR در سرور لینوکس (نصب ، فشرده سازی و باز کردن)

لینوکس بصورت پیش فرض نمی تواند فایلهای RAR را باز کند یا آن ها را از حالت فشرده خارج کند ، این مسئله در اسکریپتهای کار با فایل مثل rapidleech در هنگام UnRar کردن فایلها باعث ایجاد خطا می شود  .  این مشکل در سرور ویندوز راحتتر حل می شود و می توان با نصب Winrar براحتی با این فایلها کار کرد.

در این نوشته قصد دارم در ابتدا به نصب برنامه Unrar در لینوکس بپردازم و سپس کار با آن را به طور کامل شرح دهم .

(بیشتر…)

انتقال مستقیم اطلاعات بین دو هاست با FTP

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

کسانی که دسترسی به سرور دارند معمولا مشکلی از این بابت برای انتقال ندارند اما در صورتی که 2 هاست معمولی دارید و دسترسی به سرور هم ندارید و می خواهید انتقال اطلاعات بین این دو هاست بدون مصرف ترافیکتان داشته باشید می توانید از سرویس دهنده ی آنلاین directransfer.net استفاده کنید .

در این سرویس رایگان به سادگی و بدون ثبت نام  بوسیله ی FTP می توانید بین دو هاست انتقال اطلاعات داشته باشید .

(بیشتر…)

افزایش مهلت اجرای اسکریپت php در apache

بعضی از اسکریپتهای PHP برای کارکردن احتیاج به زمان بیشتری نسبت به حالت پیش فرض دارند . مثلا رپیدلیچ rapidleech برای انتقال فایلهای سنگین بالای 400 mb معمولا به زمان زیادی احتیاج دارد و اگر مهلت زمانی کافی نداشته باشد در حین انتقال خواهد ایستاد ، در این نوشته قصد دارم تنظیمات افزایش این مهلت زمانی را شرح دهم .

در صورتی که سرور اختصاصی دارید و دسترسی به فایلهای نصب شده ی Apache را دارید می بایست تنظیمات زیر را در فایل php.ini پیدا کنید . در سرورهای لینوکس در مسیر /etc/php.ini آن را پیدا می کنید .

 

=> max_execution_time : مدت زمانی اجرای اسکریپت که پیش  فرض آن 30 ثانبه می باشد .

=> max_input_time : مدت زمانی که انتقال اطلاعات در اسکریپت انجام می شود که پیش فرض آن 60 ثانیه می باشد .

=> memory_limit : مقدار رم ای که هر اجرای اسکریپت از حافظه رم اشغال می کند .

(بیشتر…)

جلوگیری از اسپم شدن ایملیهای سرور ( تست SPF )

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

یک حالت هم ممکن است وجود داشته باشد و آن قبول نشدن ایمیلهای شما در تست SPF است . جیمیل نسبت به یاهو نسبت به این تست حساس تر است ، در این نوشته قصد دارم تنظیمات DNS برای قبول شدن در تست SPF را توضیح دهم ،  این کار را می توانید در تنظیمات DNS همه ی کنترل پنلها ، هم روی سرور ویندوز و هم لینوکس انجام دهید . در اینجا من تنظیمات را بطور نمونه روی سرور لینوکس با کنترل پنل Kloxo توضیح می دهم .
(بیشتر…)

10 کد بسیار مفید htaccess ( قسمت دوم )

در این نوشته قصد دارم قسمت دوم دستورات htaccess را ادامه بدهم  ، بیشتر مطالب این قسمت مسائل امنیتی و مسدود کردن های ضروری است .

1- جلوگیری از اجرای بعضی فایلها

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

یک روش این است که در هنگام فراخوانی ،  فایل را فقط مجبور به دانلود کنیم :

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3

 

همچنین می توانید موتور اجرای php را در آن پوشه خاموش کنید ، در این حالت هنگام اجرای فایل php  خطایی نمایش داده خواهد شد :

php_flag engine off

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

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off

یک روش هم این است که نه اجازه اجرا به فایل بدهیم و نه اجازه دانلود ، مثلا خطای 403 Forbidden به کاربر نمایش دهیم .

 

# secure directory by disabling script execution
 AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi Options -ExecCGI

در کد بالا فایلهای زیادی را می توانید با اضافه کردن فرمتشان مسدود کنید .
روش دیگر نمایش سورس بعضی فایل های اسکریپت مثل cgi است هنگامی که قصد اجرای آن را داشته باشیم . ( برای php جواب نمی دهد )

RemoveHandler cgi-script .pl .py .cgi

(بیشتر…)

10 کد بسیار مفید htaccess (قسمت اول)

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

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

1- اضافه کردن slash به آخر آدرس سایت

وجود slash در آخر آدرسهای سایت در بعضی موارد به SEO شدن سایتان از لحاظ موتورهای جستجو کمک میکند ، با استفاده از این کد می توانید به طور خودکار Slash را به آخر آدرس سایتتان اضافه کنید .

 RewriteCond %{REQUEST_URI} /+[^\.]+$
 RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

2- جلوگیری از استفاده مستقیم از عکسها و فایلهای شما در سایتهای دیگر

با استفاده از این کد می توانید استفاده  مستقیم بقیه ی سایتها را از منابع سایتتان محدود کنید. قرار دادن عکس آپلود شده در سرور شما در دیگر سایتها ممکن است موجب مصرف بی مورد ترافیک شود ، در کد زیر بجای mysite دامین خودتان را وارد کنید و تمامی hotlink ها را به عکس دیگری مثلا nohotlink.jpg روانه کنید .

RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

(بیشتر…)