前言
我是软件工程的第二学士学位的,因为最近在学PHP,就想着搭个开发环境。原本是在本地通过docker加wsl2来配置开发环境的,但由于既不了解nginx也对docker不熟悉,所以配置的过程十分痛苦,折腾了一天也没搞定。想着不如直接用云服务器吧,很多教程也是根据云服务器的环境写的。然后想着之前听说过阿里云有学生优惠,就搜了一下,发现还真有,做了10道选择题后就可以体验两周。
LNMP的小坑
总体上官方给的教程还是比较全面的,很适合没有基础的人,但不可避免的有一些小坑,真遇到了又没人能问还是很尴尬的。
nginx的配置
官方给的nginx配置让我们修改/etc/nginx/sites-enabled/default中的default文件,然后他是这样描述的“在server{}
内找到location ~ \.php$ {}
,去除以下配置行的注释符号。”,如果不仔细看就会直接把那一段给解除注释了,实际上有一行是不需要注释,否则重启nginx服务的时候就会报错。
MySQL配置
如果说上面的坑是没仔细看官方给的图造成的,下面这个Mysql配置的坑则很难避免,只要你是一步一步跟着他走,基本上就会出现这个情况。在到重置密码这一步的时候,会出现下面这样的错误。
... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
然后我在askubuntu这个网站看到有人遇到同样的问题,尝试过后可以使用。大致步骤如下,如果你卡在了这一步。首先,把当前的mysql_secure_installation进程关闭,然后在新的终端页面输入sudo mysql进入交互模式,输入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my-secret-password';
后回车,然后退出MySQL交互环境,重新启动mysql_secure_installation完成之后的步骤即可。贴一下原文的网址:https://askubuntu.com/questions/1406395/mysql-root-password-setup-error/1406449
收获
通过上面的一番折腾,大概花了我一个晚上的时间,期间一度想直接用现成的LNMP环境,但又不甘心。好在最终把坑都排完了,最后成功通过公网IP访问到自己写的网页的时候,那种满足感是很难替代。因为那个网页是用来写给女朋友的,所以就不放上来了。
TIPS
最后差点忘了说一句,如果把LNMP环境都配好了但还是无法通过公网IP访问,记得在云服务器控制台检查一下是不是自己的端口没开。