دسته: لینوکس

  • اجرای کامند در بکگراند با tmux در لینوکس

    از اون زمانی که اومدیم دانشگاه و مجبور شدیم کدهای طولانی مدت ران بذاریم مجبور بودم دنبال راهی باشم که بشه یه کامند رو توی بگکراند ران بذاریم. وقتی میگم کامند میتونه به سادگی ران کردن یه کد پایتون بصورت زیر باشه.

    python test.py

    یه مدت از کامند nohup استفاده میکردم که چیز خوبی بود ولی مشکلش اینه که اولا بعضی وقتا اصن یهو قطع میشد کارم. دوما قطع کردنش بعضی وقتا داستان بود و باید پروسسش رو پیدا میکردی و kill میکردی و نهایتا بدی بزرگش این بود که پیشرفت کامند رو نمیشد به خوبی چک کرد. البته یه فایل nohup.out داره که بصورت پیشفرض خروجی رو میریزه اونجا ومیشه کاستومایز هم کرد ولی ویژوالی یه چیز دیگست دیدنش 🙂

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

    enter to env: tmux
    exit while running the command: ctrl + b then d
    join to session: tmux attach
    list of sessions: tmux list-sessions
    attach to specific session: tmux attach-session -t <session-name>
    renaming a session: Ctrl+b and then $
    split and add new pane: Ctrl+b and then " or %

    یه ویدئوی کوچولو هم ریکورد کردم که ممکنه کمکتون کنه

    (بیشتر…)
  • نصب MongoDB و استفاده در لاراول

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

    توجه: همه کارایی که من میگم روی Ubuntu 18.04.3 تست شده و بقیه جاها رو نمیدونم.

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

    sudo apt-get install -y mongodb-org 

    معروف ترین پکیجی که لاراولی ها برای کار با مانگو باهاش کار میکنن jenssegers/laravel-mongodb هست که میتونید نصبش کنید ولی قبلش باید یکار دیگه هم بکنید و اون هم اینه که درایور PHP برای مانگو رو نصب کنید. من چند تا راه رو رفتم و این پست از داکیومنت PHP واسم جواب داد. در واقع اگه PECL داشته باشید خیلی راحت با این کامند کارتون راه میفته:

    sudo pecl install mongodb

    حالا پکیج jenssegers رو نصب کنید و کارایی که گفته رو انجام بدید. حالا قانونا باید همه چی اوکی باشه ولی بازم واسه من اوکی نبود. اولین کاری که میکنید یبار سرویس مانگو رو استارت کنید.

    sudo service mongod start

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

    use test

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

    show dbs

    حالا با دستور زیر میتونید یوزر های این دیتابیس رو ببینید:

    db.getUsers()

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

    db.createUser({user:'admin', pwd:'Aa123', roles: [{role:"readWrite", db:"test"}]})

    و حالا برید کانکشن دیتابیس رو توی فایل database.php بسازید. و بعدش دیفالت کانکشن رو هم تغییر بدید.

    'mongodb' => [
        'driver'   => 'mongodb',
        'host'     => env('DB_HOST', 'localhost'),
        'port'     => env('DB_PORT', 27017),
        'database' => 'test',
        'options'  => [
            'database' => 'admin' 
        ]
    ],
    'default' => env('DB_CONNECTION', 'mongodb'),

    من یوزر و پسورد رو هم اینجا گذاشتم و اررور داد. شما اون یکی دو تا رو توی فایل .env بذارید.

    DB_CONNECTION=mongodb
    DB_HOST=localhost
    DB_PORT=27017
    DB_DATABASE=test
    DB_USERNAME=admin
    DB_PASSWORD=Aa123

    و حالا php artisan migrate کنید. ایشالا که همه چی اوکی باشه.

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

    mongorestore --db test ./orgdictionary

    استفاده از Eloquent در لاراول با MongoDB

    اگه میخواید از Eloquent توی لاراول استفاده کنید باید مدل هاتون رو از Eloquent پکیج اسکتند کنید. بعنوان مثال برای مدل Post بصورت زیر عمل کنید:

    use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
    class Post extends Eloquent
    {

    }

    حالا میتونید توی کنترلرتون از App\Post::all() و… استفاده کنید. البته برای جدول یوزر باید یه حرکت بیشتر هم بکنید و اون اینه:

    use Illuminate\Contracts\Auth\Authenticatable;
    use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
    
    use Illuminate\Auth\Authenticatable as AuthenticableTrait;
    class User extends Eloquent implements Authenticatable
    {
         use Notifiable;
         use AuthenticableTrait;
    {

    این باعث میشه که توی مرحله Auth هم به اررور نخورید و مثل حالت معمولی با Auth::attempt لاگین کنید.

  • ریست کردن پسورد MySQL در لینوکس

    با سلام – اگه یادتون رفته که رمز یوزر rootتون چی بود، خیلی راحت میتونید رمز رو با سوپر ادمین ریست کنید و رمز جدید رو ست کنید.

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

    sudo -i

    رمز لینوکس رو وارد میکنید و حالا شروع میکنیم به کار، در مرحله بعد دستور زیر رو بزنید که بدون وارد کردن رمز بتونید وارد محیط خط فرمان مای اس کیو ال بشید:

    mysql

    توجه داشته باشید که خط بالا رو اول باید بزنید که سوپر ادمین بشید و بعد بتونید وارد شید. حالا که همه چی اوکیه با دستور زیر جدول mysql رو انتخاب کنید:

    use mysql;

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

    update user set authentication_string=PASSWORD("my_password") where User='root';

    کارایی که کردیم رو با دستور زیر ذخیره کنید:

    flush privileges;
    exit;

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

    sudo /etc/init.d/mysql stop
    sudo /etc/init.d/mysql start

    حالا exit کنید و با دستور زیر وارد محیط تحت کامند مای اس کیو ال بشید:

    sudo mysql -u root -p

    و لذت ببرید 🙂