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
仓库中的 php
是 7.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
2
| sudo apt update
sudo apt upgrade
|
- 添加存储仓库
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
# 会弹框提示输入密码,输入两次即可
# 会让认证插件, 一般选择第二个,第一个可能兼容性不好。
|
验证
1
2
3
| mysql -uroot -p
# 输入密码
# 成功进入mysql终端
|
composer安装
官方安装
安装完如果有问题,记得加入执行权限
1
| sudo chmod a+x /usr/bin/composer
|
配置阿里云镜像源
1
| composer config -g repo.packagist composer mirrors.aliyun.com/composer/
|
配置 nginx
与 php
新增 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
关于 nginx
与 php
的配置可参考 laravel官方文档
本文转自 https://www.caoayu.xyz/post/deepin-lnmp/,如有侵权,请联系删除。