【凡人修仙传_01】散修厉飞羽是如何出师未捷身先死的!

本文主要记录了散修厉飞羽是如何出师未捷身先死的!涉及内容如下:

  • 安装 nginx
  • 安装 php8.0版本
  • 安装 lsky 2.0.4 / 2.1 版本
  • 卸载 nginx
  • 卸载 php

为了能够在开发界混出点名堂,以便历某叱咤整个编程界,于是乎本炼气期散修便妄想追随已成名的处于大乘期的阮一峰老师 或者其他宗门的名声响当当的大佬如阿里宗的多隆大佬CodeSheep的修炼步伐,因此决定搭建一个"厉飞羽"的修炼洞府(博客网站),以便让厉飞羽这一名号响亮整个修仙界(简直是图样图森破的标准案例)。

写在前面:厉飞羽在戎战两天后,由于意志奔溃走火入魔最终身死魂消。

厉飞羽这短暂"修仙"之途

想我厉某已在编程界历练两年有余,虽说整日在宗门游手好闲只做一些劈材担水的杂活(curd),但好歹也见识过一些编程界的险恶(404,500,NPE),虽说历某立志成为Java大道的天尊,但在其他道友们的耳濡目染下,对其他功法如前端基本技术也略有涉及,虽然不至于融会贯通自创功法,但是依葫芦画瓢在各位前辈的带领下和各种炼制法宝如React、Vue 的帮助下也能完成个456,况且在这个四处可见修炼心得的编程界,开辟一个属于自己的洞府岂不是简简单单?还能有我厉飞羽历某解决不了的问题(对不起,还真有,还很多!)?

修仙之人只图一个念头通达,说干就干,为了能够早日让厉飞羽这个名号响彻编程界,我决定使用一套Java初级连招迅速创建出一个宗门资源功法仓库,接着打开React法宝使用说明书结合antd + react-router-v6等诸多宝物一套连招下去,宗门便小有雏形,这样慕名而来的人便可看到当前宗门的功法心得,正感叹着我历某必将掀起一股腥风血雨的时候,处于炼气期的历某便遭到修仙途中的第一个仙途变故!

为了能够更好的领悟各个功法原理,整理相关修炼资源以便历某早日到达筑基期,历某便在外寻觅前辈们所说的收纳资源的宝物一品法器图床,历某在寻找此物的过程中可谓是九死一生,不管是二次元宗的短视频幻阵、亦或者Google宗、谢邀宗、热门宗的各具特色的蛊惑人心的阵法 (二次元真好看.JPG,谢邀宗的牛肉也真好吃.jpg) 都给历某带来了极大的麻烦,虽说最后都得以逃脱,想来还是后背发凉!虽说此行凶险,但历某最终得到了如下解决办法!

  • 修炼白嫖功法,白嫖其他大佬搭建的免费图床,优点免费省心,直接用即可,缺点就是不稳定,容易造成宗门资源的丢失(图床挂掉),后期劳神费力。
  • 使用其他修炼Java成神功法的大佬炼制的FastDFS,创建一个属于自己宗门的仓库,缺点就是功法原理图会暴露仓库地址,且修炼起来相对白嫖功法稍显复杂
  • 使用其他宗门大能炼制的法宝如 zimg 或者 Lsky 兰空等宝物,只需简单滴血认主,稍加炼制即可。
  • 寻求阿里宗或者企鹅宗的庇护,只需缴纳保护费即可!

再结合自身状况之后,历某最终选择了第三种炼制法器 Lsky Pro

ps:谁知这一抉择,历某就走上了身死道消之路!

历某在决定之后,首先便去到 Lsky pro 门派获取到Lsky pro 2.0.4.zip,历某为了早日解决踏进筑基期,直接将其使用scp传送阵法将其传送至历某的云端洞府,为了能够炼制lsky,在lsky宗门得知需要得到 nginx + php8.0 以上版本以及相关的一些宝物才能够正常炼制。

bash 复制代码
# 传送至云端服务器
scp Lsky-pro-2.0.4.zip lifeiyu@xxx.xxx.xx.xxx:/var/www/html;
# 解压命令,在安装完 nginx 和 php8.0 之后执行
unzip /var/www/html/lsky-pro-2.0.4.zip -d /var/www/html

首先是法宝 nginx,首先使用如下口令炼制专属的 nginx

bash 复制代码
sudo apt update
sudo apt upgrade
sudo apt install nginx
# 查看nginx 版本
sudo nginx -v

召唤成功后可使用如下口令sudo systemctl status nginx查看宝物状态,出现如下情况即召唤成功:

此时通过ip访问,浏览器会出现welcome to nginx画面。如诺没出现记得配置云主机的安全组规则!

在成功召唤炼制nginx之后,立马召唤宝物 php-8.0,由于本洞府默认配置的宝物是php7.4(Ubuntu20.04 默认的php版本为7.4) 无法与宝物lsky-2.0.4配合使用,因此使用如下召唤方式:

bash 复制代码
# 启用PHP存储库
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
# 安装php8.0 把8.0改为8.1 8.2也可
sudo apt update
sudo apt install php8.0-fpm

同样在召唤php8.0之后sudo systemctl status8.0-fpm查看宝物状态。

至此两件宝物已经召唤成功,但事情还没有结束,我们必须要要使用其他PhP大能炼制的宝物,这样才具备炼制Lsky pro 的条件

bash 复制代码
sudo apt install php-bcmath  php-json php-mbstring php-tokenizer php-xml php-imagick
sudo apt install libssl-dev openssl
# 安装php-pdo扩展
sudo apt install php8.0-xml

ps:我在这之前已经安装过了!

至此万事俱备只欠东风!接着使用法令unzip /var/www/html/lsky-pro-2.0.4.zip -d /var/www/html消除Lsky的zip压制(解压),一鼓作气修改nginx的配置:

bash 复制代码
cd /etc/nginx/sites-available/
sudo vim default

第一点:将root指向lsky的public文件夹,并在index后面添加index.php

第二点:server_name 其值为云主机的ip地址或者域名

第三点:将location 里面的=404修改为/index.php?$query_String

第四点:location部分修改为图中所示,注意我这里安装的php8.0-fpm所以图中是这个,这里需要与你安装的版本相对应!

修改目录权限:

bash 复制代码
sudo chown -R www-data /var/www/html
sudo chmod -R 755 /var/www/html

接着重启nginxphp8.0

bash 复制代码
sudo systemctl restart nginx
sudo systemctl restart php8.0-fpm

通过浏览器访问ip地址即可正常召唤lsky,如下图第一次炼制Lsky pro失败

查看已安装模块php -m 宝物Php给出如下响应:可知bcmath,imagick,mbstring以正确安装

为了能够早日筑基成功,随即采用如下命令修改php版本

bash 复制代码
# 卸载php8.0
sudo apt-get autoremove php8*
sudo find /etc -name "*php*" |xargs  rm -rf
sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
dpkg -l | grep php8.0
# 安装8.1
sudo apt install php8.1-fpm
# 安装其他扩展
sudo apt install php-bcmath  php-json php-mbstring php-tokenizer php-xml php-imagick
sudo apt install libssl-dev openssl
# 安装php-pdo扩展
sudo apt install php8.1-xml

修改/etc/nginx/sites-available/default文件中location部分中的如下图

使用如下法令重启nginxphp8.1:

bash 复制代码
sudo systemctl restart nginx;
sudo systemctl restart php8.1-fpm

在卸载php的时候可能会把这个文件删除,导致nginx无法重启成功,出现重启失败的情况

重启失败截图如下:

可使用如下命令卸载nginx之后重新安装(在第二部分有正确搭建步骤,切勿如此修改,只是历某最初无法知道怎么解决采取了最暴力的方式)

bash 复制代码
# 彻底卸载nginx
sudo service nginx stop
sudo apt-get --purge remove nginx
sudo apt-get autoremove
dpkg --get-selections|grep nginx
sudo apt-get --purge remove nginx
sudo apt-get --purge remove nginx-common
sudo apt-get --purge remove nginx-core
dpkg --get-selections|grep nginx
# 正常情况下没有输出,说明卸载干净
which nginx 

重新炼制nginx之后记得配置default文件!重启相关软件,访问ip可能会出现500服务器错误。

查看运行日志,在/var/www/html/storage/logs/ 目录下:

bash 复制代码
 # 进入日志目录
 cd /var/www/html/storage/logs/ 
 ll
 # 使用cat命令查看,提示Creator.php98行参数类型错误

修改Creator.php 中代码 删除第98行出的方法参数列表中的array

重启nginxphp,然后通过ip访问得到如下,如果忘了配置default文件或者配置错了有可能会出现502 bad gateway错误,记得检查相关配置文件,重新访问IP结果如下:

没错历某又失败了!在经过了如此多的摧残之后,历某道心已不稳,无法做到念头通达!眼看历某寿元无几,按照之前的方法召唤php8.2,在一番尝试之后历某以为要成功了毕竟事不过三!但是修仙之路怎么如此简单,历某又一次败了!

随着一次又一次的失败,403、500、502、nginx 启动失败、php启动失败、更换lsky pro版本后失败;历某心态已逐步失控,在最后一次召炼制 lsky pro 2.1过程中,由于道心不稳加之已耗费两个周天最终历某没有炼制成功,走火入魔~

总结:修道之人,只图个念头通达,否则迟早道心崩溃~ ps:很难想象作者的精神状态~

正确的修仙之法(已正确搭建)

如下步骤并没有修改php.ini中的内容,就成功搭建!且服务器在此之前也已安装MySQL8.0!

  • 首先正确安装nginx,安装方法如上所示。
  • 其次安装php8.2版本,这一个是最重要的,为什么这么说呢,因为最开始安装8.2之后,由于500错误不知道怎么修改在网上查阅相关资料后,建议是回退到8.1而不是修改Creator.php中的代码,因此在这里就导致了正确配置和安装相关扩展后,运行环境检测始终不通过!导致心态炸裂!记得修改权限~
  • 安装php扩展,安装方法如上面所述。
  • 重启 nginx 和 php,重启可能会遇到如下异常:

这是因为在卸载时删除了fastcgi-php.conf文件。此时不需要卸载nginx安装,只需要修改default文件配置即可,如下:

其他配置不用改变,此时通过浏览器访问即可出现如下页面:

注:如果在这一步出现提示驱动异常

bash 复制代码
sudo apt install mysql-server php-mysql

点击下一步进行其他配置即可。

ps:本来最开始此文只有第一部分的,因为实在是破防了,结果在仔细思考之后,从头开始搭建便成功了!真就只图一个念头通达~

使用到的bash命令总结

bash 复制代码
# 更新源
sudo apt update
sudo apt upgrade -y
# 安装
sudo apt install nginx
# 卸载nginx
sudo service nginx stop
sudo apt-get --purge remove nginx
sudo apt-get autoremove
dpkg --get-selections|grep nginx
sudo apt-get --purge remove nginx
sudo apt-get --purge remove nginx-common
sudo apt-get --purge remove nginx-core
dpkg --get-selections|grep nginx
# 正常情况下没有输出,说明卸载干净
which nginx 
# 查看软件运行状态:
# sudo systemctl status seviceName
sudo systemctl status nginx
sudo systemctl status php8.2-fpm
# 重启nginx
sudo systemctl nginx restart
# 语法检测,如果是ubuntu用户执行nginx -t 可能会出现could open error 的错误提示,加上sudo就好
sudo nginx -t
# 查看php.ini文件位置,这个可以查看运行的加载的php.ini文件路径在哪!可修改此配置文件加载扩展!
php -i | grep "php.ini"

参考链接:

相关推荐
GHUIJS1 小时前
【vue3】vue3.5
前端·javascript·vue.js
码拉松1 小时前
千万不要错过,优惠券设计与思考初探
后端·面试·架构
&白帝&1 小时前
uniapp中使用picker-view选择时间
前端·uni-app
魔术师卡颂1 小时前
如何让“学源码”变得轻松、有意义
前端·面试·源码
白总Server1 小时前
MongoDB解说
开发语言·数据库·后端·mongodb·golang·rust·php
谢尔登1 小时前
Babel
前端·react.js·node.js
ling1s1 小时前
C#基础(13)结构体
前端·c#
卸任1 小时前
使用高阶组件封装路由拦截逻辑
前端·react.js
计算机学姐2 小时前
基于python+django+vue的家居全屋定制系统
开发语言·vue.js·后端·python·django·numpy·web3.py
Estrella162 小时前
经典 web 页面排版:三栏布局
前端·css·面试