6.子系统WSL ubuntu18.04安装php7.3

我现在默认的源好像并没有php7.3,默认的应该是php7.2
那么得找个有新版本的源

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update

然后开始安装

$ sudo apt-get install -y php7.3 \
php7.3-fpm \
php7.3-curl \
php7.3-gd \
php7.3-intl \
php7.3-mbstring \
php7.3-mysql \
php7.3-imagick \
php7.3-recode \
php7.3-imap \
php7.3-sqlite3 \
php7.3-tidy \
php7.3-xmlrpc \
php7.3-zip

注意:
1.php7不支持mysql扩展,改为mysqli,PDO
2.memcache扩展新老不通用
3.php7不支持ereg_replace()函数改为preg_replace()
4.php7.1后不支持mcrypt,推荐openssl_*系列的函数
5.phpize (php7安装后自带) /usr/local/php7/bin/phpize
不存在 php7.3-pcntl 这个扩展包,这是PHP原生代码里就有的
6.php7.3-mysql包括 mysqli mysqlnd

安装其他扩展(按需安装)

sudo apt-get install php7.3-soap
sudo apt-get install php7.3-gmp
sudo apt-get install php7.3-odbc
sudo apt-get install php7.3-pspell
sudo apt-get install php7.3-bcmath
sudo apt-get install php7.3-enchant
sudo apt-get install php7.3-ldap
sudo apt-get install php7.3-opcache
sudo apt-get install php7.3-readline
sudo apt-get install php7.3-bz2
sudo apt-get install php7.3-interbase
sudo apt-get install php7.3-pgsql
sudo apt-get install php7.3-sybase
sudo apt-get install php7.3-xsl
sudo apt-get install php7.3-cgi
sudo apt-get install php7.3-dba
sudo apt-get install php7.3-phpdbg
sudo apt-get install php7.3-snmp

(我觉得有些PHP原生集成了)

创软链接,方便引用
ln -s /etc/init.d/php7.3-fpm /etc/init.d/php-fpm

默认会安装apache2的httpd服务,关掉它
sudo service apache2 stop
卸载apache2
之前卸载重新安装后找不到apache2.conf配置文件,测试使用一下方式卸载后可用。

(1)

 $ sudo apt-get --purge remove apache-common
 $ sudo apt-get --purge remove apache2
 $ sudo apt-get autoremove

(2)找到没有删除掉的配置文件,一并删除

$ sudo find /etc -name "*apache*" -exec rm -rf {} \;
或者
$ sudo find /etc -name "*apache*" |xargs rm -rf
$ sudo rm -rf /var/www
$ sudo rm -rf /etc/libapache2-mod-jk
#我不知道下面这个干嘛的,有人解释吗
#dpkg -l |grep apache2|awk '{print $2}'|xargs dpkg -P
#这样就只有nginx

nginx和fastcgi的通信方式有两种,
一种是TCP socket的方式,TCP是使用TCP端口连接127.0.0.1:9000
一种是unix socket方式,
因为wsl安装的php-fpm默认是unix socket,
我就没改动了
/php/7.3/fpm/pool.d/www.conf中配置
listen = /run/php/php7.3-fpm.sock
启动以后是随机端口
所以相应的,nginx里面也使用
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
来反代连接
解决nginx编译php巨慢的方法:
只要在nginx php配置中添加一句fastcgi_buffering off;
或者,你也可以编辑,不建议配置,主要是麻烦
vim /etc/php/7.2/fpm/pool.d/www.conf
内容为

[port]
user = www-data
group = www-data
listen = 9000
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 30
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 30
request_terminate_timeout = 300
request_slowlog_timeout = 120
slowlog = /var/log/slow.log

win10打开CMD 创建目录软链接
mklink /j C:\www D:\workspace\html
新的快捷方式 C:\www
你的实际工作 D:\workspace\html
这样你的nginx访问/mnt/c/www 等于访问D:\workspace\html

现在开始配置nginx
/etc/nginx/nginx.conf
注释
include /etc/nginx/sites-enabled/*;
配置php和nginx的反代

location ~* \.php$
{
	# rewrite ^(.*)$ https://$host$1 permanent;
	try_files $uri =404;
	fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_buffering off;
	include fastcgi_params;
}
#修改网站根目录为win10的C盘www目录
#root /usr/share/nginx/html;
root /mnt/c/www;
点赞