遭遇飞来横祸,960G的SSD没满3年,直接歇业罢工,尝试硬盘精灵恢复未果,盘扫描全红,死的透透的,SSD果然不同凡响,直接导致 开发验证环境 丢失….悲剧,安装笔记都在虚拟机里面,连着一起死翘翘,堪称凄惨,被迫花了整整一天重新搭建。

想想笔记还是保存在这里比较靠谱,废话不多说了,直接开始:

首先,一些杂七杂八的软件装一下

1,Ubuntu22.04 安装到VM 过程 略

2,VSCODE安装

因为集成的VSCODE 输入日文或者中文有问题,所以卸掉VSCODE,官网下一个然后重装VSCODE,然后装上PHP集成。

3,其他软件

随便搞个带界面的数据库客户端 比如 dbeaver-ce ;安装个Root用资源管理器,方便改配置啥的。

sudo apt install nautilus-admin

接下来,进入正题,PHP5.6在新系统上的安装

//安装依赖
sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https
//追加源
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php 
//安装5.6
sudo apt install php5.6 
php -v	//确认OK
//安装其他扩展
sudo apt-get install -y php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip libapache2-mod-php5.6

如果需要多个版本PHP可以参考这些站点:https://tecadmin.net/install-php-ubuntu-20-04/
https://www.php.net/manual/zh/function.phpinfo.php

我这边没有这个需求,略过,接下来写个PHP,放到www看下如果浏览器跑没问题,PHP环境就基本OK

<?php
phpinfo();
phpinfo(INFO_MODULES);
?>

第三步,折腾MySQL旧版本

因为各个版本语法上很多细节上的不同(比如5.5不支持current time,5.7之后不支持 select *,etc…太多了),所以既存项目数据库版本定了,直接没法改,随着年代久远,开发环境的搭建都成了技术活。这里Docker拯救了我们,我最早传统方式直接撞墙2天没搞定,Docker一键搞定。

sudo apt install docker.io				//安装
sudo service docker start				//启动服务
sudo docker run hello-world			        //测试
sudo docker ps -a                                       // 当前运行的容器
//哒哒..本片主角之一,一句话本地容器部署了一个5.6.49版本的MySQL,强就一个字
sudo docker run -p 3306:3306 --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.49
//备注:登录到容器控制台
sudo docker exec -it mysql bash

接下来可以用GUI工具连下试验试验,或者一鼓作气脚本SQL导入数据库结构和数据,如下

//本地安装个客户端,链接本地Docker容器里的MySQL服务器端
sudo apt install mysql-client
//导入单个SQL
mysql -uroot -proot -h127.0.0.1 --default-character-set=utf8 -N -f -D pwc< some_ddl.sql 
//使用Bash简单的循环命令 导入多个SQL
for SQL in *.sql; do mysql -uroot -proot -h127.0.0.1 --default-character-set=utf8 -N -f -D pwc < $SQL; done
//-N -f 忽略错误  -D目标数据库 其他都知道吧,略

第四步,Apache2虚拟服务器配置

因为项目涉及三个站点,连同一个数据库,所以开发验证环境直接多站点部署。

1,修改/etc/host 添加本地域名解析

127.0.0.1	site1.com
127.0.0.1	site2.com
127.0.0.1	site3.com

2,Apache2 虚拟目录搭建

//拷贝站点配置
sudo cp 000-default.com.conf site1.com.conf

编辑这个文件 DocumentRoot等等信息,这里略过

sudo a2ensite site1.com.conf              //开通虚拟目录
sudo e2mode rewrite                       //支持rewrite                       
sudo service apache2 restart              //重启使有效

参考站点:https://towardsdatascience.com/how-to-host-multiple-website-with-apache-virtual-hosts-4423bd0aefbf

到这里基本上环境就搭好了,接下来就是针对项目,框架安装,各种设定,目录,数据库配置,基本上就涉及项目细节,这边就不描述了。基本上就是根据Log改设置,没有Log加Log,都OK的啦。

最后修改日期: 2022年7月2日

作者