آموزش php (وبلاگ یک پی اچ پی کار)

آموزش زبان برنامه نویسی php , html , css , تجربیات یک برنامه نویس

خطای SSL در لاراول برای کلاس Storage موقع اپلود تصاویر روی سرور Object Storage از کامپیوتر لوکال

زمانیکه  در یک پروژه لاراولی قصد ذخیره تصاویر یا فایل های دیگه تون رو بر روی مخازن Object Storage دارید، معمولا روی سیستم لوکال به خطای زیر بر خورد خواهید کرد :
 

Unable to write file at location: images/jnfbQnHpvfnaFjsdSTEV3JSHrlJ84QVELvnYn0xL.webp. Error executing \"PutObject\" on \"https://domain.storage.space/images/jnfbQnHpvfnaFjsdSTEV3JSHrlJ84QVELvnYn0xL.webp\"; AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

 

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

داره میگه که روی کامپیوتر شما SSL برای دامنه تون نصب نشده

یه راهکارش اینه که SSL روی سیستم لوکال تون نصب کنید که آموزش هاش توی اینترنت وجود داره

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

 

وارد فایل زیر بشید :

config/filesystems.php

 

تنظیمات زیر رو یدا کنید :

 

        's3' => [

            'driver' => 's3',

            'key' => env('AWS_ACCESS_KEY_ID'),

            'secret' => env('AWS_SECRET_ACCESS_KEY'),

            'region' => env('AWS_DEFAULT_REGION'),

            'bucket' => env('AWS_BUCKET'),

            'url' => env('AWS_URL'),

            'endpoint' => env('AWS_ENDPOINT'),

            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),

            'throw' => false,

        ],

 

 

تنظیم زیر رو اضافه کنیم:

 

        'http' => [
            'verify' => false
        ],

 

در نهایت میشه این :

 

 

        's3' => [

            'driver' => 's3',

            'key' => env('AWS_ACCESS_KEY_ID'),

            'secret' => env('AWS_SECRET_ACCESS_KEY'),

            'region' => env('AWS_DEFAULT_REGION'),

            'bucket' => env('AWS_BUCKET'),

            'url' => env('AWS_URL'),

            'endpoint' => env('AWS_ENDPOINT'),

            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),

            'throw' => false,

            'http' => [

                'verify' => false

            ],

        ],

 

در پایان هم دستور زیر یکبار اجرا کنید و دیگه خطارو دریافت نخواهید کرد.

php artisan  config:clear

 

۰۴ دی ۰۲ ، ۱۸:۳۴ ۱ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

مشکل عدم نمایش منوی ومپ سرور

یه مشکلی که خیلی ها باهاش مواجه میشن مخصوصا روی ویندوز نسخه 11 که بر میگرده به فرمت ساعت و تاریخ و تنظیمات region در ویندوز اینه که منوی try ومپ سرور اصلا نشون داده نمی شه ، طوری که آیکن ومپ سرور کنار ساعت سیستم نشون داده میشه ولی هرچی روش کلیک میکنی یا راست کلیک میکنی منوهاش باز نمیشن
برای حل این مشکل هم پیشنهاد میکنم Region Setting رو روی انگلیسی تنظیم کنید و گزینه unicode UTF-8 رو هم فعال کنید.

 

اگه با این تغییر مشکل تون حل نشد ، دستور زیر رو به فایل refresh.php که درون پوشه scripts وجود داره اضافه کنید و دوباره ومپ سرور رو اجرا کنید تا بطور کامل این مشکل برطرف بشه

پس وارد مسیر زیر بشید :

C:\wamp64\scripts

در اینجا فایل refresh.php رو پیدا کنید و با یک ادیتور بازش کنید و عبارت زیر رو پیدا کنید :
$WampStartOnOri = $wampConf['wampStartDate'];

بعد از این خط کد ، دستور زیر رو اضافه کنید و فایل رو ذخیره کنید:
$WampStartOnOri = str_replace(['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'], ['0','1','2','3','4','5','6','7','8','9'], $WampStartOnOri);


به این صورت :



 

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

امیدوارم موفق باشید.

 

مهدی حسامی

۰۱ آبان ۰۲ ، ۲۰:۲۷ ۰ نظر موافقین ۱ مخالفین ۰
مهندس مهدی حسامی

نکاتی در خصوص نصب و اجرای صحیح Wampserver

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

حب بریم سراغ اصل مطلب:

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

پیش نیاز های ومپ سرور

 

مشکل دیگه ای که معمولا دوستان باهاش مواجه میشن ، نمایش پیام هشدار متغیر محیطی php هست که عکسشو این زیر میزارم :

 

 

این مشکل هم بر میگرده به اینکه شما در ویندوز خودتون و در قسمت تعریف متغییر های محیطی ، مسیری رو برای php تعریف کردید که Wampserver با اینکار مشکل داره و میگه نباید اینکار بکنید و خودش هم گفته که اگه ابن کار رو بکنید من به مشکل می خورم و برخی عملکردهام درست کار نخواهند کرد. پس راهکار چیه ؟! حذف مسیر php تعریف شده از لیست متغییر های محیطی ویندوز هست.

منظورم اینجاست :

متغییرهای میحطی ویندوز

 

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

 

یه مشکل دیگه ای هم که خیلی ها باهاش مواجه میشن مخصوصا روی ویندوز نسخه 11 که بر میگرده به فرمت ساعت و تاریخ و تنظیمات region در ویندوز

این باعث میشه اصلا منوی try ومپ سرور اصلا نشون داده نشه ، طوری که آیکن ومپ سرور کنار ساعت سیستم نشون داده میشه ولی هرچی روش کلیک میکنی یا راست کلیک میکنی منوهاش باز نمیشن
برای حل این مشکل هم پیشنهاد میکنم Region Setting رو روی انگلیسی تنظیم کنید و گزینه unicode UTF-8 رو هم فعال کنید.

 

اگه با این تغییر مشکل تون حل نشد ، دستور زیر رو به فایل refresh.php که درون پوشه scripts وجود داره اضافه کنید و دوباره ومپ سرور رو اجرا کنید.

پس وارد مسیر زیر بشید :

C:\wamp64\scripts

در اینجا فایل refresh.php باز کنید و عبارت زیر رو پیدا کنید :
$WampStartOnOri = $wampConf['wampStartDate'];

بعد از این خط کد ، دستور زیر رو اضافه کنید و فایل رو ذخیره کنید:
$WampStartOnOri = str_replace(['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'], ['0','1','2','3','4','5','6','7','8','9'], $WampStartOnOri);


به این صورت :



 

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

امیدوارم موفق باشید.

 

مهدی حسامی

۲۱ شهریور ۰۲ ، ۱۰:۰۷ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

دیپلوی پروژه های برنامه نویسی با استفاده از گیت لب رانر

برای اینکه بتونید سورس کد پروه خودتون رو روی سرور پروداکشن تون دیپلوی کنید ، یک روشش اینه که شما با استفاده از رانرهای اشتراکی یا اختصاصی گیت لب وارد سرور دیپلویمنت خود بشید و دستور git clone یا دستور git pull رو اجرا کنید.
این مطلب صرفا جهت ارائه یک کد اولیه هست و شما میتونید از طریق منابع آموزشی مختلف اطلاعات بیشتری رو کسب کنید.

 

برای اینکه در مسیر روت پروژه تون یک فایل با نام .gitlab-ci.yml ایجاد کنید و دستورات زیر رو داخلش قرار بدید. البته فراموش نکنید که مشخصات سرور خودتونو جایگزین کنید.

 

 

stages:
  - deploy

deploy:
  stage: deploy
  before_script:
    - eval $(ssh-agent -s)
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
  script:
    - ssh -p 22 your_host_username@your_host "cd /var/www/html/your_project && git pull your_gitlab_repository_url"
    # از دستور زیر نیز برای کپی کردن سورس کد به داخل سرور خودتون میتونید استفاده کنید
    # - scp -o "UserKnownHostsFile /dev/null" -o "StrictHostKeyChecking no" -P 22 -r path/to/your_project your_host_username@your_host:/var/www/html/your_project/
  only:
    - main  
۲۵ مرداد ۰۲ ، ۲۰:۲۲ ۰ نظر موافقین ۱ مخالفین ۰
مهندس مهدی حسامی

بنچمارک سرور آپاچی در لینوکس

برای سنجش و بچمارک گیری سرور آپاچی از بسته ApacheBench  استفاده نمائید.

 

نمونه دستور :

 

ab -n 1000 -c 100 https://mysite.com/

۰۸ آبان ۰۱ ، ۱۹:۵۶ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

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

سلام برای ایجاد میانبر از پوشه storage لاراول در هاست اشتراکی که دسترسی به ترمینال را ندارید و همچنین محتوای پوشه public در مسیر public_html و بقیه فایل های لاراول در روت سرور قرار دارد از کران جاب زیر استفاده کنید و مسیر هارو طبق هاست خودتون اصلاح کنید.

 

ln -s /home/my_domain/app_path/storage/app/public /home/my_domain/public_html/storage

۲۵ مرداد ۰۱ ، ۱۴:۱۲ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

ایجاد فولدر شورتکات در سیرورهای اشتراکی از طریق ترمینال

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

ln -s /home/username/laravel/storage/app/public /home/username/public_html/storage

۲۵ فروردين ۰۱ ، ۱۷:۵۵ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

تغییر مقدار درون input برای عناصر بایند شده در livewire با جی کوئری یا جاوا اسکریپت

بعضی مواقع لازم است برای عناصری مثل input در صفحه مقادیری رو از طریق جاوا اسکریپت یا جی کوئری تزریق کنیم و از طرفی هم اون input به یک پراپرتی در کامپوننت لایو وایر در لاراول بایند شده

در این حالت مقداری که با جاوا اسکریپت درون اینپوت تزریق میشه در درون متغیر لایو وایری وارد نخواهد شد مگر اینکه شما بعد از تزریق مقدار یک رویداد به وقوع بپیوندانید smiley

 

به این شکل :

 

document.getElementById("name").value = 'Mehdi Hesami';
document.getElementById("name").dispatchEvent(new Event('input'));

 

۰۹ اسفند ۰۰ ، ۱۶:۴۴ ۱ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی