大家好,手机网站引导页源码分享php相信很多的网友都不是很明白,包括手机获取网站源码也是一样,不过没有关系,接下来就来为大家分享关于手机网站引导页源码分享php和手机获取网站源码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
一、WSL2安装CentOS8
在前面的文章中介绍了WSL(Win-dowsSub-sys-temforLinux)、在Win10中的安装与配置WSL2。
WSL2——Windows10V2004版安装配置第二代Linux的Windows子系统
如文中所示,首先安装配置完成WSL2,然后Ubuntu20等Linux发行版在Windows应用商店(store)中直接点击安装即可。本人为了和线上服务器环境保持一致,想安装CentOS8,但是Windows应用商店中却没有包含CentOS。那么在安装好WSL之后,如何不通过store而手动安装适配WSL的Linux发行版呢?
1、安装Chocolatey
NuGet(读作NewGet)是用于微软.NET开发平台的软件包管理器,是一个VisualStudio的扩展。Chocolatey是基于NuGet的一个软件包管理器,就像Linux中的yum或apt一样,在Windows10中也可以用命令行安装程序了。
右键单击开始菜单,选择WindowsPowerShell(管理员),打开一个具有管理员权限的PowerShell窗口,输入命令并回车:
Set-ExecutionPolicyBypass-ScopeProcess-Force;iex((New-ObjectSystem.Net.WebClient).DownloadString(&39;))
完成后,输入命令:choco,如果能正确显示版本号,说明安装成功。
官网文档:https://chocolatey.org/docs/installation
2、安装LxRunOffline
LxRunOffline是非常实用的WSL管理软件,可以备份、创建、恢复、导出WSL子系统,也可以安装适配WSL的任何Linux发行版,可以将WSL子系统安装到任意目录中。
在PowerShell窗口中输入命令安装LxRunOffline,安装完成后重启PowerShell。
chocoinstalllxrunoffline-y
3、下载CentOS镜像
GitHub上有开源的适用于WSL的CentOS系统安装镜像,打开项目页面,选择CentOS8分支,进入docker目录,下载文件centos-8-x86_64.tar.xz,假如下载后保存在D盘下。
https://github.com/CentOS/sig-cloud-instance-images/tree/CentOS-8-x86_64/dockergithub.com
4、安装CentOS镜像
安装WSL子系统的命令行格式为:
LxRunOfflineinstall-n自定义系统名称-d安装目录路径-f安装包路径.tar.xz
重新启动PowerShell,输入命令安装CentOS镜像:
LxRunOfflineinstall-ncentos-dC:/centos-fD:\\centos-8-x86_64.tar.xz
表示将CentOS系统安装到C盘的centos文件夹下,并且命名为centos。注意:Windows系统命令行中的文件路径和Linux系统不同,这里安装目录C:/要用Linux方式的反斜线表示,是为了WSL使用;而安装包路径D:\\是为了LxRunOffline使用,是Windows下的路径。
查看所有已安装镜像,能够显示已安装的centos,表示安装成功。
LxRunOffline.exelist
如果安装失败也会出现centos目录,安装失败重新安装时需要卸载镜像,另外安装目录在C盘在卸载时可能存在权限问题,卸载后如果目录没有删除可以手动删除目录。
卸载WSL系统镜像命令:
LxRunOffline.exeuninstall-ncentos
5、升级为WSL2
输入命令并回车,列出已经安装的WSL的信息
wsl-l-v
将对应的WSL发行版设为WSL2,命令格式:
wsl–set-version<Distro>2
其中<Distro>要和上面查询到的信息一致,本例中为centos,输入以下命令并回车:
wsl–set-versioncentos2
输入以下命令并回车,设置默认使用的发行版:
wsl-dcentos
此时,再次使用命令wsl-l-v查看,可以看到centos的VERSION已经变为2,并且名称前加了*号(即默认的WSL系统)。
6、WSL子系统的启动与关闭
此时,输入命令wsl-dcentos即可启动。
停止WSL子系统命令:wsl–shutdown-n系统名称,如果直接输入wsl–shutdown,会停止所有已启动的WSL子系统。
在管理员权限的PoweShell中输入命令:netstopLxssManager,也可以停止WSL子系统。
7、使用WindowsTerminal
当然,为了更好的配合WSL,一定要安装WindowsTerminal。
Windows10安装最新版PowerShell及WindowsTerminal并美化
有了Terminal,可以直接打开所有已安装的WSL发行版:
Terminal的配色方案,可以参考:https://iterm2colorschemes.com/
8、目录设置
在WSL2系统中可以直接访问windows磁盘文件,因此为了不增加WSL系统VHD虚拟磁盘空间,我个人打算将一些安装软件包放在F:\\wsl目录下,将网站web程序放在E:\\wwwroot目录中。而在wsl系统中的访问路径分别是/mnt/f/wsl和/mnt/e/wwwroot,当然WSL这样直接访问windows磁盘会有很大的性能问题。后续使用中如果性能的降低超过了可忍受的程度,再考虑将这两个目录移动到wsl的虚拟磁盘。
打开Windows安全中心,病毒和威胁防护设置,管理设置,添加或删除排除项,添加排除项,将上述两个目录排除,这样会减少windows的系统性能占用。
二、centos8基本配置
1、查看centos版本
uname-a\ncat/proc/version\ncat/etc/redhat-release
2、安装wgetvim等工具
cd~启用ifconfig,netstat等网络命令
3、更换国内源
(1)备份原始的yum源
cd/etc/yum.repos.d\nmvCentOS-Base.repoCentOS-Base.repo.bak\nmvCentOS-extras.repoCentOS-extras.repo.bak\nmvCentOS-centosplus.repoCentOS-centosplus.repo.bak\nmvCentOS-PowerTools.repoCentOS-PowerTools.repo.bak\nmvCentOS-AppStream.repoCentOS-AppStream.repo.bak
(2)下载对应版本的repo文件
dnfcleanall\n此目录是我个人存放各种安装包的目录,也就是win10的F盘wsl目录。\nwgethttp://nginx.org/download/nginx-1.19.1.tar.gz\ntar-zxvfnginx-1.19.1.tar.gz
3、开始编译
cdnginx-1.19.1\n./configure
检查系统环境是否符合编译安装的要求,比如是否有gcc编译工具,是否支持编译参数当中的模块,并根据开启的参数等生成Makefile文件为下一步做准备。
make&&makeinstall
生成脚本及配置文件,根据Makefile文件生成相应的模块,安装,创建目录,并将生成的模块和文件复制到相应的目录。
4、等待安装完成
如果没有错误提示,默认安装目录是:/usr/local/nginx,现在可以查看版本,能正确显示版本,说明安装完成。
/usr/local/nginx/sbin/nginx-V
5、添加软链接
由于WSL不能使用systemd,使用service时会出现错误提示,这里不注册为service,而是使用软链接的方式省略执行nginx命令的路径前缀。
ln-s/usr/local/nginx/sbin/nginx/usr/bin/nginx\nnginx不停止服务重新载入配置文件\nnginx-sstop停止服务\nvim/usr/local/nginx/conf/nginx.conf
参考了集成环境OneinStack中的配置。默认user为nobody,修改为www。将网站放在/mnt/e/wwwroot路径中,即Win10本地E盘wwwroot目录。
fastcgi_passunix:/dev/shm/php-cgi.sock;表示Nginx和PHP-FPM的进程间采用UNIXDomainSocket方式通信,因此在PHP-FPM的配置文件中也要做相应的配置。
最后自动加载vhost目录中的配置文件,完整内容如下:
userwwwwww;\nworker_processesauto;\n\nerror_log/data/wwwlogs/error_nginx.logcrit;\npid/var/run/nginx.pid;\nworker_rlimit_nofile51200;\n\nevents{\nuseepoll;\nworker_connections51200;\nmulti_accepton;\n}\n\nhttp{\nincludemime.types;\ndefault_typeapplication/octet-stream;\nserver_names_hash_bucket_size128;\nclient_header_buffer_size32k;\nlarge_client_header_buffers432k;\nclient_max_body_size1024m;\nclient_body_buffer_size10m;\nsendfileon;\ntcp_nopushon;\nkeepalive_timeout120;\nserver_tokensoff;\ntcp_nodelayon;\n\nfastcgi_connect_timeout300;\nfastcgi_send_timeout300;\nfastcgi_read_timeout300;\nfastcgi_buffer_size64k;\nfastcgi_buffers464k;\nfastcgi_busy_buffers_size128k;\nfastcgi_temp_file_write_size128k;\nfastcgi_intercept_errorson;\n\n34;MSIE[1-6]\\.(?!.*SV1)&error_page404/404.html;\nlocation/nginx_status{\naccess_logoff;\ndenyall;\nfastcgi_pass127.0.0.1:9000;\nfastcgi_passunix:/dev/shm/php-cgi.sock;\nfastcgi_indexindex.php;\nincludefastcgi.conf;\n}\nlocation~.*\\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)${\nexpires30d;\naccess_logoff;\n}\nlocation~.*\\.(js|css)?${\nexpires7d;\naccess_logoff;\n}\nlocation~^/(\\.user.ini|\\.ht|\\.git|\\.svn|\\.project|LICENSE|README.md){\ndenyall;\n}\n}\nvhost34;stub_status&此目录是我个人存放各种安装包的目录,也就是win10的F盘wsl目录。\nwgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
2、解压并配置相关目录与权限
解压之后,将解压出的目录移动到/usr/local/下并改名为mysql,切换到/usr/local/mysql目录,创建data目录,再在根目录下创建/data/mysql目录。目录路径可以按自己的需要创建。
tar-xvfmysql-8.0.21-linux-glibc2.12-x86_64.tar.xz\n\nmvmysql-8.0.21-linux-glibc2.12-x86_64/usr/local/mysql\n\ncd/usr/local/mysql\nmkdirdata\nmkdir-p/data/mysql
创建用户组mysql,给用户组添加用户mysql,并给相应的目录权限。
groupaddmysql\nuseradd-gmysqlmysql\n\nchown-Rmysql:mysql/usr/local/mysql/\nchown-Rmysql:mysql/data/mysql
3、初始化MySql
添加需要的库文件
dnfinstalllibaionumactlinitscripts-y
初始化,参数要和前面创建的用户及目录对应。
bin/mysqld–initialize–user=mysql–basedir=/usr/local/mysql–datadir=/usr/local/mysql/data
执行结束会生成数据库root用户密码,做好记录。(Atemporarypasswordisgeneratedforroot@localhost:Zlg+oqdhy9i=)
如果执行失败,需要删除data和tmp目录下所有内容,根据错误提示,检查配置后重新执行初始化。
4、创建并配置my.cnf文件
touch/etc/my.cnf\nvim/etc/my.cnf
my.cnf参考了集成环境OneinStack中的配置,内容如下。同样,my.cnf配置文件中的目录路径也要和前面mysql初始化时的一致。
[client]\nport=3306\nsocket=/tmp/mysql.sock\ndefault-character-set=utf8mb4\n\n[mysql]\nprompt=&34;\nno-auto-rehash\n\n[mysqld]\nport=3306\nsocket=/tmp/mysql.sock\ndefault_authentication_plugin=mysql_native_password\n\nbasedir=/usr/local/mysql\ndatadir=/usr/local/mysql/data\npid-file=/data/mysql/mysql.pid\nuser=mysql\nbind-address=0.0.0.0\nserver-id=1\n\ninit-connect=&39;\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_unicode_ci\n\nskip-name-resolve\nlower_case_table_names=1\n\nskip-external-locking\n\ndefault_storage_engine=InnoDB\n启动mysql\nmysqldstop查看已开放的端口
查看所有可用的命令参数
mysqld–help\nUsage:mysqld{start|stop|restart|reload|force-reload|status}[MySQLserveroptions]
6、修改密码
/usr/local/mysql/bin/mysql-uroot-p\n登录后在命令提示符MySQL[(none)]>后,输入如下语句并回车\n39;root&39;localhost&39;password&退出
7、安装过程中的报错及处理方法
/etc/redhat-lsb/lsb_log_message:line3:/etc/init.d/functions:Nosuchfileordirectory
解决方法是安装initscripts:dnf-yinstallinitscripts
报错:
mysqld_safeerror:log-errorsetto&39;,howeverfiledon&39;mysql&34;&此目录是我个人存放各种安装包的目录,也就是win10的F盘wsl目录。\nwgethttp://mirrors.sohu.com/php/php-7.4.9.tar.xz
2、安装编译工具和库
dnf-yinstallmakegccpcrepcre-develzlibzlib-developensslopenssl-devel
在安装Nginx时就已经安装过编译工具和库,在检查配置编译参数时,提示缺少哪个就安装哪个库。
3、创建用户组和用户
如果在安装Nginx时已经创建过,就不用再重复创建了。
groupaddwww\nuseradd-gwwwwww
4、配置编译
解压缩,移动到/usr/local/目录并重命名为php,切换到/usr/local/php目录。
tar-xvfphp-7.4.9.tar.xz\nmvphp-7.4.9/usr/local/php
查看已安装的php编译参数命令是:
php-i|grepconfigure
以下编译参数来源于oneinstack集成包,复制以下所有内容到CentOS命令行窗口,回车,开始检查配置。
./configure–prefix=/usr/local/php\\\n–with-config-file-path=/usr/local/php/etc\\\n–with-config-file-scan-dir=/usr/local/php/etc/php.d\\\n–with-fpm-user=www\\\n–with-fpm-group=www\\\n–enable-fpm\\\n–enable-opcache\\\n–disable-fileinfo\\\n–enable-mysqlnd\\\n–with-mysqli=mysqlnd\\\n–with-pdo-mysql=mysqlnd\\\n–with-iconv-dir=/usr/local/libiconv\\\n–with-freetype\\\n–with-jpeg\\\n–with-zlib\\\n–enable-xml\\\n–disable-rpath\\\n–enable-bcmath\\\n–enable-shmop\\\n–enable-exif\\\n–enable-sysvsem\\\n–enable-inline-optimization\\\n–with-curl=/usr/local/curl\\\n–enable-mbregex\\\n–enable-mbstring\\\n–with-password-argon2\\\n–with-sodium=/usr/local\\\n–enable-gd\\\n–with-openssl=/usr/local/openssl\\\n–with-mhash\\\n–enable-pcntl\\\n–enable-sockets\\\n–with-xmlrpc\\\n–enable-ftp\\\n–enable-intl\\\n–with-xsl\\\n–with-gettext\\\n–with-zip=/usr/local\\\n–enable-soap\\\n–disable-debug\\\nPKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:
一遍遍执行上述检查配置,根据报错error或类似notfound类,解决错误。直到出现如下所示:ThankyouforusingPHP
5、安装完成
make&&makeinstall
6、报错及解决
报错
configure:error:C++preprocessor&34;failssanitycheck
解决方法:
dnf-yinstallglibc-headersgcc-c++
报错:
Package&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound\nPackage&39;,requiredby&39;,notfound
解决方法:
dnf-yinstalllibxml2-develsqlite-devellibcurl-devellibpng-devellibjpeg-develfreetype-devellibicu-devel
报错:
Package&39;,requiredby&39;,notfound
oniguruma是一个处理正则表达式的库
解决方法:
wgethttps://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz-Ooniguruma-6.9.4.tar.gz\ntar-zxvfoniguruma-6.9.4.tar.gz\ncdoniguruma-6.9.4/\n./autogen.sh&&./configure–prefix=/usr
报错
Generatingautotoolsfiles.\n./autogen.sh:line6:autoreconf:commandnotfound
解决方法:
dnf-yinstallautoconfautomakelibtool
再次检查配置,没有问题了,再生成脚本及配置文件,安装。
./autogen.sh&&./configure–prefix=/usr\nmake&&makeinstall
报错:
configure:error:Packagerequirements(libsodium>=1.0.8)werenotmet:\nPackage&39;,requiredby&39;,notfound
解决方法:
Sodium是一个全新而且易用的加密库,用于加密、解密、签名和生成密码哈希等等。
wgethttps://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz\ntar-zxflibsodium-1.0.18-stable.tar.gz\ncdlibsodium-stable\n./configure–prefix=/usr\nmake&&makeinstall\nldconfig
报错:
checkingforArgon2library…notfound\nconfigure:error:Pleaseensuretheargon2headerandlibraryareinstalled
解决方法:
打开https://pkgs.org/,查找libargon2,找到centos8的rpm包,下载安装。
wgethttps://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/libargon2-20171227-3.el8.x86_64.rpm\nwgethttps://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/libargon2-devel-20171227-3.el8.x86_64.rpm\nrpm-Uvhlibargon2-20171227-3.el8.x86_64.rpm\nrpm-Uvhlibargon2-devel-20171227-3.el8.x86_64.rpm\ndnf-yinstalllibargon2libargon2-devel
报错:
configure:error:Packagerequirements(libxslt>=1.1.0)werenotmet:\nPackage&39;,requiredby&39;,notfound
解决方法:
dnf-yinstalllibxsltlibxslt-devel
报错:
Failedtosetlocale,defaultingtoC.UTF-8\nerror:rpmdb:BDB2034unabletoallocatememoryformutex;resizemutexregion\nerror:cannotopenPackagesindexusingdb5-Cannotallocatememory(12)\nerror:cannotopenPackagesdatabasein/var/lib/rpm\nError:Error:rpmdbopenfailed
解决方法:
一般是由于rpm本地数据库损坏导致的。
cd/var/lib/rpm39;db.&列出相关rpmdb文件\nrm-f__db.*重建rpm数据库\nyumcleanall\ndnfmakecache
报错:
Package&39;,requiredby&39;,notfound
解决方法:
打开https://pkgs.org/,查找libzip及libzip-devel,找到centos8的rpm包,下载安装。
wgethttp://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/libzip-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64.rpm\nwgethttp://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/libzip-devel-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64.rpm\nrpm-Uvhlibzip-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64.rpm\nrpm-Uvhlibzip-devel-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64.rpm\ndnf-yinstalllibziplibzip-devel
7、配置
生成php配置文件
cpphp.ini-production/usr/local/php/etc/php.ini
在编译时启用了参数:–enable-opcache,查找opcache.so模块文件所在路径。
find/usr-nameopcache.so\n\n\n/usr/local/php/ext/opcache/.libs/opcache.so\n/usr/local/php/lib/php/extensions/debug-non-zts-20190902/opcache.so\n/usr/local/php/modules/opcache.so
编辑php.ini文件,在末尾添加如下内容,开启OPcache扩展
[opcache]\nzend_extension=/usr/local/php/modules/opcache.so\nopcache.enable=1\nopcache.enable_cli=1\nopcache.memory_consumption=128\nopcache.interned_strings_buffer=8\nopcache.max_accelerated_files=10000\nopcache.revalidate_freq=60\nopcache.file_cache=/tmp/opcache
生成php-fpm配置文件并编辑。
cd/usr/local/php/etc\ncpphp-fpm.conf.defaultphp-fpm.conf\nvimphp-fpm.conf
这里还是参考OneInStack集成环境包中的配置,清空php-fpm.conf内容,修改如下:
;;;;;;;;;;;;;;;;;;;;;\n;FPMConfiguration;\n;;;;;;;;;;;;;;;;;;;;;\n\n;;;;;;;;;;;;;;;;;;\n;GlobalOptions;\n;;;;;;;;;;;;;;;;;;\n\n[global]\npid=run/php-fpm.pid\nerror_log=log/php-fpm.log\nlog_level=warning\n\nemergency_restart_threshold=30\nemergency_restart_interval=60s\nprocess_control_timeout=5s\ndaemonize=yes\n\n;;;;;;;;;;;;;;;;;;;;\n;PoolDefinitions;\n;;;;;;;;;;;;;;;;;;;;\n\n[www]\nlisten=/dev/shm/php-cgi.sock\nlisten.backlog=-1\nlisten.allowed_clients=127.0.0.1\nlisten.owner=www\nlisten.group=www\nlisten.mode=0666\nuser=www\ngroup=www\n\npm=dynamic\npm.max_children=50\npm.start_servers=30\npm.min_spare_servers=20\npm.max_spare_servers=50\npm.max_requests=2048\npm.process_idle_timeout=10s\nrequest_terminate_timeout=120\nrequest_slowlog_timeout=0\n\npm.status_path=/php-fpm_status\nslowlog=var/log/slow.log\nrlimit_files=51200\nrlimit_core=0\n\ncatch_workers_output=yes\n;env[HOSTNAME]=aliyun-wxy\nenv[PATH]=/usr/local/bin:/usr/bin:/bin\nenv[TMP]=/tmp\nenv[TMPDIR]=/tmp\nenv[TEMP]=/tmp
本配置文件指定了PHP-FPM进程通信方式:listen=/dev/shm/php-cgi.sock,和Nginx的配置保持了一致。
生成php-fpm服务启动文件:(新的文件名不能有-字符)
cp/usr/local/php/sapi/fpm/init.d.php-fpm/usr/bin/phpfpm\nchmod740/usr/bin/phpfpm
测试启动php-fpm
phpfpmstart\nphpfpmrestart\nphpfpmstop
查看php已启用的模块:
php-m
查看php版本
/usr/local/php/bin/php-v\nphp-v
8、安装配置Xdebug
OPcache扩展是PHP7.X自带的,只要在编译时开启,就可以配置使用。而Xdebug需要另外安装。参考官网:https://xdebug.org/docs/install
yuminstall-ygit\ngitclonegit://github.com/xdebug/xdebug.git\ncdxdebug\nphpize\n./configure–enable-xdebug\nmake&&makeinstall
Xdebug编译完成后显示扩展文件目录、提示将扩展添加到php.ini文件
编辑php.ini,在末尾增加xdebug.so扩展。
vim/usr/local/php/etc/php.ini\n\n增加xdebug.so扩展34;/usr/local/php/lib/php/extensions/debug-non-zts-20190902/xdebug.so&启动nginx服务\nphpfpmstart启动mysql\n\n\nnginx-sreload停止服务\n\nphpfpmrestart\nphpfpmstop\n\nmysqldrestart停止mysql
参考资料:
WindowsTerminal+WSL2+CENTOS配置Windows命令终端https://www.tinychen.com/200512-windowsterminal-wsl2-centos/https://github.com/CentOS/sig-cloud-instance-images
LxRunOffline使用教程-WSL自定义安装、备份https://p3terx.com/archives/manage-wsl-with-lxrunoffline.html
https://chocolatey.org/docs/installationhttps://blog.csdn.net/hiqiming/article/details/105244147
http://nginx.org/https://www.cnblogs.com/zhang-shijie/p/5294162.html
https://www.cnblogs.com/pp-yang/p/12595387.html
https://www.jianshu.com/p/64e12bea3d49
Linux安装mysql8.0(踩坑实况)https://blog.csdn.net/LittleSeedling/article/details/105851113
https://www.cnblogs.com/cxyyh/p/12431424.htmlIndexof/php/
centos8安装php7.4https://www.cnblogs.com/architectforest/p/12433541.html
https://www.cnblogs.com/alliancehacker/p/12255445.html
文章分享结束,手机网站引导页源码分享php和手机获取网站源码的答案你都知道了吗?欢迎再次光临本站哦!