دی بلاگ

نویسنده: سید امیر

۱۰ تیر ۱۳۹۷

افزودن امکان انتخاب ورژن PHP به دایرکت ادمین

سلام دوستان

در این مطلب قصد داریم به شما آموزش بدیم که چطوری نسخه Apache و PHP را در Directadmin ارتقاء دهید و همچنین به شما آموزش خواهیم داد که چطوری امکان انتخاب ‌ورژن PHP را به دایرکت اضافه کنید.
(با توجه به تفاوت در ورژن های مختلف و احتمال به وجود آمدن مشکل لطفا موارد گفته شده در این مقاله را مستقیما بر روی سرور اصلی خود اجرا ننمایید و قبل از آن بر روی یک سرور تست اجرا کنید)
ابتدا ذکر این نکته ضروری هست که PHP 5.6 توسط CustomBuild 1.1 پشتیبانی نمی شود. پس اگر قصد ارتقاء دارید باید از CustomBuild 1.1 به بالا استفاده کنید.

برای ارتقاء در دایرکت ادمین باید از CustomBuild استفاده کنیم که در آدرس زیر قرار دارد:

/usr/local/directadmin/custombuild

پس بعد از اینکه با ssh به خط فرمان لینوکس خودتون وصل شدید ابتدا به آدرس بالا برید
cd /usr/local/directadmin/custombuild
خب حالا اولین کاری که میکنید با دستور زیر ورژن custombuild را پیدا کنید:

./build version

اگر ورژن آن پایین هست باید آن را ارتقاء دهید..

 

حالا اگر قصد دارید فقط نسخه php را ارتقاء دهید باید از دستورات زیر استفاده کنید:

./build update
./build set php5_ver 5.6
./build php n

اگر بعد از بالا بردن نسخه سرویس httpd استارت نشد و خطا داد احتمالا نیاز به ارتقاء نسخه آپاچی هم پیدا میکنید که با دستورات زیر میتونید ورژن آپاچی و php را ارتقاء دهید:

cd /usr/local/directadmin/custombuild
./build update
./build apache
./build php n
./build mod_ruid2
./build rewrite_confs

حالا اگر دوست دارید امکان انتخاب نسخه php را در تنظیمات دیرکت ادمین برای یوزرهاتون داشته باشید باید به کمک دستورات زیر هم ورژن ۷.۱ و هم ورژن ۵.۶ را کنار هم نصب کنید.
برای این کار از دستورات زیر استفاده کنید

cd /usr/local/directadmin/custombuild
./build set php1_mode php-fpm
./build set php2_mode php-fpm
./build set php1_release 7.1
./build set php2_release 5.6

با اجرای دستورات بالا فایل options.conf تغییراتی خواهد کرد و موارد زیر به این فایل اضافه خواهند شد.

php1_release=7.1
php1_mode=php-fpm
php2_release=5.6
php2_mode=php-fpm

خب حالا وقت کامپایل مجدد PHP هست و بعد از اون تنظیم مجدد.. برای این کارها دستورات زیر را اجرا کنید

./build php n
./build rewrite_confs

خب کار اینجا تمام هست و باید الان در دایرکت ادمین امکان انتخاب ورژن را برای یوزر داشته باشیدphp-version-selector-directadmin php-version-selector-directadmin2

 

نکته:
این نکته مربوط به نصب ماژول های PHP هست که به موارد بالا بسیار ربط داره برای همین بهتر بود قبل از مطالب بالا میاوردمش اما اینجا میارمش دیگه..
اگر میخواهید مازول های PHP را هم نصب کنید باید –with-module را به تنظیمات اضافه کنید.. کجا و چطوریش را الان توضیح میدم.

 

با دستور زیر میتونید آدرس فایل کانفیگ را بدست بیارید

cd /usr/local/directadmin/custombuild
./build used_configs | grep configure.php

اگر دو ورژن PHP داشته باشید احتمالا دوتا آدرس میبینید

PHP (default) configuration file: /usr/local/directadmin/custombuild/configure/ap2/configure.php56

حالا بهتره اول یک بکاپ از فایل تنظیمات بگیرید و بعد اون را ویرایش کنید و –with-module را به آخرش اضافه کنید

--with-module

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

بعد از اینکه فایل های تنظیمات را برای نسخه مورد نظرتون تغییر دادید حالا دوباره دستور زیر را اجرا کنید تا یکبار دیگه php با ماژولهاش نصب بشه

 

./build php n

 

اگر با خطای زیر روبرو شدید بدونید که توی \ گذاشتن انتهای خط ها اشتباه کردید

/usr/local/directadmin/custombuild/custom/ap2/configure.php56: line 32: --with-module: command not found

به همین خوشمزگی.

 

پی نوشت.. دقت کنید که اگر بعد از آپدیت php به نسخه ۵.۶ هنگام اجرای آپاچی با خطای زیر روبرو شدید باید آپاچی را هم ارتقاء بدید و بعدش فایل های کانفیگ را بازنویسی کنید

 

Invalid command 'Mutex', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.  

گاهی هم بعد از ارتقاء آپاچی از ورژن ۲.۲ به ۲.۴ ممکنه به

unixd_config

گیر بده که با ارتقاء همزمان آپاچی و ‌php و بازنویسی کانفیگ ها مشکل حل میشه..

۷ خرداد ۱۳۹۷

تبدیل آرایه و stdClass به یک کلاس دیگر در php

سلام دوستان

یکی از مشکلاتی که برنامه نویسان php در هنگام گرفتن داده های json با آن مواجه می شوند تبدیل خروجی دیکد شده به کلاس مورد نظرشان هست.

وقتی شما از تابع json_decode استفاده می کنید نتیجه خروجی آن اگر از نوع Object باشد یک شیء از کلاس stdClass هست در غیر اینصورت یک آرایه انجمنی خواهید داشت
حالا فرض کنید که این داده ها مربوط به یک کلاس سفارشی میباشد که توسط شما نوشته شده است، چگونه باید نتیجه دیکد شده را به آن کلاس تبدیل کرد؟

لازم به ذکر هست که در صورتی که از توابع serialize و unserialize در php استفاده کنید نوع کلاس ها حفظ شده و با چنین مشکلی روبرو نخواهید شد

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

function arrayToObject(array $array, $className) {
 return unserialize(sprintf(
 'O:%d:"%s"%s',
 strlen($className),
 $className,
 strstr(serialize($array), ':')
 ));
}
function objectToObject($instance, $className) {
 return unserialize(sprintf(
 'O:%d:"%s"%s',
 strlen($className),
 $className,
 strstr(strstr(serialize($instance), '"'), ':')
 ));
}
۲۷ مهر ۱۳۹۵

رپورتاژ آگهی گوگل آزاد در سایت سکان آکادمی

توسعه دهندگان اندروید که به روش Native کدنویسی می‌کنند همواره با این چالش رو به رو هستند که نمی‌توانند به سادگی به منابع آموزشی، ای پی آی ها، نرم‌افزار اندروید استودیو و … که توسط گوگل عرضه می‌شوند دسترسی پیدا کنند. در همین راستا، گروهی با انگیزه از جوانان ایرانی سایت «گوگل آزاد» را راه اندازی کرده‌اند که در یک کلام، یک سایت ایرانی است که تحریم های گوگل علیه ایران را دور زده و شما به کمک این سایت می توانید به منابع اصلی اندروید دسترسی داشته باشید. برای آشنایی بیشتر با این سایت، با سکان آکادمی همراه باشید.

۲۷ مهر ۱۳۹۵

آموزش دسترسی مستقیم به منابع اندروید

سلام دوستان

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

سایت “گوگل آزاد” یک سایت ایرانی است که تحریم های گوگل علیه ایران را دور زده و شما به کمک این سایت می توانید به منابع اصلی اندروید دسترسی داشته باشید.

 

 

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

 

 

و در زیر بعضی از لینک های مهم از این سایت را مشاهده کنید.

دانلود Android Studio

برای دانلود Android Studio از سایت رسمی آن و بدون تحریم به اینجا بروید

مشاهده API های اندروید

برای مشاهده API Guides از سایت رسمی آن و بدون تحریم به اینجا بروید

Android Samples

برای مشاهده Samples از سایت رسمی آن و بدون تحریم به اینجا بروید

Android Reference

برای مشاهده Package Index از سایت رسمی آن و بدون تحریم به اینجا بروید

Android Getting Started

برای مشاهده Training از سایت رسمی آن و بدون تحریم به اینجا بروید

Android Design

برای مشاهده Android Design از سایت رسمی آن و بدون تحریم به اینجا بروید

۲۵ مهر ۱۳۹۵

سلام خدا

بسم الله الرحمن الرحیم؛

امروز بعد از چندین سال تصمیم گرفتم مجددا وبلاگم را راه اندازی کنم و دوباره بنویسم.

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

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

امروز یکشنبه ۲۵ مهر ۱۳۹۵

کپی رایت © 2018 دی بلاگ

طراحی توسط Anders Norenبالا ↑