Ubuntu 16.04下LNPM开发环境搭建(Linux + Nginx + PHP + MySQL)及一些概念总结

来源:互联网 发布:linux开启防火墙命令 编辑:程序博客网 时间:2024/06/05 16:53

前言

首先,这里先插一嘴关于为什么我不在Windows下做这些工作……

Windows下的确资源众多,软件什么的也很方便,但是,作为开发环境来说,还是有很多不方便的地方(例如:注册表、环境变量、路径设置、文件结尾格式、换行符格式等),而在Linux系统下,就没有那么多限制了,几条命令下去,需要的环境就会被安装好,要说Linux系统下最让人头疼的问题,那大概就是依赖包的配置。

Linux系统介绍

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

常用的Linux分支

①Ubuntu
基于Debian 的Ubuntu系统,使用的是deb安装包管理方式,发布者在打包时就会封装好满足自身依赖的包,并且会对包进行常规性更新。这个分支出现较早,因而积累了很多的软件支持和用户基础,遇到问题网络上也有很多资源可以作为参考

②CentOS
基于Red hat的CentOS系统,使用的是Yum安装包管理方式,它是在rpm服务器上对所需依赖包进行搜索和安装,但是不会对包进行常规更新。这个分支近年来在国内发展十分迅速,现在已经作为国内主流的服务器操作系统之一使用了,网络资源也不少

对比结果:

CentOS有时在处理依赖关系时出差错的概率比Ubuntu大一些,并且资源比Ubuntu少一些。但是由于CentOS常规更新比较少,所以看起来也更稳定一些(这也是为什么国内突然兴起了CentOS热潮……前几天WannaCry一波过来,希望能教会大部分国人安全更新及常规更新的重要性吧……)

综上所述,Ubuntu更适合Linux新手,CentOS适合作为探索及服务器搭建(???做服务器这里,我意见保留……)

安利环节

颜值控不需要害怕说Linux丑到没朋友,这里放上我的Ubuntu桌面,大家随意鉴赏一下,喜欢的朋友可以自己装一个试试看,我的这个版本是Ubuntu 16.04LTS,安装了Flatbulous主题,Ultra-flat图标包,用Unity tweak tool应用了主题和图标包,并把启动器放在了屏幕底端的效果

桌面

文件夹图标和终端

建议各位开发者可以试试Linux开发,真的会上瘾的,比Windows下方便太多了

Nginx介绍

简介

Nginx (“engine x”) 是一个轻量级高性能的Web服务器/反向代理服务器,也是一个邮件(IMAP/POP3/SMTP)代理服务器,可以实现正向代理、反向代理、负载均衡等功能

正向代理

我们常说的代理也就是只正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问www.google.com时,残忍被墙,于是你可以在国外搭建一台代理服务器,让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我。(过程如图)

正向代理

反向代理

反向代理隐藏了真实的服务端,当我们请求www.baidu.com的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,可以用来做负载均衡。(过程如图)

反向代理

负载均衡

负载均衡就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

nginx 有很多种策略,其中:

upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。


正文

由于博主对于Ubuntu LTS版本的感情比较深,并且习惯于自己搭环境,所以没有例外,这次的教程是基于Ubuntu 16.04 LTS 64位系统的非集成LNPM环境搭建。

本次所有命令请于超级用户模式下运行(什么??超级用户??那是啥??)

进入超级用户模式的步骤是:
打开终端->输入:sudo su->输入密码(这里密码是不显示的,放心输入就行了)

在进行各种安装操作前,建议先运行以下两条命令(顺序别反了):

apt-get install updateapt-get install upgrade

MySQL 5.7安装

Ubuntu 16.04 LTS 配套的MySQL版本就是5.7 ,所以直接运行如下命令即可:

apt-get install mysql-server

安装过程中会提示你输入root账户的密码(一次输入一次确认),按照你的习惯输入就好,一定要记住这个密码,访问数据库的时候会用

这里建议在安装完MySQL以后装一个图形化管理界面(虽然直接用命令行就可以,但是为了方便,还是装个比较好)这里推荐workbench,作为MySQL的免费管理软件,它还是很不错的。至于Navicat,由于Ubuntu下的Navicat是利用wine模拟的Windows下面的环境,所以总出一些奇奇怪怪的问题,果断放弃。

apt-get install mysql-workbench

Nginx安装

首先,请确保,你的Ubuntu上没有Apache2,如果有的话,请先删除,命令如下:

service apache2 stopupdate-rc.d -f apache2 removeapt-get autoremove apache2

然后再使用如下命令进行Nginx的安装:

apt-get install Nginx

然后,运行服务:

service nginx start

这个过程中如果没有出现什么问题的话,打开你的浏览器,在地址栏中输入localhost或者自己的IP地址,应该就可以看到 “Welcome to nginx!” 的提示信息了,这说明Nginx服务器安装成功了

PHP 5.6安装

由于正在搞的这个项目的原因,PHP7对于项目的支持并不好(有一些地方因为安全性等问题无法正常运行……),所以果断选择了PHP 5.6。

Ubuntu 16.04 LTS自带的PHP是7.0版本的,所以这里需要添加先添加PHP源:

add-apt-repository ppa:ondrej/php

然后再进行PHP的安装:

apt-get updateapt-get install php5.6

安装完成之后,还需要安装一些常用的PHP组件,使得它可以和MySQL、Nginx及其他软件协同工作:

apt-get install php5.6-gd php5.6-mbstring php5.6-mysql php5.6-zip php5.6-xml php5.6-mcrypt php5.6-fpm php5.6-memcached php5.6-curl

其中有一些组件是php-xxx,我上面全部打的都是php5.6-xxx,不过不影响,如果有名字不对,过程中会有提示,跟着提示来,不会出问题什么大问题的

这些都安装完成以后,需要配置一下Nginx,是它能够支持PHP,运行以下命令编辑Nginx配置:

gedit /etc/nginx/sites-available/default

找到

location ~ \.php${    ...}

去除注释并写入以下内容:

location ~ \.php$ {    include snippets/fastcgi-php.conf;    # With php5.6-cgi alone:    # fastcgi_pass 127.0.0.1:9000;    # With php5.6-fpm:    fastcgi_pass unix:/run/php/php5.6-fpm.sock;    fastcgi_param HTTPS on;    include fastcgi.conf;}

这样,Nginx就可以支持PHP了,之后就应该在 /var/www/html文件夹下新建一个文件,写入:

<?php    phpinfo();?>

并保存为phpinfo.php,浏览器访问localhost/phpinfo.php(或者自己的IP地址/phpinfo.php)就可以验证第一步设置是否正确。如果看到了PHP的版本信息以及其他信息的页面,那就是没问题了。

注意:这里建立phpinfo.php文件时,因为权限不够,所以没法创建,这时候我们需要改一下这个文件夹的权限以便我们以后创建项目的时候比较方便,到var目录下,右键运行终端,输入:

sudo chmod -R 777 www/

就可以把www目录的权限修改为可读写了,之后,再创建一个链接放在桌面或者其他你习惯的位置,以后访问及修改这个文件夹,就可以直接从链接里面修改了。

阅读全文
0 0
原创粉丝点击