Rumah >pembangunan bahagian belakang >tutorial php >Tukar versi php pada tingkap dengan satu arahan
Dalam artikel ini saya akan menunjukkan kepada anda cara menukar antara versi PHP anda daripada terminal anda tanpa membukanya semula atau menggunakan "lihat tetapan sistem lanjutan".
Pergi ke https://cmder.app, muat turun dan ekstrak zip cmder di tempat yang sesuai untuk anda, lihat seterusnya siaran ini Bagaimana cmder menjadikan hidup saya lebih mudah - bahagian I dan bahagian II di mana anda boleh mendapatkan butiran tentang cara memasang cmder dan konfigurasikan alias anda sendiri.
Kami perlu untuk tujuan demo untuk memuat turun versi php yang berbeza dan melakukan itu ke arkib PHP, dan memuat turun versi yang anda mahu, selepas itu mengekstraknya dalam folder tertentu ("C:php-archive" contohnya ).
Setelah anda selesai, buka "lihat tetapan sistem lanjutan" dan buat pembolehubah baharu untuk versi PHP anda yang berbeza (lihat imej di bawah).
Seterusnya, anda akan menambah satu lagi pembolehubah yang anda akan mempunyai nama "current_php" sebagai contoh, pembolehubah ini akan memegang versi php semasa anda bila-bila masa anda menukarnya, kemudian merujuknya di dalam pembolehubah laluan (lihat imej di bawah).
Sekarang kami telah menyediakan segala-galanya dalam tetapan sistem lanjutan, kami akan pergi ke chocolatey.org dan memasang chocolatey, yang akan membolehkan anda mengemas kini pembolehubah persekitaran.
Buka Powershell dengan hak pentadbir dan ikut sahaja arahan untuk memasangnya dengan cara yang betul, apabila anda selesai taip choco atau choco -v dalam terminal untuk melihat sama ada anda berjaya memasangnya dan versi yang anda ada.
Mula-mula, mulakan terminal anda dengan hak pentadbir (jika tidak, langkah seterusnya tidak akan berfungsi !! ), untuk menukar versi php anda, anda perlu menaip setx current_php [lokasi_php_target_anda] /m di mana [target_php_lokasi_anda] ialah laluan mutlak ke versi php yang anda mahukan atau gunakan salah satu versi php anda yang anda takrifkan di sini seperti setx current_php %php7% /m, kini anda telah menukar php kepada versi 7.0 dalam persekitaran laluan, tetapi terminal anda tidak tahu bahawa, untuk memuat semula kemas kini, anda memerlukan arahan lain iaitu RefreshEnv.cmd, alias refreshenv, yang ini disertakan dengan coklat, semak Persekitaran Sesi Kemas Kini.
Langkah terakhir ialah membuat alias berguna untuk menjadikan proses lebih mudah, buat alias seperti ini: setphp=setx current_php %$1% /m $t refreshenv sekarang kita boleh mengambil contoh sebelumnya ( setx current_php %php7% / m ) dan lakukan setphp php7 ini, php7 akan menggantikan pembolehubah $1 di dalam menggunakan alias yang akan bersamaan dengan setx current_php %php7% /m $t refreshenv, kemudian semak dengan php --version.
Dalam langkah ke-4 kami bercakap tentang memulakan terminal anda dengan hak pentadbir, tetapi sudah tentu anda tidak akan ingat untuk melakukannya setiap kali, jadi untuk menyelesaikan isu ini, kami memerlukan sesuatu tambahan.
# Parameters: param( [string]$variableName, [string]$variableValue ) # Check if running as administrator If (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { # Relaunch as administrator with hidden window $arguments = "-ExecutionPolicy Bypass -File `"$PSCommandPath`" -variableName `"$variableName`" -variableValue `"$variableValue`"" Start-Process powershell -ArgumentList $arguments -Verb RunAs -WindowStyle Hidden exit } if ($variableName -and $variableValue) { $variableValueContent = [System.Environment]::GetEnvironmentVariable($variableValue, [System.EnvironmentVariableTarget]::Machine) if ($variableValueContent) { [System.Environment]::SetEnvironmentVariable($variableName, $variableValueContent, [System.EnvironmentVariableTarget]::Machine) } else { [System.Environment]::SetEnvironmentVariable($variableName, $variableValue, [System.EnvironmentVariableTarget]::Machine) } Write-Host "Environment variable '$variableName' set to '$variableValue' at the system level." } else { Write-Host "Please provide both a variable name and value." }
Simpan skrip powershell ini di suatu tempat di bawah nama set-env.ps1 dan pergi ke terminal cmder anda, buat alias seperti ini setvar=powershell -ExecutionPolicy Bypass -Fail "/your/path/to/set-env.ps1" $1 $2 && refreshenv, alias ini akan mendapat 2 parameter dan menghantarnya ke skrip powershell, paramtere $1 akan memegang nama pembolehubah persekitaran, dan $2 akan memegang nilai pembolehubah persekitaran, diikuti dengan perintah coklat untuk memuat semula segala-galanya untuk terminal anda, skrip kemudian menyemak "keistimewaan pentadbiran" untuk menjalankan perintah setx dengan hak pentadbir.
Memandangkan kami sebelum ini bercakap tentang pembolehubah "current_php", kami akan menggunakannya sebagai contoh, untuk menggunakan alias baru kami setvar untuk menukar versi php walaupun kami tidak memulakan cmder dengan hak pentadbir, kami menaip setvar current_php php7, atau jika anda suka menggunakan laluan mutlak jenis setvar current_php your/target/php/location.
Isu yang saya temui selepas menukar versi php, ialah kata kunci alias dan semua arahan linux yang disokong tidak lagi berfungsi pada cmder, dan penyelesaian yang saya temui untuk itu setakat ini ialah menambah "C:Cmdervendorgit-for-windowsusrbin" dan "C:Cmdervendorbin" ke pembolehubah persekitaran laluan.
Sudah tentu anda boleh melakukan sesuatu seperti ini, buat alias php8 untuk /your/path/to/php8/php.exe dan jalankan kod php anda hanya dengan menaip php8 my-script.php tetapi apabila ia datang kepada sesuatu seperti komposer atau apa-apa sahaja yang bergantung pada pembolehubah laluan anda, maka anda akan memerlukan sesuatu yang lebih gigih, oleh itu artikel ini.
Seperkara lagi, seperti yang anda mungkin simpulkan, anda boleh menggunakan perintah setx dan coklat untuk mengemas kini sebarang pembolehubah persekitaran yang anda suka.
Atas ialah kandungan terperinci Tukar versi php pada tingkap dengan satu arahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!