仮想マシンによる個人LNMP開発環境の構築

10289 ワード

仮想マシンによる個人LNMP開発環境の構築
  • 仮想マシン
  • をダウンロード
  • Ubuntuのミラー
  • をダウンロード
  • インストール手順
  • Ubuntuリモートログインのrootアカウント
  • を追加
  • タイムゾーン調整
  • カスタムVim構成
  • 仮想マシン共有Windowsシステムフォルダ
  • 仮想マシン自動マウント共有フォルダ
  • を再起動
  • 仮想マシンネットワークブリッジ
  • PHP取付
  • まずapt-getソースを更新し、多くのパケットを更新しない
  • php 7を取り付ける.2
  • インストールComponent
  • インストールNginx
  • aptインストール
  • 仮想サイト構成
  • Dockerインストール
  • インストールMysql
  • mysqlのrootパスワードとリモートアクセス権
  • を構成する
  • Redis
  • をインストール
  • Redisサービス端末
  • をインストール
  • Redis PHP拡張
  • をインストール
    仮想マシンのダウンロード
    VMware-workstation-PlayではなくVMware-workstation-Proをダウンロードすることに注意してください.私がダウンロードしたのは、VMware-workstation-full-14..3-9474260です.exe
    Ubuntuのミラーをダウンロード
    注意デスクトップ版のない中科の大きい住所をダウンロードしますhttp://mirrors.ustc.edu.cn/ubuntu-releases/ubuntu-18.04.1-live-server-amd64.iso
    インストール手順

    Ubuntuリモートログインのrootアカウントを追加
    Ubuntuのrootアカウントのデフォルトは無効です
    sudo passwd -u root #   root  
    sudo passwd root  #  root           
    su -  #   root      root      
    vim /etc/ssh/sshd_config  #   ssh     
    ##    PermitRootLogin yes           
    service ssh restart  #   ssh  
    

    タイムゾーンちょうせい
    tzselect #   Asia-->  China--> Beijing-->   1(Yes)
    TZ='Asia/Shanghai'
    export TZ
    ##          
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

    カスタムVim構成
    cd ~
    cp /usr/share/vim/vim80/vimrc_example.vim .vimrc
    vim .vimrc
    
    
    #####   backup    ,        
    "  set backup       " keep a backup file (restore to previous version)
    
    
    #####       
    
     62 
     63 """"""""""""""""User set"""""""""""""""""""
     64 
     65 " no vim swap file
     66 set noswapfile
     67 set undodir=~/.undodir
     68 
     69 " show line number
     70 set number
     71 
     72 " tab-->4 space
     73 set ts=4
     74 set expandtab
     75 set autoindent
    
    

    仮想マシン共有Windowsシステムフォルダ
    VMメニューバー->VM->設定->オプション->共有フォルダ->常に有効->追加(共有するフォルダを見つける)->OK
    上は正常でdf-hを再起動しなくても/mnt/hgfsが見えます.ls/mnt/hgfsは共有したばかりのフォルダを発見しました.私はshareです.file
    VMによる共有フォルダの自動マウントの再起動
    注意:仮想マシンの再起動後/mnt/hgfsに対応するフォルダが見つかりません.次のように1ラウンド実行します.
    VMメニューバー->VM->設定->オプション->共有フォルダ->無効->OK
    VMメニューバー->VM->設定->オプション->共有フォルダ->常に有効->OK
    もちろん上には2輪の操作があり、自動マウントではなく、超面倒です.次はN回試して、N回再起動して何度も成功した方法です
    apt-get install open-vm-tools
    apt-get install open-vm-tools-dkms
    
    #   Nginx   ID,  Nginx     ,       
    #                    ,     
    ps -ef | grep nginx  
    #     Nginx     
    id www-data  #uid=33 gid=33 
    
    #   www-data          -o      ,            
    vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=33,gid=33  #      
    #     fuse: mountpoint is not empty          
    #        
    df -h  #      ,     Nginx          
    reboot #      
    
    

    上で実行が完了したことを確認したら、起動自動マウントを設定します.
    vim /etc/fstab   #         ,      ,  uid gid
    # .host:/ /mnt/hgfs/  fuse.vmhgfs-fuse    allow_other,uid=33,gid=33   0   0
    mount -a  #       ,        
    reboot #      ,        
    

    VMネットワークブリッジ
    イントラネットIPが豊かであればネットワークブリッジの方式を優先する
    VMのシャットダウン後にVMメニューバーが表示される->VM->設定->ネットワークアダプタブリッジモードを選択
    電源投入コマンドライン構成
    Ubuntu 18.04のネットワーク管理プログラムはnetplanに変更されたので、構成方式も変更する必要があります.元を押すと/etc/initに遭遇します.d/networking:No such file or directory問題
    ifconfig -a  #   IP       (           ): ens33
    vim cat /etc/netplan/50-cloud-init.yaml #       
    

    静的IPを使用する場合は、以下のように変更する必要があります.
    # network: {config: disabled}
    network:
        ethernets:
            ens33:
                addresses: [192.168.1.233/24]  //       ip /24      ,   
                gateway4: 192.168.1.1  //   , Windows  
                dhcp4: no
                dhcp6: no
                nameservers:   //       ,     ip   
                    addresses: [114.114.114.114, 8.8.8.8]
        version: 2
    
    

    ネットワーク構成のリフレッシュ
    netplan apply
    ping www.baidu.com  #     
    

    PHP取付
    まずapt-getソースを更新し、多くのパッケージを更新しません.
    ubuntuのデフォルトのphpミラーはphp 5であるため.5.9 php 7ミラーを追加する必要があります
    1、ソースファイルのバックアップ
    cp /etc/apt/sources.list /etc/apt/sources.list.bak #   
    

    2、ソースリストファイルの編集
    vim /etc/apt/sources.list  #  
    

    3、元のリストを削除し、以下の内容を追加する(中科大ミラーソース)
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    

    4、aptリストの更新
    apt-get update
    

    予備:次のものは必ずしも必要ではありません.私がインストールしたとき、aptソースを変更してから、次の解決策を見つけませんでした.
    apt-get update
    apt-get install -y language-pack-en-base
    apt-get install software-properties-common
    LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
    apt-get update
    

    php 7をインストールする.2
    #  php7.2
    apt-cache search php7-* #   php modouls
    apt-install install -y php7.2 php7.2-cli php7.2-dev php7.2-fpm php7.2-mbstring php7.2-json php7.2-xml php7.2-mysql #          
    php-v   #    
    php-m   #    
    
    php -i|grep Configure
    #   PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
    
    

    Composerのインストール
    curl -sS https://getcomposer.org/installer | php
    ##    PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
    #              php7.2-mbstring   ,    php.ini        
    #       php.ini      
    php -i|grep Configure  #      
    
    php composer.phar  #    Composer                        
    mv composer.phar /usr/local/bin/composer # composer      
    composer config -g repo.packagist composer https://packagist.phpcomposer.com  #        
    
    

    インストールNginx
    ソースコードインストールとaptソースインストールの2つのインストール方法の参考があります.https://www.cnblogs.com/EasonJim/p/7806879.html
    aptインストール
    /usr/sbin/nginx:メインプログラム
    /etc/nginx:プロファイルの保存
    /usr/share/nginx:静的ファイルの保存
    /var/log/nginx:ログの保存
    関連コマンドservice nginx{start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
    仮想サイトの構成
    vim /etc/nginx/sites-available/www.mysite.com
    
    ##############      #####################
    server {
        listen 80;
        server_name www.mysite.com;
        root /mnt/hgfs/share_file/mysites/www;  #        
    
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";
    
        index index.html index.htm index.php;
    
        charset utf-8;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
    
        error_page 404 /index.php;
    
        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            #     ,       
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            #      php7.2-fpm.sock  
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
    ##########www.mysite.com END####################
    
    #      
    ln -s /etc/nginx/sites-available/www.mysite.com /etc/nginx/sites-enabled/www.mysite.com
    
    /usr/sbin/nginx -t     #       
    service nginx reload   #  
    

    最後にwindowsのhostファイルを変更します
    Dockerインストール
    あとDockerの取り付け方が少し複雑なので、後で検討します
    Mysqlのインストール
    sudo apt-get install mysql-server-5.7 #   5.7  
    
    sudo netstat -tap | grep mysql #       
    
    mysql -u root -p #     mysql   
    
    #          
    apt-get isntall mysql-client
    sudo apt-get install libmysqlclient-dev
    

    mysqlのrootパスワードとリモートアクセス権の構成
    Mysql 5.7バージョンでプロファイルが安全に変更されました/etc/mysql/my.cnfプロファイルに[mysqld]を追加
    port=3306 bind-address=0.0.0.0
    cat /etc/mysql/debian.cnf #   root        
    
    # mysql -uroot -p    ,    root     
    mysql -udebian-sys-maint -pISU7sh43XuyX4n78 #         ,      
    
    mysql> use mysql;
    mysql> select host, user, plugin,authentication_string from user;
    mysql> UPDATE mysql.user SET authentication_string=PASSWORD('root'), PLUGIN='mysql_native_password' WHERE USER='root';
    mysql> select host, user, plugin,authentication_string from user; #   root   plugin    
    mysql> flush privileges;
    mysql> exit;
    #   mysql  
    service mysql restart 
    

    Redisのインストール
    Redisサービスのインストール
    apt-get install redis-server
    
    redis-cli #   Redis         
    
    

    プロファイルアドレス/etc/redis/redis.conf
    Redis PHP拡張のインストール
    wget https://github.com/phpredis/phpredis/archive/develop.zip #        
    apt install zip          #   zip  
    unzip develop.zip        #   
    cd phpredis-develop/     #      
    phpize   #   configure    。      php7.2-dev  ,      
    ./configure      #        --with-php-config  ,        
    make
    make install  #         Installing shared extensions:/usr/lib/php/20170718/
    ll /usr/lib/php/20170718/   #             .so  ,  redis.so
    
    ll /etc/php/7.2/mods-available/   #    php       php.ini,         
    cp /etc/php/7.2/mods-available/sockets.ini /etc/php/7.2/mods-available/redis.ini
    vim /etc/php/7.2/mods-available/redis.ini #       redis.so
    cd /etc/php/7.2/fpm/conf.d/  
    ln -s /etc/php/7.2/mods-available/redis.ini 20-redis.ini   #fpm      
    cd /etc/php/7.2/cli/conf.d/
    ln -s /etc/php/7.2/mods-available/redis.ini 20-redis.ini   #cli       
    php -m     #      redis  
    service php7.2-fpm reload    #   php-fpm