如何在Deepin上开发或部署PHP/Mysql
Tofloor
poster avatar
justforlxz
deepin
2019-02-28 21:24
Author
本帖最后由 kirigaya 于 2019-2-28 13:38 编辑

原文链接 https://blog.justforlxz.com/2019/02/21/how-to-use-LNMP-on-deepin/

这篇文章将基于Docker来构建nginx、php和mysql来搭建LNMP环境,和其他教程有所不同的是,需要有一定的Docker基础。

在这里提一下,写这篇文章的原因就是在论坛看到很多人安装各种一键环境导致系统出现问题,最终发帖求助和抱怨,我当年用xampp第一次搞坏ubuntu的时候,我就再也没用过这种一键脚本了,我也是从那时候开始使用Docker来当做隔离环境的,而且迁移也很方便,整个目录复制走,再一条命令就跑起来了,比在宿主机安装各种包把系统搞的一团糟要好。

首先需要在Deepin上安装Docker,添加Docker的deb仓库,并安装docker-ce。

创建文件
  1. sudo nano /etc/apt/sources.list.d/docker.list
Copy the Code


写入
  1. deb [arch=amd64] https://download.docker.com/linux/debian jessie edge
Copy the Code


刷新一下仓库就可以安装了。
  1. sudo apt update && sudo apt install docker-ce docker-compose
Copy the Code


安装完成后重启一下系统,准备工作就算完成了一半了。

在家目录创建一个Projects目录,当做我们LNMP的工作目录,创建一个名叫docker-compose.yaml的文件,这是docker-compose的配置文件,我们通过docker-compose这个工具来管理我们的Docker容器。

所有的镜像均采用最新版本,nginx(1.15.8),php(7.3.2),mysql(8.0.15),如有需要,自行选择不同版本的镜像。

注意PHP7已经不支持mysql扩展,使用内置的MySQLnd。

写入以下配置文件:

  1. version: '3'

  2. services:
  3.   nginx:
  4.     # 设置容器名字
  5.     container_name: "nginx"
  6.     # 采用最新的nginx
  7.     image: nginx:latest
  8.     # 绑定80端口
  9.     ports:
  10.         - "80:80"
  11.     # 添加php容器的依赖
  12.     depends_on:
  13.         - "php"
  14.     # 绑定数据目录
  15.     volumes:
  16.         - "./volumes/nginx/conf.d:/etc/nginx/conf.d"
  17.         - "./volumes/html:/usr/share/nginx/html"
  18.     restart: always

  19.   php:
  20.     # 设置容器名字
  21.     container_name: "php"
  22.     # 采用最新的php
  23.     image: php:fpm
  24.     # 绑定端口
  25.     ports:
  26.         - "9000:9000"
  27.     # 绑定数据目录
  28.     volumes:
  29.         - "./volumes/html:/var/www/html"
  30.     restart: always

  31.   mysql:
  32.     # 设置容器名字
  33.     container_name: "mysql"
  34.     # 采用最新的mysql
  35.     image: mysql:latest
  36.     # 绑定端口
  37.     ports:
  38.         - "3306:3306"
  39.     # 设置环境变量
  40.     environment:
  41.         - MYSQL_ROOT_PASSWORD=(自己设置密码)
  42.     # 绑定数据目录
  43.     volumes:
  44.         - "./volumes/mysql:/var/lib/mysql"
  45.     restart: always
Copy the Code



创建nginx的配置文件,编辑 ./volumes/nginx/conf.d/nginx.conf


  1. server {
  2.     listen       80;
  3.     server_name  localhost;
  4.     location / {
  5.         root   /usr/share/nginx/html;
  6.         index  index.html index.htm index.php;
  7.     }
  8.     error_page   500 502 503 504  /50x.html;
  9.     location = /50x.html {
  10.         root   /usr/share/nginx/html;
  11.     }
  12.     location ~ \.php$ {
  13.         fastcgi_pass   php:9000;
  14.         fastcgi_index  index.php;
  15.         fastcgi_param  SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
  16.         include        fastcgi_params;
  17.     }
  18. }
Copy the Code




创建php测试文件,编辑 ./volumes/html/index.php :


  1. phpinfo();
  2. ?>
Copy the Code


启动docker,第一次需要拉取一下镜像:
  1. docker-compose up --build -d
Copy the Code


等全部结束以后,就可以访问localhost看到php的信息了。

通过Docker的方法来使用LNMP,不污染宿主机环境,不会再因为各种依赖问题而搞坏系统,这恰恰是新手容易犯的错误,使用Docker,方便你我。


Reply Favorite View the author
All Replies
avatar
pikachuhy
deepin
2019-02-28 22:30
#1
docker大法好
Reply View the author
avatar
huizq
deepin
2019-02-28 22:42
#2
PHP是世界上最烂的语言。
Reply View the author
avatar
jianguo922
deepin
2019-02-28 22:51
#3
顶起来                  
Reply View the author
avatar
海天鹰
deepin
2019-02-28 23:11
#4
能不能用python来启动php?
Reply View the author
avatar
Kenny·McCormick
deepin
2019-02-28 23:21
#5
docker flatpak等技术搞起来,linux系统会越来越稳定
Reply View the author
avatar
魔法师
deepin
2019-02-28 23:59
#6
采用隔离系统方式安装软件的确是一个不错的选择
Reply View the author
avatar
187******69
deepin
2019-03-01 00:05
#7
直接安装 xmapp 全套环境,官方下载安装的话还自带控制面板,甚至自带一个ftp服务,感觉是最省事的稳定方案。
Reply View the author
avatar
justforlxz
deepin
2019-03-01 00:32
#8
https://bbs.deepin.org/post/175121
直接安装 xmapp 全套环境,官方下载安装的话还自带控制面板,甚至自带一个ftp服务,感觉是最省事的稳定方案 ...

那你随意,我只是推荐大家使用这套方案,最起码不会玩坏系统。
Reply View the author
avatar
187******69
deepin
2019-03-03 19:35
#9
https://bbs.deepin.org/post/175121
那你随意,我只是推荐大家使用这套方案,最起码不会玩坏系统。

哈哈,有道理。
Reply View the author
avatar
smpower
deepin
2019-03-05 08:50
#10
基于Docker,还在乎是哪个发行版嘛...
Reply View the author
avatar
justforlxz
deepin
2019-03-05 18:34
#11
https://bbs.deepin.org/post/175121
基于Docker,还在乎是哪个发行版嘛...

不在乎,docker内的环境和宿主机无关了,而且像这类程序,本身就和系统无关的,哪个发行版跑起来都一样。
Reply View the author
avatar
a676774305
deepin
2019-03-14 06:11
#12
sk811229 发表于 2019-2-28 16:05
直接安装 xmapp 全套环境,官方下载安装的话还自带控制面板,甚至自带一个ftp服务,感觉是最省事的稳定方案 ...

应用商店里面的完全不好使。我关于Deepin应用商店里的XAMPP的折腾。应用商店里的宝塔永远是莫名其妙的失败,所以只好把希望寄托在XAMPP上了。
一,在深度应用里下载安装好XAMPP。
二,赋于权限
... ...
由于太长,已经在论坛发帖,请点击
https://bbs.deepin.org/post/174519#
Reply View the author
avatar
187******69
deepin
2019-03-14 18:25
#13
https://bbs.deepin.org/post/175121
应用商店里面的完全不好使。我关于Deepin应用商店里的XAMPP的折腾。应用商店里的宝塔永远是莫名其妙的失 ...

不建议你是用应用商店的,应用商店的xmapp 只是安装了环境,但是却没有控制面板。建议你使用官方的安装包,直接执行哪个 .run 文件(./*.run),和执行脚本一样(记得 sudo 或者使用 root )。安装完成之后自带控制面板,和 windows 下一样,而且还带一个ftp服务,你可以根据自己的需要打开或者关闭服务。对于 mysql 的管理,建议你直接用 heidisql 这个软件,免费,稳定而且好用,没有 linux 版本,直接 wine 运行就好,一样好用。另外,在deepin 下安装,web 的根目录貌似类似是 /opt/lamp/........./htdoc....(具体记不太清楚了)。
Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
2020-05-17 20:24
#14
https://bbs.deepin.org/post/175121
不在乎,docker内的环境和宿主机无关了,而且像这类程序,本身就和系统无关的,哪个发行版跑起来都一样。 ...

deepin-dreamscene能不能捡起来开发呢?动态壁纸现在Linux下根本没有能用的
秋梨膏~~~
Reply View the author
avatar
justforlxz
deepin
2020-05-18 16:47
#15
https://bbs.deepin.org/post/175121
deepin-dreamscene能不能捡起来开发呢?动态壁纸现在Linux下根本没有能用的
秋梨膏~~~ ...

不是太好弄,现在的壁纸是dde-desktop自己画的,这个项目也不是武汉负责了,我不好加东西(
Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
2020-05-18 17:52
#16
https://bbs.deepin.org/post/175121
不是太好弄,现在的壁纸是dde-desktop自己画的,这个项目也不是武汉负责了,我不好加东西( ...

好吧:(
Reply View the author