Showing results for “php”

12 results found

  • PHP Artisan Tinker crashing from any command

    Topic
    Save Pongsiri 1 month ago

    If you are using PHP 7.3 installed by homebrew on Mojave, try creating a config file at ~/.config/psysh/config.php if not already there:<?php return [ 'usePcntl' => false, ]; Source: https://github.com/bobthecow/psysh/issues/540#issuecomment-446480753https://stackoverflow.com/questions/53773098/php-artisan-tinker-crashing-from-any-command

  • ตั้งค่าใช้งาน docker กับ laravel ด้วย laradock

    Article
    Save Pongsiri 1 month ago

    สำหรับผู้เริ่มต้นใช้งาน docker ที่ต้องการตั้งค่า laravel ให้สามารถรันได้กับ docker ทำได้ง่าย ๆ โดยใช้ laradock ที่ถูกสร้างมาเพื่อการนี้โดยเฉพาะเลย ซึ่งผมได้สร้างโปรเจค laravel และตั้งค่าใช้งาน laradock ไว้แล้วที่ https://github.com/savepong/laravel-docker สามารถ git clone เอาพัฒนาต่อได้เลยครับ ส่วนถ้าใครอยากทำเองตั้งแต่ต้นก็ทำตามบรรทัดด้านล่างนี้ได้เลยครับก่อนเริ่มต้นให้ดูทรัพยากรใช้เครื่องของเราด้วยว่าได้รัน service พวก apache, nginx, mysql ผ่าน port ปกติ เช่น 8080, 3306 ไว้รึเปล่า ถ้าถูกใช้ port ที่ว่าไว้อยู่แล้ว แนะนำว่าใช้ stop service พวกนี้ไปก่อน จะได้ไม่ชนกับ port ที่เรากำลังจะรันจาก docker ครับ หรือไม่ก็ตั้งค่าให้ docker ไปรัน service ที่ port อื่นแทนครับติดตั้ง Laradockสร้าง laravel โปรเจคlaravel new my-project clone laradock มาไว้ใน directory ของโปรเจคgit clone https://github.com/Laradock/laradock.git เข้าไปยัง directory ที่ชื่อว่า laradock จากนั้น ทำการคัดลอก env-example แล้วเปลี่ยนชื่อเป็น .envcd laradock cp env-example .env ตั้งค่า .env จากค่าเริ่มต้นของ laradockDB_CONNECTION=mysql DB_HOST=mariadb #IP ของ host ถ้าเราใช้ mysql container ก็ใส่ mysql แทน DB_PORT=3306 DB_DATABASE=defaul DB_USERNAME=root DB_PASSWORD=root ใช้งาน Laradockสร้าง container จากไฟล์ docker-compose.ymldocker-compose up -d nginx mariadb workspace ถ้าขึ้น success ก็เปิด http://localhost ดูผลลัพธ์ได้เลยตั้งค่าเพิ่มเติมssh ไปยัง docker container ที่ชื่อว่า workspacedocker-compose exec --user laradock workspace bash ติดตั้งแพคเกจต่างเพิ่มของ Laravel ด้วยคำสั่งcomposer install php artisan key:generate php artisan migrate หากเราต้องการเชคสถานะสามารถทำได้โดยdocker ps Referral linkslaradock.ioสร้าง-laravel-environments-บน-docker-ง่ายๆด้วย-laradock-7c5abf362538

  • วิธีแก้ไข: PHP Fatal Error: Allowed Memory Size Exhausted

    Topic
    Save Pongsiri 3 months ago

  • สร้าง Helpers เองใน Laravel

    Article
    Save Pongsiri 6 months ago

    อย่างที่รู้กันว่า Laravel มี helpers เริ่มต้นมาให้เราใช้กันอยู่แล้ว (ดูคู่มีได้ที่ https://laravel.com/docs/5.7/helpers)แต่บางโปรเจคเราอาจต้องสร้าง helper ขึ้นมาเอง เพื่อใช้งานกับเฉพาะบางอย่างกับโปรเจคนั้นๆ โดยแนะนำให้สร้างไฟล์ .php ไว้ที่โฟลเดอร์ app เราอาจจะตั้งชื่อไฟล์ว่า app/helpers.php ก็ได้นะจากนั้นก็ตั้งค่าให้ Laravel โหลดไฟล์นี้ก่อนทำอย่างอื่น โดยการเปิดไฟล์ composer.json แล้วหาในส่วนของ autoload จะเห็นหน้าตาประมาณนี้... "autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/" } }, ...เราจะทำงานเพิ่มชื่อไฟล์ที่เราพึ่งสร้างเข้าไป... "autoload": { "files": [ "app/helpers.php" ], "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/" } }, ...แล้วก็ dump composer ใหม่ด้วยครับcomposer dump-autoloadตอนนี้ก็ถือว่าไฟล์ Helpers ได้ถูกต้อง autoload ไว้แล้ว เรามาก็ลองสร้าง function ไว้ที่ไฟล์ app/Helpers.php ของเรากัน ตัวอย่างด้านบนเป็น function ไว้เช็คชื่อ Route ที่กำลังเปิดอยู่ เพื่อที่เราจะเอาไปใช้ใส่ class ของ css เวลาที่จะทำให้ลิงค์นั้นมัน active (ดูว่า URL ที่กำลังเปิดอยู่มีชื่อ Route ว่า ... จริงมั้ย? ถ้าใช่ให้ return คำว่า "active" ออกมา)เอาไปใช้ที่ไฟล์ blade ได้เลยนี่เป็นตัวอย่าง helper นึงนะครับ เราสามารถสร้าง helper เองกันได้เลยโดยเพิ่ม function ไว้ที่ไฟล์ app/helpers.php นั่นแหละ (เขียนเช็คสักหน่อยว่ามีฟังก์ชั่นนี้หรือยังด้วยนะ) ที่นี่เราก็มี helpers ของตัวเองสำหรับโปรเจคของเรากันแล้ว

  • วิธีแก้ปัญหาการติดตั้ง PHP7.2 ใน macOS ไม่ได้

    Topic
    Save Pongsiri 6 months ago

    จากปัญหาที่พอจะเซ็ตให้ macOS ใช้ PHP7.2 brew link php72แล้วขึ้น Error ประมาณนี้Linking /usr/local/Cellar/php71/7.1.14_25...Error: Could not symlink sbin/php-fpm/usr/local/sbin is not writable.ให้เราลองเช็คว่ามีไฟล์นี้อยู่จริงมั้ยls /usr/local/sbin ถ้าไม่นี้เราจะเห็นข้อความนี้ls: /usr/local/sbin: No such file or directoryให้เราสร้างไฟล์ sbin และกำหนดสิทธ์ให้อยู่กลุ่ม adminsudo  mkdir -p /usr/local/sbinsudo chown -R $(whoami):admin /usr/local/sbinแล้วก็สั่ง link อีกทีนึงครับbrew link php72เรียบร้อยแล้วLinking /usr/local/Cellar/php71/7.1.14_25... 17 symlinks created** วิธีนี้อาจจะปรับใช้ได้กับ PHP เวอร์อื่นๆ

  • วิธีรัน Laravel บนแชร์โฮส แบบไม่ต้อง /public

    Topic
    Save Pongsiri 7 months ago

    เมื่อเราต้องอัปโปรเจค Laravel ของเราขึ้นไปโฮสที่เป็นแชร์โฮสที่มีโฟลเดอร์ public_html มาให้เราอัพเว็บได้อย่างเดียว สิ่งที่เราต้องทำคือ ถ้าเราสามารถอัปไฟล์นอกโฟลเดอร์ public_html ได้ เราก็อัปขึ้นไปที่โฟลเดอร์นอก public_html แล้วเปลี่ยนชื่อโฟลเดอร์ public ใน laravel เป็น public_html แทนก็ได้ แต่ถ้าเราไม่มีสิทธิ์อัปไฟล์นอกโฟลเดอร์ public_html แล้วละก็ ให้ใช้วิธีนี้เป็นวิธีสุดท้าย (เพราะความปลอดภัยมันน้อยกว่า)1. ย้ายทุกอย่างจากโฟลเดอร์ /public ออกมาอยู่ในโฟลเดอร์โปรเจค 2. เปิดไฟล์ index.php ขึ้นมา แล้วแก้ไขตามนี้require __DIR__.'/bootstrap/autoload.php';$app = require_once DIR.'/../bootstrap/app.php';

  • วิธีแก้ปัญหา SoftException writable by group

    Topic
    Save Pongsiri 10 months ago

    สำหรับใครที่ใช้ centos แล้วอัพเว็บขึ้นด้วย git พอ cloneโปรเจคมาแล้วปรากฎว่าเว็บรันไม่ได้ขึ้น internal error 500 ลองเข้าไปเช็ค error log เจอข้อความแบบนี้SoftException in Application.cpp:256: File "/home/username/public_html/index.php" is writeable by groupวิธีแก้คือ1. แก้ไขไฟล์ ~/.bash_profile เพิ่มบรรทัดนี้ลงไปumask 0222. เปลี่ยน permission ให้กับทุกไฟล์และโฟลเดอร์เป็น 755chmod -R 755

  • วิธีเซ็ต .htaccess เมื่ออัพ laravel ขึ้น cPanel

    Topic
    Save Pongsiri 10 months ago

    cPanel ใช้ apache เป็นเว็บเซิร์ฟเวอร์อยู่แล้วดังนั้นแก้ไขไฟล์ .htaccessRewriteEngine OnOptions +FollowSymLinksRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^ index.php [L]RewriteRule ^(.*)$ public/$1 [L]

  • ติดตั้ง php บน macos ด้วย brew

    Topic
    Save Pongsiri 11 months ago

    First install Brew on your MACSetup Brew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew updatebrew tap homebrew/dupesbrew tap homebrew/phpInstall PHP 7.0.+ brew install php70Install mcrypt: brew install mcrypt php70-mcryptFinally, install composer: brew install composerNow if you run $ php -v, you will get PHP 5.5 or something. This is the default PHP version that is shipped with OSX and cannot be removed. You just need to edit your path to ensure that PHP 7.0 is picked up.export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"To debug any issue with any package, you can run brew info php70 etc.Also, if you are getting seemingly unrelated errors, make sure to update bash/zsh: brew upgrade bash and brew upgrade zsh.If everything is setup correctly, running $ php -v should give you 7.0.+.Thank! https://gist.github.com/shashankmehta/6ff13acd60f449eea6311cba4aae900a

  • Laravel วิธีตั้งค่าให้เป็น https เมื่ออยู่บน production

    Topic
    Save Pongsiri 11 months ago

    <?phpnamespace App\Providers; ...use Illuminate\Support\Facades\Schema;... class AppServiceProvider extends ServiceProvider{    /**     * Bootstrap any application services.     *     * @return void     */    public function boot()    {        ...    }    /**     * Register any application services.     *     * @return void     */    public function register()    {         if (config('app.env') == 'production') {            $this->app['url']->forceScheme('https');        }    }}

  • วิธีรัน serve ของ laravel ให้เครื่องอื่นเปิดดูได้

    Topic
    Save Pongsiri 11 months ago

    sudo php artisan serve --host 192.168.1.101 --port 80

  • วิธีแก้ปัญหา paginator หน้าอื่นๆ ไม่เป็น https ใน laravel

    Article
    Save Pongsiri 1 year ago

    กรณีนี้เกิดจาก forceSchema('https') ที่เราตั้งค่าไว้เพื่อให้เปลี่ยนทุกอย่างเป็น https มันไม่ส่งผลกับ url ใน paginator เมื่อมันมีพวก X-FORWARDED อยู่นะสิ ดังนั้นทางแก้ของเราก็คือสร้าง middleware ขึ้นมาสำหรับตั้งค่าเชื่อถือ Proxy ของเราครับตั้งชื่อไฟล์ app/Http/Middleware/HttpsProtocol.phpแล้วก็ไปบอก Kernel.php ให้รู้จักกันซะ ที่ไฟล์ app/Http/Kernel.php