Archive for the ‘Programming’ Category

0235 | ใช้ php บน WSL กับ VSCode

Friday, November 16th, 2018 Posted in Linux, PHP Coding, Programming | No Comments »

1) เปิด wsl ขึ้นมา สั่ง sudo vi /usr/local/bin/windows-php ใส่ข้อมูลตามนี้

# Pass all the arguments to PHP.
output=$(php "$@")
# Perform UNIX->WINDOWS syntax replacements.
output="${output//$'\n'/$'\r'$'\n'}"
output="${output//\/mnt\/c/C:}"
output="${output//\//\\}"
# Echo corrected output.
echo $output

2) สั่ง sudo chmod +x /usr/local/bin/windows-php
3) สร้างไฟล์ php.bat เก็บไว้ซักที่ในฝั่ง windows (สมมติ c:\apps\php.bat) ใส่ข้อมูลตามนี้

@echo off
 
setlocal ENABLEDELAYEDEXPANSION
 
rem Collect the arguments and replace:
rem  '\' with '/'
rem  'c:' with 'mnt/c'
rem  '"' with '\"'
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:C:=/mnt/c%
set v_params=%v_params%
set v_params=%v_params:"=\"%
 
rem Call the windows-php inside WSL.
rem windows-php is just a script which passes the arguments onto
rem the original php executable and converts its output from UNIX
rem syntax to Windows syntax.
C:\Windows\system32\bash.exe -l -c "windows-php %v_params%"

4) ใน vscode ตั้ง setting ตามนี้

    "php.validate.executablePath": "C:\\apps\\php.bat"

reference: https://github.com/Microsoft/vscode/issues/22391

0141 | แก้ปัญหา WP SuperCache ขึ้น File name too long

Monday, December 24th, 2012 Posted in PHP Coding, Programming | No Comments »

ท่านที่ใช้ wordpress ใช้ wp-supercache กันอยู่ใช่มั้ยครับ? เคยประสบปัญหา permalink เป็นภาษาไทยยาวจน wp-supercache ไม่ทำงานรึเปล่า?
ตอนนี้ TV Direct ขอนำเสนอ… plugin ของ wp-supercache (อีกที) เพื่อแก้ปัญหา url ยาวเกินจนทำให้สร้าง folder cache ไม่ได้ครับ

ไม่ต้องซื้อ ไม่ต้องหา ก๊อปวางกันได้ที่นี่สบายๆ เอาไปใส่ที่ folder wp-content/plugins/wp-super-cache/plugins/ สร้างไฟล์ชื่ออะไรก็ได้ แล้วใส่ข้อมูลไปตามนี้ครับ

<?php
function iz_wpscfix_dir($uri) {
        $uris = explode('/', $uri);
        $result = array();
        foreach ($uris as $path) {
                if (strlen($path) > 250) {
                        $path = substr($path, 0, 220).'-'.md5($path);
                }
                $result[] = $path;
        }
        return implode("/",$result);
}
add_cacheaction('supercache_dir', 'iz_wpscfix_dir', 0);

แค่นี้ก็แก้ปัญหาเรียบร้อย ส่วน rewrite url มีปัญหาไม่ทำงานนิดหน่อยไม่เป็นไร ใช้ PHP serve แทนได้ ก็พอจะช่วยลด load ลงได้เยอะอยู่ครับ ^^

Tags: , ,