记一下自己折腾wsl的历史(2)

    上一篇搞定了wsl的ubuntu,这篇装mysql,nginx,php,phpmyadmin

apt install mysql-server mysql-client

修改默认端口

cd /etc/mysql/mysql.conf.d
vim mysqld.cnf

运行mysql,注意wsl不支持开机启动,所以没必要设置开机服务。

service mysql start

在本机登陆下mysql

mysql -u root -p

成功登陆,那么mysql就搞定了,接下来nginx

apt install nginx

再安装php

apt install php-fpm
apt install php-mysql php-mbstring

配置nginx

cd /etc/nginx/sites-available
vim default

修改 root目录  root /var/www/html 改成自己需要的目录

在下面一行index.htm 后添加 index.php

下面的location一节改成

location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

进入php目录修改php.ini

cd /etc/php/7.0/fpm

找到并修改

cgi.fix_pathinfo=0

修改php-fpm的www.conf文件

cd /etc/php/7.0/fpm/pool.d
把里边的
listen = unix:/run/php/php7.0-fpm.sock改成listen = 127.0.0.1:9000

注意注意注意重点要说3遍一定要把listen从unix socket改成tcp socket,好像是因为ms的wsl对unix socket的支持还不够好,所以用unix socket会出现php网页只显示空白,去/var/log/nginx 下查看error.log只会提示

upstream timed out (110: Connection timed out) while reading upstream

更坑的是只有<?php phpinfo(); ?>这句内容的php页面能显示 显示 示。。。被这个深坑坑了好久。

更正,又去翻了ms在github上wsl的issue,发现有用unix socket的解决方案

就是/etc/nginx/nginx.conf里http段加入就可以解决这个问题。

http {
    ...
    fastcgi_buffering off;
    ...
}

启动php-fpm和nginx

service php7.0-fpm start
service nginx start

在nginx目录下建立一个index.php内容为

<?php phpinfo(); ?>

然后在浏览器访问127.0.0.1,成功就能看到php探针页面。

如果要装phpmyadmin那么

apt install phpmyadmin

安装中有2次提示,第一次是在apache和lighttpd中选一个,因为用的是nginx,所以随便选或者esc跳过,第二次是是否用mysql存phpmyadmin的配置,选是就是存mysql,选否就是用config.inc.php来存。

装完后在nginx里配置下root 路径就行了。或者直接软连接phpmyadmin和nginx的路径。


阅读更多
文章标签: wsl nginx php
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

记一下自己折腾wsl的历史(2)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭