上次自己安装完Ubuntu并完成一些很基础的配置还是比较高兴的,毕竟原来这一部分都是阿里云ECS帮我完成的。以往在网页虚拟终端里面装个SSH就切回本地用OSX的vSSH或者WIN的putty或者SecureCRT了。回想起原来学装win的时候,为了学U盘各种方式安装系统,用自己笔记本倒腾了几十遍,甚至专门做一些错误的操作去模拟身边同学遇到的各种问题,然后尝试解决。学Sql的时候有一段时间为了验证MS SqlServer和Visual Studio谁先装谁后装,不同版本之间实际兼容情况,玩垮了好多次系统,反正我成功率最高的就是先装SqlServer2012,再来装VS2012,至于2008,2005,MSDE之类的,也是无语了,说多了是泪。另外当时不是很了解固态硬盘的总写入量限制,所以那段时间天天高写入量地写那块三星840evo固态,后面有很长一段时间也是。所以作为一块刚出来就不是口碑很好的TLC固态,差不多一年就开始出问题了,磨损范围三角洲值较高,后来开始丢数据,后面直接系统没了,具体原因也尝试查过,做了一次全盘写0后就非常低价处理给JS了,现在想想也是够奢侈的,还是应该用机械盘,没知识真可怕,学费掏的嗖嗖的。后来换了镁光的M550 512G的MLC固态,Marvell88SS9189主控,各方面都很满意。
扯远了,赶紧回到正题,这次讲自己在Ubuntu上搭建经典的LNMP环境(Linux+ nginx + mysql + php),这里没有采用LNMP的一键安装,主要是为了熟悉每一个过程。这一次建议大家,直接通过远程来完成安装。
一、安装ssh(预备工作,在本机上操作,如果是云服务器就在网页终端上操作)
sudo apt-get install openssh-server
输入Y完成安装
先执行sudo ps -e |grep ssh
来检查一下是否启动,如果有包含sshd行就说明已经启动了,如果没有,就执行:
sudo service ssh start
接下来配置ssh文件
sudo vim /etc/ssh/sshd_config
这里面Port默认是22,一般在云服务器上会更改成其他的端口
网上有教程说在“PermitRootLogin without-password”前加一个“#”完成该句的注释,我的配置文件中是“PermitRootLogin prohibit-password”,意思一样。
增加一句话(Vim中按i插入):
PermitRootLogin yes
这句话是允许root用户远程登录
按Esc退出编辑模式,按“:”输入wq回车(意思是保存并退出),如果警告文件为只读不可保存,说明刚刚执行修改配置文件的命令时,没有加sudo,可以:q!强制退出后重新以管理员权限进行编辑。
远程连接前先查看ubuntu主机的ip地址,执行:
sudo ifconfig
就可以看到ip地址了,云服务器一般有公网固定IP,如果是连路由器的局域网,可以直接分配固定ip,如192.168.2.200,在Ubuntu桌面右上角网络连接里面可以设置,设置固定ip记得也要填写dns,一般填网关即可,一般就是路由器ip,192.168.x.1,也可以自己指定如114.114.114.114 223.5.5.5之类的。
接下来,试用远程连接,如果上面配置没有问题,win下用putty,osx用iterm或者vssh,填写ubuntu主机ip地址和端口号,并进行连接,并填写自己ubuntu主机的用户名和密码即可完成远程登录。然后就可以尽情地在终端里操作系统了,就和操作云服务器一样。后面的服务配置都通过终端完成。
二、安装mysql
sudo apt-get install mysql-server mysql-client
安装过程中会要求输入用户名和密码,一定要谨慎,别忘了。
三、安装ngnix
sudo apt-get install nginx
安装完成后执行nginx的启动服务:
service nginx start
在自己的电脑(运行putty的电脑)中打开浏览器,访问ubuntu主机ip,应该可以看到Welcom to nginx的欢迎界面,说明nginx安装成功。
四、安装php7(非编译源码形式安装)
网上很多教程还是安装PHP5,但其实apt-get已经找不到PHP5了,通过执行:
sudo apt-cache search php7.0
就可以找到想要的包了。这里我选择了执行:
sudo apt-get install php7.0-fpm php7.0-mysql
这个php-fpm已经被PHP官方收了,具体和Fastcgi的关系可以自行查阅,当时看的有点糊,后面差不多了解了一些具体关系就清晰不少。
接下来配置nginx,不然php无法正常显示。
sudo vim /etc/nginx/sites-available/default
在index index.html … 后面加上一个index.php
增加一段文本
location ~ \.php$ {
try_files $uri =404;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
保存并退出。重新加载:
service nginx reload
五、安装phpmyadmin
phpmyadmin是一个很方便的mysql管理工具,可以远程在线配置mysql数据库,现在来安装这个工具。
首先,习惯性来执行:
sudo apt-get install phpmyadmin(有的还需要安装php-mbstring php-gettext)
安装完成后,在/var/www/html下是没有的,需要创建一个软连接(类似于文件夹的快捷方式),phpmyadmin默认装在/usr/share/里面的,在/var/www/html目录下,执行:
sudo ln -s /usr/share/phpmyadmin phpmyadmin
然后就可以在html文件夹里面发现了phpmyadmin文件夹。
如果前面配置ngnix解析php没有问题,访问ubuntu主机IP地址/phpmyadmin或者主机IP地址/phpmyadmin/index.php,就可以正常进入界面了,并且输入mysql的root和密码就可以登录,如果打开是满屏的php代码或者直接跳出下载一个php文件的链接,说明ngnix的配置没有正常,网上有些教程在刚刚的location花括号里面,还有两句:
include fastcgi_params;
fastcgi_index index.php;
我这么配置之后会出现无法正常加载,于是又找到了说用include fastcgi.conf替代,不过没有加这两句话,也可以正常使用,具体原因不详述,php7和php5配置是有区别的,google可以找到答案。
至此通过终端完成了lnmp环境的搭建,下一篇准备安装java和tomcat的配置。(如果笔记中有错误或绕弯路之处,还希望大牛指出,在此感激不已)