美文网首页配置PHP经验分享
搭建nginx服务器 配置laravel

搭建nginx服务器 配置laravel

作者: 兰秋贰柒 | 来源:发表于2016-10-29 16:45 被阅读1362次

    搭建前准备

    【环境】

    • 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 `删除原来的信息
    //本例使用清华大学源
    //切记使用一个源就好
    /***-----------清华大学源------------***/
    # 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 
    
    安装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
    
    安装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部分 配置

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

    //修改本地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 #进入虚拟环境


    【原文参考】
    《倡哥 - Ubuntu 下php7 mysql5.7 LNMP 环境搭建》
    《倡哥 - Windows 下使用 Vagrant 构建 Linux 开发环境》

    相关文章

      网友评论

        本文标题:搭建nginx服务器 配置laravel

        本文链接:https://www.haomeiwen.com/subject/dllyuttx.html