搭建nginx服务器 配置laravel

搭建前准备

【环境】

  • php7.0版本
  • mysql5.7版本

Ps:本篇所有配置基本都需要管理员权限,所以请提前' sudo su '

安装好 VirtualBox-5.1.6-110634-Win 和 vagrant_1.8.5 后 在本地目录新建一个工作目录,进入工作目录按住shift同时点击鼠标右键,点击 在此处打开命令窗口

添加box镜像

//vagrant box add 系统名字 box镜像
vagrant box add server ubuntu16.04.box

vagrant box add server ubuntu16.04.box

初始化server

//vagrant init 系统名字
vagrant init server

vagrant init server

这时候早工作目录中会看到一个Vagrantfile文件,用记事本打开编辑第29行的ip。把前面的注释去掉,ip地址可以根据自己需求修改。

修改ip

开启虚拟机

//vagrant up
vagrant up

开启虚拟机

成功启动过后会在工作目录中看到文件夹.vagrant

.vagrant文件夹

可以用第三方工具来连接我们的虚拟机中的服务器了

特别注意: 如果是第三方工具连接, 用户名和密码都是 vagrant

(虚拟机安装结束)


接下来开始搭建nginx环境

修改源

//打开目录
cd /etc/apt/
//备份源
cp sources.list sources.list.bak
//修改源
vim sources.list
//进入文件后,敲键盘` 60dd `删除原来的信息
//本例使用中科大的源,其他三个我的ubuntu14.04都出问题了,更换完apt-get update报错,自己对应看下吧,然后就是安装完php7.0之后就关不了机了
//切记使用一个源就好
/***-----------中科大学源------------***/
deb http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe 
deb http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe 
deb http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe 
deb http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe 
deb http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe 
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe 
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe 
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe 
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe 
deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
/***-----------清华大学源------------***/
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse

//切记使用一个源就好
/***-----------东北大学源------------***/
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial main restricted #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security multiverse

//切记使用一个源就好
/***-----------阿里云源------------***/
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

准备

//升级(刚刚修改的源 就是这里)
sudo apt-get update 

//这个包是为了解决系统不同语言之间可能发生的冲突,
//安装之后可以减少许多因语言编码带来的问题。
//其中-y参数表明直接安装,无需确认。
sudo apt-get install -y language-pack-en-base

//安装完成之后,运行
//设定语言编码为UTF-8
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

安装php7.0及其必用和常用依赖包

apt-get install php7.0
apt-get install php7.0-mysql
apt-get install php7.0-fpm
apt-get install php7.0-curl
apt-get install php7.0-xml
apt-get install php7.0-mcrypt
apt-get install php7.0-xml
apt-get install php7.0-json
apt-get install php7.0-mbstring
apt-get install php7.0-gd

//懒人复制
apt-get install php7.0-mysql php7.0-fpm php7.0-curl php7.0-xml mcrypt php7.0-xml php7.0-json php7.0-mbstring php7.0-gd

ps
如果提示Couldn't find any package by regex 'php7.0',是因为这个源没有php7.0版本,需要重新换源,或者执行下列命令:
1.先解决有可能存在的语言问题
执行

sudo apt-get update 
sudo apt-get install -y language-pack-en-base

然后命令行配置:

locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

2.删除原来的php5.6(如果安装的了php5.6的话,没安装可以跳过)

sudo apt-get purge php5-fpm && apt-get --purge autoremove

3.添加php7.0的仓库

 sudo apt-get install software-properties-common
 sudo add-apt-repository ppa:ondrej/php
  1. 查看是否有php7版本
    sudo apt-cache search php会出现下面php7的最新模块就是成功了,就可以安装php7了

    安装完之后输入shutdown看看有没有提示 --help,没有的话估计你vagrant halt就是管不了机了,这时你就需要更换其他的源。我就是换了中科大的才可以(我觉得是在apt-get update那就出现问题了)。

安装mysql5.7

apt-get install mysql-server-5.7

安装nginx

apt-get install nginx

安装一些常用的工具

apt-get install curl
apt-get install wget
apt-get install vim
apt-get install ssh
apt-get install openssl
apt-get install git
apt-get install zip
apt-get install unzip
//懒人复制
apt-get install curl wget vim ssh openssl zip unzip git

(环境配置结束)


laravel 开发环境配置

配置php

vim /etc/php/7.0/fpm/php.ini

输入 :set nu
在第761行
找到
cgi.fix_pathinfo=1
改为
cgi.fix_pathinfo=0

cgi.fix_pathinfo=0

编辑 fpm 的配置文件

vim /etc/php/7.0/fpm/pool.d/www.conf
输入 :set nu
在第36行
找到
listen = /run/php/php7.0-fpm.sock
改为
listen = 127.0.0.1:9000

然后执行service php7.0-fpm stop再执行service php7.0-fpm start
重启fpm服务

配置 nginx

需要修改的地方会有注释
为了让大家看得清楚,就把行号打开了
Ps:打开行号的命令 :set nu

vim /etc/nginx/sistes-available/admin.cbc.com
//如下修改
  1 ##
  2 # You should look at the following URL's in order to grasp a solid understanding
  3 # of Nginx configuration files in order to fully unleash the power of Nginx.
  4 # http://wiki.nginx.org/Pitfalls
  5 # http://wiki.nginx.org/QuickStart
  6 # http://wiki.nginx.org/Configuration
  7 #
  8 # Generally, you will want to move this file somewhere, and start with a clean
  9 # file but keep this around for reference. Or just disable in sites-enabled.
 10 #
 11 # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
 12 ##
 13
 14 # Default server configuration
 15 #
 16 server {
          //我注释掉了原来的配置,下面那条是自己手写的80端口
 17         #listen 80 default_server;
 18         listen 80;
 19         #listen [::]:80 default_server;
 20
 21         # SSL configuration
 22         #
 23         # listen 443 ssl default_server;
 24         # listen [::]:443 ssl default_server;
 25         #
 26         # Note: You should disable gzip for SSL traffic.
 27         # See: https://bugs.debian.org/773332
 28         #
 29         # Read up on ssl_ciphers to ensure a secure configuration.
 30         # See: https://bugs.debian.org/765782
 31         #
 32         # Self signed certs generated by the ssl-cert package
 33         # Don't use them in a production server!
 34         #
 35         # include snippets/snakeoil.conf;
 36
          //这个是配置本地的laravel环境目录
 37         root /vagrant/laravel/public;
 38
 39         # Add index.php to the list if you are using PHP
          //添加了一个 index.php ,原来是没有的。
 40         index index.php index.html index.htm index.nginx-debian.html;
 41
 42         #server_name lufficc.com www.lufficc.com;
          //这里是测试的时候,为了方便写的域名。
 43         server_name admin.cbc.com;
 44
 45         location / {
 46                 # First attempt to serve request as file, then
 47                 # as directory, then fall back to displaying a 404.
 48                 #try_files $uri $uri/ =404;
          //将下面的指令放到站点配置文件中就可以实现美化链接的功能。
 49                 try_files $uri $uri/ /index.php?$query_string;
 50         }
 51
 52         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 53         #
          //去掉前面的注释就好了。
 54         location ~ \.php$ {
          //去掉前面的注释就好了。
 55                 include snippets/fastcgi-php.conf;
 56         #
 57         #       # With php7.0-cgi alone:
          //去掉前面的注释就好了。
 58                 fastcgi_pass 127.0.0.1:9000;
 59         #       # With php7.0-fpm:
 60         #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
          //千万不要忘记这里,去掉前面的注释就好了。
 61         }
 62
 63         # deny access to .htaccess files, if Apache's document root
 64         # concurs with nginx's one
 65         #
 66         #location ~ /\.ht {
 67         #       deny all;
 68         #}
 69 }
 70
 71
 72 # Virtual Host configuration for example.com
 73 #
 74 # You can move that to a different file under sites-available/ and symlink that
 75 # to sites-enabled/ to enable it.
 76 #
 77 #server {
 78 #       listen 80;
 79 #       listen [::]:80;
 80 #
 81 #       server_name example.com;
 82 #
 83 #       root /var/www/example.com;
 84 #       index index.html;
 85 #
 86 #       location / {
 87 #               try_files $uri $uri/ =404;
 88 #       }
 89 #}

重启 nginx

service nginx stop
service nginx start

配置站点的时候
添加一个软连接
cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/admin.cbc.com ./

nginx配置完毕


添加 laravel

这里面的laravel是我自己手动再本地的工作目录下添加的,因为服务器的目录/vagrant里面是于本地的工作目录同步的,所以这也是为什么在配置nginx的时
候第37行会把项目的root目录指向/vagrant目录下的原因。毕竟是为了开发
的时候方便一些。

修改本地 hosts 文件

在地址栏输入地址:C:\Windows\System32\drivers\etc
XpWin7、可以直接修改hosts文件,Win8Win8.1Win10需要把hosts拖到桌面,修改后再拖拽回去。

添加示例如下(注意注释的部分):

# 添加如下
# 192.168.33.33 是VBox虚拟机中服务器主机的IP地址
# admin.cbc.com 是我们配置好的域名
192.168.33.33    admin.cbc.com

关于使用 Navicat for MySQL 连接数据库问题

很多人都连不上数据库,总会有连接失败的提示。可能是因为端口混淆的问题。
废话不多说,看图:

SSH部分 配置

General部分 配置

我自己这样修改后就连接上了,如果你还是连接不上,在网上找到了大神的解决方法,报如下错误请按照如下修改。

#错误
Lost connection to MySQL server at ‘reading initial communication packet', system error: 0

解决方法

#找到mysql的配置文件
vim /etc/mysql/my.cnf
#看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字:(在文字之前加上#号即可)
bind-address = 127.0.0.1
#然后找到[mysqld]部分的参数,在配置后面建立一个新行,添加下面这个参数:
skip-name-resolve
#保存文件并重启MySQL:
/etc/init.d/mysql restart
#解决

再不行的话按下面的执行一下

//修改本地SSH配置文件
vim /etc/ssh/sshd_config
//在配置信息的尾部,添加如下代码:
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
//保存退出后,执行
ssh-keygen -A
//重启SSH
service ssh restart

如果还是不行,也可能是Navicat for MySQL版本问题。或者请使用英文版(汉化版不解释)。

(全文完)


【文章中命令解释】
最后附上vagrant
一些常用的命令, 希望这能帮助你们, 别忘记点赞哟
$ vagrant box add NAME URL #添加一个box
$ vagrant box list #查看本地已添加的box
$ vagrant box remove NAME virtualbox #删除本地已添加的box
$ vagrant box remove NAME 如若是版本1.0.x,执行
$ vagrant init NAME #初始化,实质应是创建Vagrantfile文件
$ vagrant up #启动虚拟机
$ vagrant halt #关闭虚拟机
$ vagrant destroy #销毁虚拟机
$ vagrant reload #重启虚拟机
$ vagrant package #当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box
$ vagrant ssh #进入虚拟环境


【原文转自】
搭建nginx服务器 配置laravel
【原文参考】
《倡哥 - Ubuntu 下php7 mysql5.7 LNMP 环境搭建》
《倡哥 - Windows 下使用 Vagrant 构建 Linux 开发环境》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容