Sign inSign up

khs1994/wsl

By khs1994

Updated about 1 year ago

Image
1

10K+

khs1994/wsl repository overview

Use WSL As PHP Development Environment

编译安装软件请查看上面的链接,为方便修改,文件夹内的配置文件(*.example)均为示例,使用时请去掉 .example 后缀。

注意备份原来的配置文件

设置环境变量

部分设置项可能与 windows/README.md 重复,保证设置过即可,建议操作之前先大概明白每条指令的意义,不要无脑复制!

Windows Path 变量会默认传递到 WSL

打开 PowerShell

$ [environment]::SetEnvironmentvariable("LNMP_PATH", "$env:HOME/lnmp", "User");

$ [environment]::SetEnvironmentvariable("Path", "$env:Path;$env:LNMP_PATH\windows;$env:LNMP_PATH\wsl", "User")
$ sudo vi /etc/profile

# 在文件末尾添加如下内容

export WSL_HOME=/mnt/c/Users/90621 # 注意替换为自己的实际路径

export APP_ENV=wsl

# 保存

$ vi ~/.bash_profile

# 两个文件必须都设置 APP_ENV

export APP_ENV=wsl

脚本安装软件

如果你不想编译安装,那么我写了一个脚本 (脚本 从 Docker 复制编译好的软件 [PHP 最新版] 到 WSL ,或设置 apt 从软件源 [或本人打包的 deb 包] 安装)。

$ lnmp-wsl-install.sh # 输出帮助信息

$ lnmp-wsl-install.sh nginx | php | mysql ...

主版本所有执行文件放到 /usr/local/bin,其他版本请使用绝对路径。

$ lnmp-wsl-install.sh enable php72 | php71 | php70 | php56
PHP 安装路径 /usr/local/phpXX /usr/local/etc/phpXX /var/log/phpXX

特别注意 NGINX

/etc/nginx/nginx.conf 主配置文件必须添加下面的配置项,否则 PHP 页面打开非常缓慢

http {
  ...

  fastcgi_buffering off;

  ...
}

建立文件链接

本例假设将 LNMP 放到了用户主目录

$ sudo ln -sf $WSL_HOME/lnmp/wsl/nginx/ /etc/nginx/conf.d

$ sudo ln -sf $WSL_HOME/lnmp/wsl/php.fpm.zz-wsl.conf /usr/local/php72/etc/php-fpm.d/zz-wsl.conf

$ sudo cp -f $WSL_HOME/lnmp/wsl/mysql.wsl.cnf /etc/mysql/conf.d/wsl.cnf

MySQL

手动设置 APT 之后安装,不建议直接使用 apt install mysql-server(直接安装的是 MariaDB)。

MySQL 远程登陆

可能会遇到不能从除了 localhost 的地址登陆的问题,请查看以下链接解决。

Debian MySQL 初始化请查看:

快捷启动脚本

必须用下面的脚本来控制软件的 启动、重启、停止

$ lnmp-wsl.sh start | restart | stop [SOFT_NAME or all]

WSL Run Docker CLI

$ lnmp-wsl-docker-cli.sh

PHP 扩展列表

$ for ext in `ls`; do echo '*' $( php -r "if(extension_loaded('$ext')){echo '[x] $ext';}else{echo '[ ] $ext';}" ); done
  • bcmath
  • bz2
  • calendar
  • com_dotnet
  • ctype
  • curl
  • date
  • dba
  • dom
  • enchant
  • exif
  • ext_skel
  • ext_skel_win32.php
  • fileinfo
  • filter
  • ftp
  • gd
  • gettext
  • gmp
  • hash
  • iconv
  • imap
  • interbase
  • intl
  • json
  • ldap
  • libxml
  • mbstring
  • mysqli
  • mysqlnd
  • oci8
  • odbc
  • opcache
  • openssl
  • pcntl
  • pcre
  • pdo
  • pdo_dblib
  • pdo_firebird
  • pdo_mysql
  • pdo_oci
  • pdo_odbc
  • pdo_pgsql
  • pdo_sqlite
  • pgsql
  • phar
  • posix
  • pspell
  • readline
  • recode
  • reflection
  • session
  • shmop
  • simplexml
  • skeleton
  • snmp
  • soap
  • sockets
  • sodium
  • spl
  • sqlite3
  • standard
  • sysvmsg
  • sysvsem
  • sysvshm
  • tidy
  • tokenizer
  • wddx
  • xml
  • xmlreader
  • xmlrpc
  • xmlwriter
  • xsl
  • zend_test
  • zip
  • zlib

Tag summary

Content type

Image

Digest

sha256:696820334

Size

56.4 MB

Last updated

about 1 year ago

docker pull khs1994/wsl:khs1994-wsl-php81_8.1.31-centos-9_amd64