اجرای 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 ساخته شده توسط کامپیوتر را شناسایی کند ، همین باعث می شود که  اشتراک گذاشتن اینترنت از کامپیوتر با وایرلس با این روش امکان پذیر نباشد ، گرچه سیستم عامل های دیگر یا کامپیوترهای دیگر می توانند این اتصال را شناسایی کنند .

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

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

 

(بیشتر…)

انتقال مستقیم اطلاعات بین دو هاست با 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 : مقدار رم ای که هر اجرای اسکریپت از حافظه رم اشغال می کند .

(بیشتر…)

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]

(بیشتر…)