Windows Subsystem for Linux(简称 WSL )是一个为在 Windows 10 上能够原生运行 Linux 二进制可执行文件(ELF 格式)的兼容层。
如何启用 WSL 这里不再赘述,下方执行命令过程中出错,可以使用 sudo 再次尝试执行。注意。PHP-FPM 暂时只能通过监听 socket ,不能设置 listen 127.0.0.1:9000!
基于如下软件WSL Ubuntu 16.04.3
nginx 1.13.7
PHP 7.2.0
Mysql 5.7.20
编辑 /etc/apt/sources.list.d/nginx.list 文件。
添加密钥$ sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --keyserver-options timeout=10 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
安装$ sudo apt update
$ sudo apt install nginx
$ sudo nginx
打开 127.0.0.1 看到 nginx 默认页面。
这里简要说明一下。
安装依赖$ sudo apt install autoconf \
dpkg-dev \
file \
libc6-dev \
make \
pkg-config \
re2c \
gcc g++ \
libedit-dev \
zlib1g-dev \
libxml2-dev \
libssl-dev \
libsqlite3-dev \
libfreetype6-dev \
libxslt1-dev \
libcurl4-gnutls-dev \
libpq-dev \
libmemcached-dev \
libzip-dev \
libpng-dev \
libjpeg-dev
下载并解压源码包$ cd /usr/local
$ sudo chmod 777 src
$ cd src
$ wget -O php-7.2.0.tar.gz http://hk1.php.net/get/php-7.2.0.tar.gz/from/this/mirro
$ tar -zxvf php-7.2.0.tar.gz
$ cd php-7.2.0
编译$ ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/conf.d \
--disable-cgi \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--with-curl \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libedit \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-pgsql \
--with-xsl \
--with-zlib \
--with-mhash \
--with-png-dir=/usr/lib \
--with-jpeg-dir=/usr/lib\
--with-freetype-dir=/usr/lib \
--enable-mysqlnd \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip \
--enable-calendar \
--enable-intl \
--enable-exif
安装$ make -j "$(nproc)"
$ sudo make install
设置环境变量
编辑 ~/.bash\_profileexport PATH=/usr/local/php/sbin:/usr/local/php/bin:$PATH
编辑 /etc/sudoersDefaults secure\_path="/usr/local/php/bin:/usr/local/php/sbin:..."
升级 pecl$ sudo pecl update-channels
配置
将源文件中的 php.ini-development 复制到安装目录中的 etc 子目录 ,并改名为 php.ini。
将安装目录中的 etc 子目录中的 php-fpm.conf.default 复制为 php-fpm.conf。
将安装目录中的 etc/php-fpm.d 子目录中的 www.conf.default 复制为 www.conf。非常重要!
编辑 /usr/local/php/etc/php-fpm.d/www.confuser = nginx
group = nginx
listen = /run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
启动$ sudo php-fpm -t
$ sudo php-fpm -D | -F
使用 Docker for Windows$ docker run -it -d --name wsl-lnmp-mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=mytest -e MYSQL\_DATABASE=test --mount src=wsl-lnmp-mysql-data,target=/var/lib/mysql mysql
编辑 /etc/nginx/conf.d/php.confserver {
server\_name 127.0.0.1;
listen 80;
root /app/test;
index index.html index.php;
location / {
try\_files $uri $uri/ /index.php?$query\_string;
}
location ~ .\*\.php(\/.\*)\*$ {
fastcgi\_pass unix:/run/php-fpm.sock;
fastcgi\_index index.php;
fastcgi\_param SCRIPT\_FILENAME $document\_root$fastcgi\_script\_name;
include fastcgi\_params;
}
}$ sudo pecl install redis
编辑配置文件 /usr/local/php/lib/php.ini 在其最后添加extension=redis.so
原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。
如有侵权,请联系 zhuanlan_guanli@qq.com 删除。