Ubuntu系统开发环境搭建和常用软件

news2024/11/27 12:36:36

目录

安装PHP7.3

安装MySQL5.7

安装Nginx

配置Nginx支持PHP

安装Jetbrains全家桶

将程序加入到桌面和收藏夹

安装Navicat15

安装 redis和客户端工具 

 截图工具

终端修改

其它软件


当前我的系统是Ubuntu22.04:

安装PHP7.3

如果使用 apt install php 默认应该安装的php8,由于工作需要用的php7.3,因此用下面的方式:

#添加软件源 安装软件源拓展工具:
sudo apt -y install software-properties-common apt-transport-https lsb-release ca-certificates

#添加 PHP PPA 源,需要按一次回车(Enter):
sudo add-apt-repository ppa:ondrej/php  

#更新软件源缓存:
sudo apt update

#安装PHP 安装PHP和对应拓展(redis,memcache等,也可以再追加更多扩展)
sudo apt install php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-opcache php7.3-redis php7.3-memcache -y

#安装完成后,编辑 /etc/php/7.3/fpm/php.ini 替换换 ;cgi.fix_pathinfo=1 为cgi.fix_pathinfo=0 快捷命令:
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.3/fpm/php.ini 

#修改fpm监听端口(也可以不改)
vi /etc/php/7.3/fpm/pool.d/www.conf
将listen修改为 listen = 127.0.0.1:9000

#重启PHP
sudo systemctl restart php7.3-fpm.service
sudo systemctl start php7.3-fpm.service #启动
sudo systemctl stop php7.3-fpm.service #关闭
sudo systemctl status php7.3-fpm.service #检查状态`

参考:Ubuntu 安装 PHP7.3 以及相关拓展 - 简书 

安装MySQL5.7

在MySQL官网下载Linux的指定版本,这里下载5.7版本:https://downloads.mysql.com/archives/community/

然后,一顿操作猛如虎:

mkdir /opt/mysql
tar -xvf mysql-server_5.7.42-1ubuntu18.04_amd64.deb-bundle.tar -C /opt/mysql/
cd /opt/mysql/
ls

#使用dpkg -i命令顺序安装 
dpkg -i mysql-common_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i libmysqlclient20_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i libmysqlclient-dev_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i libmysqld-dev_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i mysql-community-server_5.7.42-1ubuntu18.04_amd64.deb

#如果报错缺少依赖,如下
dpkg -i mysql-community-client_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i mysql-client_5.7.42-1ubuntu18.04_amd64.deb 

#自动解决当前所出现的依赖
apt --fix-broken install

不出意外,应该就会出现输入密码的界面:

如果需要卸载重装:

#查看mysql依赖项
dpkg --list | grep mysql

#卸载mysql-common
sudo apt remove mysql-common

#卸载并清除mysql5.7
sudo apt autoremove --purge mysql-server-5.7

#清除残留数据
dpkg -l | grep ^rc| awk '{print$2}'| sudo xargs dpkg -P

#检查依赖项
dpkg --list | grep mysql

#如果输出为空,那么表示mysql已经彻底卸载干净了,如果不为空那么我们还要继续进行删除卸载
sudo apt autoremove --purge mysql-apt-config

参考:https://blog.csdn.net/qq_41265137/article/details/130644812 

参考:https://blog.csdn.net/sixiangfy/article/details/128374171

安装Nginx

默认这个Ubuntu22.04自带的是nginx1.18.0

本来我想直接使用这个nginx来配置php环境的,但是折腾了几个小时也没成功, 总之就是各种问题吧。后来懒得折腾了,就重新安装一个nginx,操作如下:

进入官网下载指定版本,我这里下载当前最新版 1.25.1:http://nginx.org/en/download.html

 继续,操作开始:

#安装nginx之前,安装一下工具
sudo apt update
sudo apt-get install libpcre3-dev
sudo apt-get install ruby
sudo apt-get install zlib1g-dev

#解压
tar -zxvf nginx-1.25.1.tar.gz
cd nginx-1.25.1/
 
#编译
./configure  --with-http_ssl_module
./configure 
 
#安装
make && make install

#启动和重启
sudo /usr/local/nginx/sbin/nginx #启动
sudo /usr/local/nginx/sbin/nginx -s stop #停止
sudo /usr/local/nginx/sbin/nginx -s reload #重启

参考:https://blog.csdn.net/yayalejianyue/article/details/128466625

配置Nginx支持PHP

修改配置:vim /usr/local/nginx/conf/nginx.conf

#修改为当前的用户和用户组
user rx rx;
#...

http {
    #可选,是否显示目录
    #autoindex on; #自动显示目录
    #autoindex_exact_size off; #人性化方式显示文件大小否则以byte显示
    #autoindex_localtime on; #按服务器时间显示,否则以gmt时间显示
    
    #...

    server {
        location / {
            root   /home/rx/www; #代码根目录
            index  index.html index.htm index.php;
        }

        #支持PHP
        location ~ \.php$ {
            root           /home/rx/www;
            #fastcgi_pass   127.0.0.1:9000;
            fastcgi_pass   unix:/run/php/php7.3-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

}

注意!注意!!注意!!!

有可能这样配置后,访问php文件会出现 404 not found,赶紧去看看php-fpm的配置文件:

#sudo vim /etc/php/7.3/fpm/pool.d/www.conf

#用户和用户组
user = rx
group = rx

#监听,需要和nginx的 fastcgi_pass相对应
#如果这里是listen = 9000,那么nginx的 fastcgi_pass就是:fastcgi_pass   127.0.0.1:9000;
listen = /run/php/php7.3-fpm.sock

listen.owner = rx
listen.group = rx

然后,如果不粗意外,应该就没啥问题了:

安装Jetbrains全家桶

以phpstorm举例,其他类似。前往官网下载指定版本的Linux包:https://www.jetbrains.com.cn/phpstorm/download/other.html

下载完成后,打开终端,解压:

#解压
tar -zxvf PhpStorm-2022.2.5.tar.gz
#移动位置
sudo mv PhpStorm-222.4554.13/ /opt/jetb/phpstorm/
#创建软连接
sudo ln -s /opt/jetb/phpstorm/bin/phpstorm.sh /usr/local/bin/phpstorm

#打开phpstorm
phpstorm

这样每次都要打开终端运行,很麻烦,可以加入到程序列表和收藏夹,看下面一条。

将程序加入到桌面和收藏夹

Ubuntu的应用程序列表在 /usr/share/applications 目录下,有很多 .desktop文件:

如果要把phpstorm也加入到程序列表,只需要随便找一个已经存在的.desktop文件复制一份,改一下,重命名为phpstorm.desktop 就行:

[Desktop Entry]
Encoding=UTF-8
Type=Application
#应用名称
Name=phpstorm
#启动是否开启终端
Terminal=false
#AppImage文件路径
Exec=/opt/jetb/phpstorm/bin/phpstorm.sh
Icon=/opt/jetb/phpstorm/bin/phpstorm.png

然后在应用程序列表就可以看到了,也可以加入收藏夹,就类似于windows的“固定到任务栏”:

如果想要生成桌面图标,将这个文件复制到 ~/Desktop即可,然后右键点击“允许运行”,或者 chmod +x即可。

sudo cp phpstorm.desktop ~/Desktop/

安装Navicat15

我是全程按照这篇文章操作的,很顺利:https://www.bilibili.com/read/cv18230089/

如果文件失效,点这里:https://pan.baidu.com/s/1n13hR5W1D2dCM2QK49MujA 提取码: r363

也可以使用Jetbrains的DataGrip来管理数据库,也很好用,和上面phpstorm的安装流程一样。

安装 redis和客户端工具 

#安装reids服务端
sudo apt install redis

#安装redis客户端RDM
sudo snap install redis-desktop-manager

 截图工具

推荐使用Flameshot,很好用,快捷键Ctrl + Alt + A:

#安装
sudo apt-get install flameshot

  

 

 

终端修改

Ubuntu terminal 分屏:

sudo apt install terminator
左右分屏:Ctrl+Shift+E
上下分屏:Ctrl+Shift+O
切换屏幕:Ctrl+Shift+N 或 Ctrl+Tab

Ubuntu有两个终端,我常用的另一个,改一下快捷键,把复制和粘贴改成Ctrl+C和Ctrl+V,然后使用Ctrl+Alt+C中断操作,很方便。

其它软件

其它的常用软件,基本上可以在应用商店下载,或者官方网站直接都可以下载Linux版本的,下载下来使用 sudo dpkg -i xxx.deb 就可以安装了,或者右键安装:

我常用的办公和开发软件清单如下:

  • 搜狗输入法(官网下载)
  •  VLC媒体播放器(应用商店安装)
  • postman(应用商店安装)
  • Sublime Text(应用商店安装)
  • QQ(官网下载)
  • 百度网盘(官网下载)
  • WPS(官网下载)
  • 微信,可以下载优麒麟版本的微信,我试了不太稳定,其他的版本自己网上找一下

上面这些软件基本上应该够开发用了,如果不能满足需要,可以再安装个虚拟机,虚拟一个windows系统以备不时之需。下面安装VMware的操作:

#安装依赖
sudo apt update
sudo apt install build-essential linux-headers-generic

#下载 
#如果失效,点这里:https://pan.baidu.com/s/1XHpa7RsyqnJub56X56uetA 提取码: kdhv
wget https://www.vmware.com/go/getplayer-linux

#加执行权限
chmod +x getplayer-linux

#安装
sudo ./getplayer-linux --required --eulas-agreed

安装好之后,直接创建一个win7的虚拟系统就够用了,附上win7原版镜像和激活程序链接: https://pan.baidu.com/s/1JiEY6y66gnYVLDDUgt18Qg 提取码: stwi

如果无法安装VMware-tools,看这里:https://www.bilibili.com/read/cv23621999

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文讲透 Redis 事务 (事务模式 VS Lua 脚本)

准确的讲,Redis 事务包含两种模式 : 事务模式 和 Lua 脚本。 先说结论: Redis 的事务模式具备如下特点: 保证隔离性; 无法保证持久性; 具备了一定的原子性,但不支持回滚; 一致性的概念有分歧…

BI-SQL丨XML PATH

XML PATH 在SQL Server中,XML数据类型的应用范围是非常宽泛的,除了可以使用value和nodes处理一行拆多行的情况,我们还可以使用PATH处理多行合并成一行。 使用实例 例子:使用PATH处理多行合并成一行。 创建一张表,表…

在vsCode 中执行Electron 项目时,出现中文乱码问题

问题:vscode 中执行Electron 项目时,控制台出现乱码 解决方法: 在 terminal 修改编码格式:65001代表UTF-8,936代表GBK

freeswitch的mod_xml_cdr模块

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 在语音呼叫的过程中,话单是重要的计价和结算依据,话单的产生需要稳定可靠,可回溯。 fs中的mod_xml_cdr模块提供了基本话单功能之外的选择,可以输出XML格式的本地话单或通…

arm day4

.text .global _start _start: /**********LED1点灯**************/bl rcc_initbl led_initbl led1_initbl led2_initloop:bl led_onbl delay_1sbl led_offbl delay_1sbl led1_onbl delay_1sbl led1_offbl delay_1sbl led2_onbl delay_1sbl led2_offbl delay_1sb looprcc_init…

数据结构和算法——快速排序(算法概述、选主元、子集划分、小规模数据的处理、算法实现)

目录 算法概述 图示 伪代码 选主元 子集划分 小规模数据的处理 算法实现 算法概述 图示 快速排序和归并排序有一些相似,都是用到了分而治之的思想: 伪代码 通过初步的认识,我们能够知道快速排序算法最好的情况应该是: 每…

前端 | ( 九)尚品汇实操练习 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 文章目录 📚顶部导航条📚头部📚主导航📚内容区_侧边导航📚内容区_侧边二级菜单⭐️📚内容区_右侧尚品快报&am…

docker安装mysql8.0+

文章目录 1.docker仓库找到需要的镜像版本2.安装Mysql镜像3.创建mysql配置文件4.创建mysql容器并运行5.建立软连接6.开放3306端口7.登录mysql8.修改mysql密码9.查看mysql日志10.重启mysql10.外部如何访问mysql 1.docker仓库找到需要的镜像版本 镜像仓库 2.安装Mysql镜像 找到所…

Redis九种数据类型及其持久化机制:探索数据存储的奇妙世界

目录 一、9种数据类型 3.1 Key操作 3.1.1 相关命令 练习: 3.2 String 3.2.1 结构图 3.2.2 相关命令 练习: 3.3 List(双向的链表) 3.3.1 结构图 3.3.2 相关命令 练习: 3.4 Set(无序集合) 3.4.1 结构图 3.4…

【GeoDa实用技巧100例】010:制作平滑地图

文章目录 一、平滑地图介绍二、加载实验数据三、平滑地图制作四、注意事项一、平滑地图介绍 平滑地图(Smooth,或称滑动平均地图)是以“平滑”的观测值(简称平滑值),而非实际的观测值编制的地图。某个地域单位的所谓平滑值是指该地域单位与周围地区观测值的平均值。地图平滑化…

精通正则表达式 - 打造高效正则表达式

目录 一、典型示例 1. 稍加修改——先迈最好使的腿 2. 效率 vs 准确性 3. 继续前进——限制匹配优先的作用范围 4. “指数级”匹配 二、全面考察回溯 1. 传统 NFA 的匹配过程 2. POSIX NFA 需要更多处理 3. 无法匹配时必须进行的工作 4. 看清楚一点 5. 多选结构的代…

zabbix 企业级监控 (5) Zabbix监控nginx

目录 简介 配置yum仓库 Web Zabbix端添加主机 启用之前自动发现的规则及动作 简介 nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控来发现出来出现的问题。zabbix监控nginx,首先确认nginx的监控指标,主要有&#…

HTML中常用的标签

注释标签&#xff1a;<!--内容--> 标题标签&#xff1a;<h1></h1>;<h2></h2>;<h3></h3>;<h4></h4>;<h5></h5>;<h6></h6> 段落标签&#xff1a;<p></p> 没有<p></p>时…

数据备份和恢复练习

创建数据库db create database db&#xff1b; 创建student和score表并插入数据 mysql> select *from student-> ; --------------------------------------------------------------- | id | name | sex | birth | department | address | ----…

qt 5.12.6配置 msvc2015 32bit

qt 5.12.6配置 msvc2015 32bit 1.添加临时档案库2.安装 msvc20153. 配置 qmake 环境4.修改系统环境变量5.问题修改1.qt没有被正确的安装,请运行make install2.QT编译出错&#xff1a;rc不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。3.QT License check fai…

【iOS】—— block,KVC,KVO,Category等问题解答

文章目录 block1.block的原理是怎样的&#xff1f;本质是什么&#xff1f;2.__block的作用是什么&#xff1f;有什么使用注意点&#xff1f;3.block的属性修饰词为什么是copy&#xff1f;使用block有哪些使用注意&#xff1f;4.block在修改NSMutableArray&#xff0c;需不需要添…

使用langchain与你自己的数据对话(一):文档加载与切割

LangChain是一个基于大语言模型&#xff08;如ChatGPT&#xff09;用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

简单理解TCP,UDP,HTTP

我们都知道TCP、UDP、HTTP内部有很复杂的过程&#xff0c;很多人没办法理解的那么深&#xff0c;只想知道这是个什么鬼。 1、TCP、UDP、HTTP 是什么? TCP/IP是个协议组&#xff0c;可分为三个层次&#xff1a;网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、…

50 Matplotlib Visualizations, Python实现,源码可复现

详情请参考博客: Top 50 matplotlib Visualizations 因编译更新问题&#xff0c;本文将稍作更改&#xff0c;以便能够顺利运行。 0 Introduction 新建项目文件夹为matplotlib_visualizations&#xff0c;以下所有的.py文件均默认在该位置。 0.2 Setup Setup.py文件内容如下&…

(双指针) 剑指 Offer 57 - II. 和为s的连续正数序列 ——【Leetcode每日一题】

❓ 剑指 Offer 57 - II. 和为s的连续正数序列 难度&#xff1a;简单 输入一个正整数 target &#xff0c;输出所有和为 target 的连续正整数序列&#xff08;至少含有两个数&#xff09;。 序列内的数字由小到大排列&#xff0c;不同序列按照首个数字从小到大排列。 示例 1…