Windows 下搭建 lnmp 環境

Tao發表於2019-01-17

一. 安裝 git

  1. 直接在 git 官網下載安裝即可。

二. 準備工作

  1. 下載 Vagrant 並安裝。
  2. 下載 VirtualBox 並安裝。
  3. 下載 ubuntu16.04server
  4. 將 ubuntu 放在你的專案目錄,開啟 git bash ,cd 到你的專案目錄。
  5. 輸入 vagrant box add lnmp xenial-server-cloudimg-amd64-vagrant.box。
看到提示 box:Successfully added box for 'virtualbox' 即安裝成功

初始化 box 輸入 vagrant init lnmp

配置 vagrantfile 檔案,啟動虛擬機器

  vim vagrantfile 將 config.vm.network "private_netword", ip:"192.168.199.199",註釋開啟

執行 vagrant up 啟動虛擬機器

如果提示 powershell 相關問題,請下載 powershell 或者更新 powershell 到最新版本

執行 vagrant ssh 進入虛擬機器

虛擬機器下的 vagrant 的目錄會對映到你專案目錄

安裝 php

如果安裝速度較慢,可以將 ubuntu 換到國內映象,方法自行百度

安裝 php 7.1 之前,要先安裝 language-en-base 這個包,這個包是為了解決系統不同,造成語言之間可能傳送衝突

安裝之後可以減少許多因語言編碼帶來的問題,其中 -y 參數列明直接安裝,無需確認

sudo apt-get update

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

安裝完成之後, 執行

locale-gen en_US.UTF-8

設定語言編碼為 UTF-8

sudo apt-get install software-properties-common

software-properties-common 是 add-apt-repository 所依賴的包,安裝成功後執行

sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

安裝完成之後,執行 sudo apt-get update 更新安裝包,把剛才新增的包拉取下來.

執行 apt-cache search php 7.1 搜尋 php 7.1 開頭的包檢驗是否安裝成功,輸出如下:

   root@demo:~# apt-cache search php7.1  

   php-yaml - YAML-1.1 parser and emitter for PHP  

   php-apcu - APC User Cache for PHP  

   php-ssh2 - Bindings for the libssh2 library 

   php-igbinary - igbinary PHP serializer  

   php-mailparse - Email message manipulation for PHP  

   php-libsodium - PHP wrapper for the Sodium cryptographic library

   php-propro - propro module for PHP
   ...
   ...

安裝 php sudo apt-get -y install php 7.1

安裝完成後,執行 php -v 檢視是否安裝成功,成功的話會輸出類似如下資訊

    PHP 7.1.0 beta2 (cli) ( NTS )  

    Copyright (c) 1997-2016 The PHP Group  

    Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies  

    with Zend OPcache v7.1.0 beta2, Copyright (c) 1999-2016, by Zend Technologies

安裝 php 7.1 -mysql 這是 php 7.1 與 mysql 的通訊模組:

sudo apt-get -y install php7.1-mysql

安裝 fpm,這是 Nginx 用來解析 php 檔案的:

sudo apt-get install php7.1-fpm

安裝其他必備模組

sudo  apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring

至此, PHP 與 PHP 相關模組全部安裝完成

安裝 composer

  1. wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
  2. chmod a+x /usr/local/bin/composer
  3. 將 composer 換至國內映象
  4. composer config -g repo.packagist composer https://packagist.laravel-china.org
  5. 下載 laravel 專案 composer create-project --prefer-dist laravel/laravel blog "5.5.*"
  6. 執行 composer install 出現如下問題
Failed to download symfony/thanks from dist: The zip extension and unzip command are both missing....

執行

sudo apt-get install zip

sudo apt-get install unzip

安裝 mysql

下載 .deb 包到你的伺服器

 wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb 

然後使用 dpkg 命令新增mysql的源

sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb  

注意在新增源的時候,會要你選擇安裝mysql那個應用,選擇server即可,在選擇mysql5.7後又會回到選擇那個應用介面,
此時選擇apply即可

開始安裝mysql

sudo apt-get update

sudo apt-get install mysql-server  

安裝完成之後,執行 mysql -V 檢視版本:

root@demo:~# mysql -V  

mysql  Ver 14.14 Distrib 5.7.15, for Linux (x86_64) using  EditLine wrapper

注意 如果你已經通過 ppa的方式安裝了 mysql5.6,首先要去掉這個源

sudo apt-add-repository --remove ppa:ondrej/mysql-5.6 

如果沒有 apt-add-repository 先安裝上

sudo apt-get install software-properties-common

然後其他和上面一樣,但最後要執行 sudo mysql_upgrade -u root -p 升級資料庫,執行 sudo service mysql restart 重啟資料庫,這樣你的資料會完好無缺(不出意外的話)。

安裝 nginx

sudo apt-get -y install nginx

然後執行 curl localhost 檢視是否執行成功

配置 php.ini

sudo vim /etc/php/7.1/fpm/php.ini
輸入 /fix_pathinfo 搜尋,將 cgi.fix_pathinfo=1 改為 cgi.fix_pathinfo=0,大概在 775 行的位置

image
編輯fpm的配置檔案

sudo vim /etc/php/7.1/fpm/pool.d/www.conf  
找到 listen = /run/php/php7.1-fpm.sock修改為listen = 127.0.0.1:9000。使用 9000 埠。,大概在 36 的位置

重啟 php-fpm

sudo service php7.1-fpm stop

sudo service php7.1-fpm start

配置 nginx

sudo vim /etc/nginx/sites-available/default  

主要配置 server 這部分,最終配置如下,注意結束的 } 是否配對

server {  
        #listen 80 default_server;
        listen 80;
        #listen [::]:80 default_server ipv6only=on;

        root /var/www/your-project-name/public;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name lufficc.com www.lufficc.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php?$query_string;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
                fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
        #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

至此,所有配置已全部完成,如果你需要在 git 上下載專案,請自行百度生成祕鑰,執行命令時注意許可權問題.

連線資料庫

  1. 開啟 navicat 新建連結
  2. 常規配置:主機域名輸入 127.0.0.1
  3. 使用者名稱 root,密碼 虛擬機器 root 使用者密碼   linux 下修改 root 使用者密碼
  4. SSH 選項,主機名 虛擬機器 IP 地址 使用者名稱 vagrant 密碼 vagrant
  5. 修改完成後,用 root 使用者測試看能否登入 mysql
  6. 登入成功後,即可連結資料庫
  7. 如果報錯,資訊為: SSH:Disconnected: Authentication not available(server required:publickey)
  8. 輸入指令 vim /etc/ssh/sshd_config
  9. 大概在 52 行位置,將 PasswordAuthentication 的 no 改為 yes
  10. 重啟 sshd 服務
sudo service sshd restart

再次連線資料庫,提示連線成功

命令小結

# 安裝php7.1
sudo apt-get update  
sudo apt-get install -y language-pack-en-base  
locale-gen en_US.UTF-8

sudo apt-get install software-properties-common  
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php  
sudo apt-get update

sudo apt-get -y install php7.1  
sudo apt-get -y install php7.1-mysql  
sudo apt-get install php7.1-fpm

apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring

# 安裝mysql5.7
wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb  
sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb  
sudo apt-get update  
sudo apt-get install mysql-server

# 安裝nginx
sudo apt-get -y install nginx  

相關文章