上一篇搞定了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的路径。