[Share Experiences] deepin 搭建 lnmp
Tofloor
poster avatar
caoayu
deepin
2020-12-05 20:32
Author

LNMP

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

Linux

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

Nginx

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

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

sudo apt remove nginx --purge #

安装

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

PHP

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

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

sudo apt remove php7.3-fpm --purge

安装

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键自动提示所有的扩展,然后选择需要的扩展进行安装

MYSQL

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

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

各个发行版下载页

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

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

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

安装

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
# 会弹框提示输入密码,输入两次即可
# 会让认证插件, 一般选择第二个,第一个可能兼容性不好。

验证

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

composer安装

官方安装

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

sudo chmod a+x /usr/bin/composer

配置阿里云镜像源

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

配置 nginxphp

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

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

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

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

server {
  listen 80;
  server_name example.com;
  root /example.com/public;

  add_header X-Frame-Options "SAMEORIGIN";
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Content-Type-Options "nosniff";

  index index.html index.htm index.php;

  charset utf-8;

  location / {
      try_files $uri $uri/ /index.php?$query_string;
  }

  location = /favicon.ico { access_log off; log_not_found off; }
  location = /robots.txt { access_log off; log_not_found off; }

  error_page 404 /index.php;

  location ~ \.php$ {
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/run/php/php7.3-fpm.sock; # fpm的sock地址
      fastcgi_index index.php;
      include fastcgi_params;
  }

  location ~ /\.(?!well-known).* {
      deny all;
  }
}

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

[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/

Reply Favorite View the author
All Replies
李健
deepin
2020-12-06 02:28
#1

还可以选择lnmt,最近在网上搜到一个集成安装包,oneinstack的,可以安装lnmp,lnmt都可以,包含jdk,nginx,Apache,MySQL,mariadb,PHP,tomcat,pure-ftpd等,我的腾讯云用的这个环境,感觉挺好用的,比自己安装配置方便,oneinstack.com有安装方式和使用指南

Reply View the author
caoayu
deepin
2020-12-07 03:24
#2
李健

还可以选择lnmt,最近在网上搜到一个集成安装包,oneinstack的,可以安装lnmp,lnmt都可以,包含jdk,nginx,Apache,MySQL,mariadb,PHP,tomcat,pure-ftpd等,我的腾讯云用的这个环境,感觉挺好用的,比自己安装配置方便,oneinstack.com有安装方式和使用指南

oneinstack这个以前也用过,也是不错的选择。

Reply View the author
中国新蔡
deepin
2020-12-07 20:39
#3

不错,感谢分享!

Reply View the author
h***6@126.com
deepin
2020-12-15 17:05
#4

好帖!学习了!

Reply View the author
夏目贵志
deepin
2020-12-23 22:57
#5

直接装个宝塔面板怎么样~

Reply View the author
caoayu
deepin
2020-12-23 23:04
#6
夏目贵志

直接装个宝塔面板怎么样~

可以是可以,可控性太小。拿来玩玩还行,东西多了不太好管理

Reply View the author
夏目贵志
deepin
2020-12-24 03:24
#7
caoayu

可以是可以,可控性太小。拿来玩玩还行,东西多了不太好管理

我今天直接装宝塔了,还行 各方面的 就算 装的太消耗时间了!

Reply View the author
sunjie
deepin
2020-12-27 04:12
#8

[26-Dec-2020 20:04:19] ERROR: failed to open error_log (/var/log/php7.3-fpm.log): Permission denied (13)
[26-Dec-2020 20:04:19] ERROR: failed to post process the configuration
[26-Dec-2020 20:04:19] ERROR: FPM initialization failed

这个怎么解决呀,我没找到好的解决方法


Reply View the author
sunjie
deepin
2020-12-27 04:13
#9
sunjie

[26-Dec-2020 20:04:19] ERROR: failed to open error_log (/var/log/php7.3-fpm.log): Permission denied (13)
[26-Dec-2020 20:04:19] ERROR: failed to post process the configuration
[26-Dec-2020 20:04:19] ERROR: FPM initialization failed

这个怎么解决呀,我没找到好的解决方法


请大神们指点一下[可怜]

Reply View the author
caoayu
deepin
2020-12-28 19:09
#10
sunjie

请大神们指点一下[可怜]

看着是权限问题

Reply View the author
jiafu
deepin
2021-01-04 16:59
#11
sunjie

请大神们指点一下[可怜]

用root试试

Reply View the author
wetshoes
deepin
2021-01-07 01:53
#12

顶帖子

Reply View the author
180******56
deepin
2021-01-20 17:50
#13

lnmp.org,oneinstack,宝塔都可以,做开发的人,个人更倾向推荐源码安装

Reply View the author
amu2009
deepin
2021-01-26 22:35
#14

谢谢分享

Reply View the author
woaiguocansoft
deepin
2021-02-22 17:46
#15

无法输入密码——输入不上

Reply View the author
woaiguocansoft
deepin
2021-02-22 17:54
#16

Reply View the author
caoayu
deepin
2021-02-22 23:19
#17
woaiguocansoft

解决了吗,试试重新安装呢

Reply View the author