二更来了。不过是更新一些量哦,第一篇速速就到。

开机自启动软件。

开机自启我有两种解决方案,都是可以的。但是对需要最好外挂服务的软件,可能不行哦。PHP、nginx、mysql是可以的。

Windows+WSL2双管齐下方法

先创建一个/etc/init.wsl文件,在vim编辑器打开。

#! /bin/sh
/etc/init.d/bt reload
/usr/local/soft/php8/sbin/php-fpm
/etc/init.d/nginx start

文件权限755即可。

然后在Windows下,win+r,输入shell:startup

会显示一个文件资源管理器在C:\Users\自己电脑名字\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup路径下。

在这之前,先创建一个vbs文件。

用任何可以编辑的编辑器,复制粘贴下面code。

Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d ubuntu -u root /etc/init.wsl"

如图所示VSCode

WSL2+启用systemd自主解决方法

安装daemonize

sudo apt-get install daemonize

然后执行下面命令开启。

sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target

exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME

然后就是写份shell脚本,把启动外挂到service里面来启动。

vim /etc/systemd/system/***.service自行创建。

[Unit]
Description=EnEnEn
After=sshd.service

[Service]
ExecStart=/root/my.sh

[Install]
WantedBy=multi-user.target

前置服务是sshd。不过莫得问题。

然后就是/root/my.sh文件了。

#!/bin/bash
#description:开机自启动小程序

#开启
echo 'opening PHP8'
/usr/local/soft/php8/sbin/php-fpm
echo 'opening Nginx'
/etc/init.d/nginx start
echo 'opening MySQL'
service mysql start
echo 'opening BTPanel'
/etc/init.d/bt reload

保存就行了。记住一样,755命令。

WSL2手动编译PHP8

安装PHP8是因为在WSL2下,我宝塔版本的PHP7.2出了不少自启动问题。所以,无奈下选择了自己编译安装。而且刚好自己有镜像站了,可以测下自己镜像站情况。

首先,下载软件包,linux首选tar.gz。

wget -c https://oranme-cdn.haohanyh.com/mirrors.haohanyh/PHP/php-8.0.7.tar.gz
tar -zxvf php-8.0.7.tar.gz

然后进入php文件夹,手动配置。

cd php-8.0.7/
./configure --prefix=/usr/local/soft/php8 --with-config-file-path=/usr/local/soft/php8/etc --with-curl --with-freetype --enable-gd --with-jpeg --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl --with-zlib --with-zip -with-bz2 --with-iconv --enable-fpm --enable-pdo --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd

编译挺慢的,可以耐心等待。出现了配置成功如下就行。

+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+

Thank you for using PHP.

然后就是编译和安装了。

make

make后的提示,如下就说明过关了。

Build complete.
Don't forget to run 'make test'.

不放心的,自己make test,接下来就是安装了。

make install

如果喜欢直接编译安装的,可以直接使用下面命令,其实都是可以的。make && make install

测试下有没有安装成功了。/usr/local/soft/php8/bin/php --version

root@DESKTOP:~# /usr/local/soft/php8/bin/php --version
PHP 8.0.7 (cli) (built: Jun 16 2021 22:32:40) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.7, Copyright (c) Zend Technologies
root@DESKTOP:~#

生成php.ini

cp php.ini-production /usr/local/soft/php8/etc/php.ini

生成www.conf

cd /usr/local/soft/php8/etc/php-fpm.d/
cp www.conf.default www.conf

启用php-fpm

/usr/local/soft/php8/sbin/php-fpm

查看进程是否启动了 ps auxfww | grep php | grep -v grep

root@DESKTOP:~# ps auxfww | grep php | grep -v grep
root 3375 0.0 0.0 83100 11484 ? Ss 10:39 0:00 php-fpm: master process (/usr/local/soft/php8/etc/php-fpm.conf)
www 3376 0.0 0.0 83472 15736 ? S 10:39 0:00 \_ php-fpm: pool www
www 3377 0.0 0.0 83472 16060 ? S 10:39 0:00 \_ php-fpm: pool www
root@DESKTOP:~#

查看php-fpm端口情况 ss -lntp | grep php

root@DESKTOP:~# ss -lntp | grep php
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:* users:(("php-fpm",pid=3377,fd=5),("php-fpm",pid=3376,fd=5),("php-fpm",pid=3375,fd=7))
root@DESKTOP:~#

基本上就是安装OK了。接下来就是让PHP参数可见化了。当然我们是WSL2内网环境,可以随意折腾。外网环境的小伙伴得注意。

Nginx+php8配合

创建一个phpinfo文件,在/www/wwwroot/127.0.0.1文件夹下。(注意!本篇此步为内网环境,外网环境请酌情考虑后小心小心再小心)

root@DESKTOP:~# cat /www/wwwroot/127.0.0.1/info.php
<?php
phpinfo();
?>
root@DESKTOP:~#

宝塔创建网站,如果是nginx自己编译安装的,自行参考。

配置文件添加如下东西:

            location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_split_path_info ^(.+\.php)(/.*)$;
# fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}

因为我端口是9000,不是9000不要直接复制套用!!!*

如图所示phpinfo

End.