最开始准备自己头搭建一套,即直接在Mac上分别安装Nginx
、Mysql
、PHP
,对于新手来说,刚毕业的同学来说,一定自己一步一步搭,刚开始会趟好多的坑,这些坑你一定要趟,这样也就知道了一些服务运行的原理,在服务架构上处于什么位置,发挥什么作用,都是通过一次一次的实践去理解的。
但是我这里就不这样玩了,因为我就是为了省时间,并且也不再Docker上一个一个的搭建,有现成的轮子,拿过来,修改一下,快速上手
去DockerHub
上搜索lnmp
找一个下载量最高的
按照提供的实用教程操作即可:
拉镜像:
1 | docker pull 2233466866/lnmp |
启动(Start)
1 | 端口映射自行指定,容器名称自行指定为lnmp |
这是他的说明,将挂载的目录该称适合自己的
1 | ✔ docker run -dit \ ✔ 376 14:20:13 |
连接容器(进入容器)
1 | 容器名称与上一步保持一致 |
查看各个服务的状态
1 | ps aux|grep nginx |
配置
1 | 配置文件路径(Config file path) |
扩展
1 | 默认已安装部分扩展在目录:/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/ |
以下开始个人配置:
数据库相关配置
获取初始密码
1 | cat /var/log/mysqld.log|grep 'A temporary password' |
修改密码(初始化):
1 | mysql_secure_installation |
然后按照提示,直至完成。在Mac上使用Navicat
链接数据库试试,HOST是localhost吗?当然不是。肯定是docker的IP地址:
1 | 获取docker主机 IP |
inet
后面的IP即Docker主机的IP,,尝试连接后,提示:1130 - Host 'gateway' is not allowed to connect to this MySQL server
晓得了,用户HOST的权限问题
1、进入Docker
docker exec -it lnmp /bin/bash
2、连接数据库: mysql -u root -p
3、看当前所有数据库:show databases;
4、进入mysql数据库:use mysql;
5、查看mysql数据库中所有的表:show tables;
6、update user set Host=‘%’ where User=‘root’;
7、flush privileges;
再次尝试连接,成功了
PHP相关配置
-
php -v 查看当前php版本
1
2
3
4[root@e1bc93894c4c lib]# php -v
PHP 7.3.24 (cli) (built: Nov 13 2020 08:05:44) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies因为项目的原因,所以只能使用php5.6的版本,而作者默认配置的是7.3,所以果断降级
-
查看php的路径
1
2
3
4
5
6
7
8
9
10
11[root@e1bc93894c4c lib]# find / -name php
/usr/local/php7/lib/php
/usr/local/php7/bin/php
/usr/local/php7/php
/usr/local/php7/php/php
/usr/local/php7/include/php
/usr/local/php5/lib/php
/usr/local/php5/bin/php
/usr/local/php5/php
/usr/local/php5/php/php
/usr/local/php5/include/php好像是有php5的,那方便了,直接切换一下版本就好了
-
切换到PHP5
1
/usr/local/php5/bin/php
这个地址就是我们需要的,执行以下命令:
1
2
3ln -s /usr/local/php5/bin/php /usr/sbin/php
export PATH="$PATH:/usr/local/php5/bin/php"1
2
3
4
5
6
7[root@e1bc93894c4c lib]# export PATH="$PATH:/usr/local/php5/bin/php"
[root@e1bc93894c4c lib]# service nginx restart
Redirecting to /bin/systemctl restart nginx.service
[root@e1bc93894c4c lib]# php -v
PHP 5.6.40 (cli) (built: Nov 13 2020 08:21:17)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologiesservice nginx restart
,然后查看php的版本,发现已经切换过来了
查看phpinfo
发现没有xdebug
,那就安装一下扩展
1 | $ curl -O https://xdebug.org/files/xdebug-2.5.0.tgz |
然后在php.ini中配置
1 | zend_extension=xdebug.so |
重启nginx,检查是否安装成功
1 | service nginx restart |
1 | [root@e1bc93894c4c no-debug-non-zts-20131226]# php -m | grep xdebug |
1 | [Xdebug] |
记得PHPstom的debug端口也要设置成9010
至此,基本上该配置的都配置完了,因为我docker上的www目录挂在宿主机的/Users/steven/SvnGitRepository
下,所以直接在该文件夹下创建一个index.html
,随便写点东西,直接访问docker的主机IP,就可以看到展示刚才写的内容了
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !