Deepin LNMP环境搭建

威尔we 等级 406 0 0

LNMP

lnmp 是一个常见的web开发的环境,尤其对于 phper 来说,基本是必须要使用的一套环境。但是在 Linux 下的安装和配置并不是那么容易,所以近些年涌现了不少的一键安装方案,比如 lnmp、宝塔等。基本满足了日常的使用,但是如果不自己动手打通每个软件直接的配置与关联,我们就无法深入的去理解各个软件之间是如何协作的。而且往往集成环境的各种细节也不太清楚,如果想要扩展或是有出现错误,有时也很难短时间的解决。所以独立安装会让我们更清晰的了解整个的流程,对于错误也更好的去分析是那个环节出现了问题。

Linux

本文基于 deepin 环境,所以不需要再安装配置 linux 环境。

Nginx

仓库中的 nginx 就可以使用,一般 nginx 不需要安装太新的版本。

如果安装过可以不用安装,或者卸载重新安装

1
sudo apt remove nginx --purge #

安装

1
2
3
sudo apt install nginx
nginx -v # 验证是否安装成功
service nginx status # 查看 nginx 的运行状态 stop停止 restart重启

PHP

仓库中的 php7.3版本,直接安装仓库中的 php7.3-fpm

同样,安装过想要重新安装可以先卸载

1
sudo apt remove php7.3-fpm --purge

安装

1
2
3
4
sudo apt install php7.3-fpm
# 安装扩展,有时运行项目提示没有扩展,需要使用下面命令安装
sudo apt install php7.3-xml php7.3-curl php7.3-mbstring php7.3-xml
# 如果还需要扩展可以使用 sudo apt install php7.3- 加Tab键自动提示所有的扩展,然后选择需要的扩展进行安装

如果仓库中没有需要的版本

  1. 首先更新下仓库
1
2
sudo apt update
sudo apt upgrade
  1. 添加存储仓库
1
2
3
sudo apt install software-properties-common 
add-apt-repository ppa:ondrej/php
sudo apt update

现在仓库中搜索就可以找到 7.2 7.3 版本的 php

1
sudo apt install php7.2  # 安装同版本的模块使用 sudo apt install php7.2- tab键自动补全,根据提示安装扩展

MYSQL

deepin 环境中看到社区很多反映的就是 mysql 的安装问题,要不然是版本太低,要不然是配置失败

其实这些软件,在官网都会有每个发行版,每个架构的安装和使用方法,只要耐心查看,安装和使用是没有问题的。

各个发行版下载页

这里我们使用的是 deepin 所以选择 mysql apt repository 进入

这里可以点击下载,使用 No thinks 那个选项下载,下载 mysql 的官方源 deb 包,也可以复制链接 使用 wget 下载

1
wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb 

安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb  # 就会进入安装源的过程
# 选择 mysql-server 
# 版本 根据自己需要进行选择
# 最后选择 ok

sudo apt update # 更新 安装源成功就会看到有 mysql 的源输出 sudo apt install mysql-server # 安装 mysql 服务 # 输入 y # 会弹框提示输入密码,输入两次即可 # 会让认证插件, 一般选择第二个,第一个可能兼容性不好。

Deepin LNMP环境搭建

验证

1
2
3
mysql -uroot -p
# 输入密码
# 成功进入mysql终端

Deepin LNMP环境搭建

composer安装

官方安装

安装完如果有问题,记得加入执行权限

1
sudo chmod a+x /usr/bin/composer

配置阿里云镜像源

1
composer config -g repo.packagist composer mirrors.aliyun.com/composer/

配置 nginxphp

新增 nginx 配置文件,默认配置文件在 /etc/nginx/nginx.config

可以看到默认配置文件的引入文件内容

1
2
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

所以我们不需要更改默认的配置,只需要在者两个目录下新建配置文件就可以被加载进来,推荐将文件新建到 /etc/nginx/sites-enabled/ ,可以看到有个默认的 default 文件,为了避免冲突,可以将这个文件的内容全部注释,或者将文件移动到其他不会加载的位置。推荐将文件名设置为 项目名,后缀为 .conf 即可。比如新建 caoayu.xyz.conf 内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server {
    listen 80;
    server_name example.com;
    root /example.com/public;

add_header X-Frame-Options <span class="s2">"SAMEORIGIN"</span><span class="p">;</span>
add_header X-XSS-Protection <span class="s2">"1; mode=block"</span><span class="p">;</span>
add_header X-Content-Type-Options <span class="s2">"nosniff"</span><span class="p">;</span>

index index.html index.htm index.php<span class="p">;</span>

charset utf-8<span class="p">;</span>

location / <span class="o">{</span>
    try_files <span class="nv">$uri</span> <span class="nv">$uri</span>/ /index.php?<span class="nv">$query_string</span><span class="p">;</span>
<span class="o">}</span>

<span class="nv">location</span> <span class="o">=</span> /favicon.ico <span class="o">{</span> access_log off<span class="p">;</span> log_not_found off<span class="p">;</span> <span class="o">}</span>
<span class="nv">location</span> <span class="o">=</span> /robots.txt  <span class="o">{</span> access_log off<span class="p">;</span> log_not_found off<span class="p">;</span> <span class="o">}</span>

error_page <span class="m">404</span> /index.php<span class="p">;</span>

location ~ <span class="se">\.</span>php$ <span class="o">{</span>
    fastcgi_split_path_info ^<span class="o">(</span>.+<span class="se">\.</span>php<span class="o">)(</span>/.+<span class="o">)</span>$<span class="p">;</span>
    fastcgi_pass unix:/run/php/php7.3-fpm.sock<span class="p">;</span> <span class="c1"># fpm的sock地址</span>
    fastcgi_index index.php<span class="p">;</span>
    include fastcgi_params<span class="p">;</span>
<span class="o">}</span>

location ~ /<span class="se">\.</span><span class="o">(</span>?!well-known<span class="o">)</span>.* <span class="o">{</span>
    deny all<span class="p">;</span>
<span class="o">}</span>

}

关于 php-fpm 的地址,也就是 fastcgi_pass 那一项的值,我们找到 php-fmp 的配置文件,在 /etc/php/7.3/fpm/php-fpm.conf ,可以看到 sock 的地址

1
2
3
4
5
[global]
; Pid file
; Note: the default prefix is /var
; Default Value: none
pid = /run/php/php7.3-fpm.pid

所以配置为 fastcgi_pass unix:/run/php/php7.3-fpm.sock

关于 nginxphp 的配置可参考 laravel官方文档

本文转自 https://www.caoayu.xyz/post/deepin-lnmp/,如有侵权,请联系删除。

收藏
评论区

相关推荐

Android framework入门及搭建环境
由于需要修改系统的属性,所以需要编译源码,接下来我说一下本人学习formwork踩过的坑; 1,在window10系统安装了虚拟机,虚拟机安装是Ubuntu 16.0.04 下载地址:http://releases.ubuntu.com/16.04/ image.png 在这过程中可能会遇到 屏幕太小的问题,在Ubuntu下打开命令行 ctrlaltt
MySQL报错SELECT list is not in GROUP BY clause and contains nonaggre的问题
报错现象 执行SQL报错如下: bash SELECT student.s_no,student.s_name,SUM(result.mark) FROM student,result WHERE student.s_noresult.s_no GROUP BY student.s_no 1055 Expression 2 of SELECT lis
基本语法
1创建数据库 create database databasename 2删除数据库 drop database dbname 3创建表 create table tablename (id number, name varchar, sex varchar, age number) 4删除表 drop table table
使用 VS Code 来开发和调试 Python 程序
(简称 VSCode)是微软出品的一款支持多种语言的免费 IDE(集成开发环境)。VSCode 轻量而强大,支持 Windows、macOS 和 Linux。内置支持 JavaScript、TypeScript 和 Node.js,并且拥有一个丰富的插件生态系统来支持其它语言(C/C、C、Java、Python、PHP、Go 等)和运行时(.Net 和
Ubuntu 20.04 常见文件解压 (实用)
第一类 处理 .zip或 .rar 时,需要先下载相对应的unzip和unrar,可在终端,执行 sudo aptget install unzip sudo aptget install unrar .zip unzip .zip .rar unrar x .rar 第二类 .tar
Deepin LNMP环境搭建
LNMPlnmp 是一个常见的web开发的环境,尤其对于 phper 来说,基本是必须要使用的一套环境。但是在 Linux 下的安装和配置并不是那么容易,所以近些年涌现了不少的一键安装方案,比如 lnmp、宝塔等。基本满足了日常的使用,但是如果不自己动手打通每个软件直接的配置与关联,我们就无法深入的去理解各个软件之间是如何协作
10分钟学会Linux常用 bash 命令
bash logo(https://imghelloworld.osscnbeijing.aliyuncs.com/0e9141bf0242ce028fb2cab03d74ba4e.png) 目录 1. 基本操作(bas
Vue组件(30)封装一下数据列表的控件
UI库的 table好像前端喜欢叫 table,而后端喜欢叫grid。就是现实数据的列表。当然table还有其他的含义,UI库的table也是有其他的功能的。而数据列表控件其实也没啥好封装的,各种功能UI库都提供了,一般使用也是很方便的,只是为了我的那种想法还是需要小小的封装一下。功能 锁定行列(UI库自带) 多选(整理)
mysql 修改表或表结构常用sql语句
批量修改表名的sql语句alter table old_name rename new_name; 修改表名alter table test add column add_name varchar(10); 添加表列alter table test drop column del_name; 删除表列alter table test m
Linux使用 常见经验和技巧总结
1.XShell连接远程Linux服务器并运行程序后关闭XShell继续执行XShell是用来连接远程Linux很好的工具,在连接之后并运行好需要运行的程序后,往往需要关闭XShell,但是直接运行比如运行python crawler.py运行一个Python爬虫程序后,并直接关闭XShell往往会同时杀掉正在运行的爬虫程序,因此需要使用sudo
每日一题(六)
写在前面 冲冲冲! [ASIS 2019]Unicorn shop进去是一个买独角兽的页面,但是找不到自己有多少钱???前三个独角兽很便宜,就几块钱,肯定不是 flag ,买最贵的独角兽时,回显了一句Only one char(?) allowed!,只能输入一个字符,然而最贵的独角兽要 1337 块回显报错源码中有两句注释因为那句We still have
Linux指令学习
一、Linux指令目录 1.进入root权限 root i2.删除一个文件夹 rmdir dirname dirname:文件夹的目录名字 3.删除一个文件 rm i filename filename:文件名字4.给文件权限 sudo chmod u+x filename filename:文件名字5.出现“权限不够”和“坏的解释器\ 没有
antd table input 失焦的问题
<a name"UYeEu"</a 背景隔壁 zym 同事遇到了一个问题,在编辑表格时,每输入一个字符后都会失去焦点,需要重新点击聚焦后才能继续输入,如图:<br /<br /​<br /<a name"xKS8Z"</a 原因归根结底,是关于 key 的问题。<br /原先的代码中,components 在 render 中,然而在每次 setState
Supervisor 开始
Supervisor 是 Linux/Unix 操作系统上的进程管理工具。本文介绍了于 Ubuntu 18 上如何使用 Supervisor 开机启动、保活守护自己的服务进程。 安装建议系统方式安装,可开机启动。bashsudo apt install supervisor ySystemd 查看服务状态:bash$ sudo systemctl statu
Qt简单使用表格
接在Qt简单登录后https://www.helloworld.net/p/4enJFnZUQAC8G 添加新文件 使用的组件table weight和 table view头文件c++ifndef MANAGEMENTHdefine MANAGEMENTHinclude <QWidgetinclude <QMouseEventnamespace Ui cl