一、macインストールnginx php 7 mysql環境

4339 ワード

Homebrew公式サイト
//    
brew -v

//  homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


国内Homebrewミラー、ミラーソースの交換加速:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

brew update

brew -v

インストール起動nginx
brew cleanup  //     

brew install nginx
//  nginx,      nginx,           ,      logs        
sudo nginx   //  
//    
ps -ef|grep nginx
nginx -V
sudo nginx -s reload  //      
sudo nginx -s stop    //  
lsof -i tcp:80        //  80      
ps aux | grep nginx  //  nginx  

nginx仮想ホストを構成し、ドメイン名でローカルWebプロジェクトにアクセス
//       url,       hosts       ip

vi /private/etc/hosts
127.0.0.1       www.dtemp.com

//  nginx    ,               

// /usr/local/etc/nginx/nginx.conf        }           

include servers/*;

vi /usr/local/etc/nginx/servers/dtemp

server {
listen 80;
server_name  www.dtemp.com;
root /Users/free/www/learnlaravel/;

access_log /usr/local/var/logs/nginx/dtemp.access.log;
location / {
    if (!-e $request_filename){
        rewrite ^/(.*) /index.php last;
    }
    index index.html index.htm index.php;
    autoindex on;
    include /usr/local/etc/nginx/conf.d/php-fpm;
  }

} 


//  /usr/local/etc/nginx/conf.d/php-fpm      :

location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on;
include /usr/local/etc/nginx/fastcgi.conf;
}

//        nginx      .php   php  ,
//         9000  ,      php-fpm   ,
//    php ,  www.dtemp.com   502  

ブラウザアドレスバー入力アドレス、リクエストフロー
例:http://www.dtemp.com/test.phpurlには次のものが含まれます.
  • プロトコル【http/http等】
  • ip/ドメイン名【www.dtemp.com】ポート【80/8080など、デフォルト80は省略可能】
  • uri【/test.php】

  • ブラウザのアドレスバーにurlを入力して車に戻ると、要求が送信され、まず本機hostsに行ってそのドメイン名に対応するipを探し、なければdnsドメイン名サーバーを探し、対応するipを手に入れ、ネットワークでアクセスするパソコンを見つけ、uriはターゲットパソコンにアクセスするリソースの道を説明した.
    本機hostsを探して、www.dtempを発見した.com対応ipは127.0.0.1、すなわち本機であり、我々が使用するnginx構成は80ポートを傍受するので、要求はnginxに受信される.nginxはwebルートディレクトリの構成とuri/testに基づいている.phpで、リソースを見つけることができます.リクエストがphpファイルであることが判明すると、リクエストは9000ポートに転送され、php−fpmに渡される.php-fpm処理が完了するとnginxに戻り、nginxは結果をhttpでブラウザに返す
    インストールphpの検索
    brew search php
    brew install [email protected]
    php -v //    
    php -m //    
    
    //   php7       ,       guid,
    //   brew services start [email protected]  php-fpm
    
    
    The php.ini and php-fpm.ini file can be found in:
        /usr/local/etc/php/7.2/
    
    [email protected] is keg-only, which means it was not symlinked into /usr/local,
    because this is an alternate version of another formula.
    
    If you need to have [email protected] first in your PATH run:
    //*        ,   php7          
    
      echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
      echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile
    
    For compilers to find [email protected] you may need to set:
      export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
      export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
    
    
    To have launchd start [email protected] now and restart at login:
      brew services start [email protected]
    Or, if you don't want/need a background service you can just run:
      php-fpm
    
    

    Laravel環境の要件は以下の通りで、testを新規作成します.phpはwebディレクトリでphpの構成や拡張などの情報がはっきり見えます
    PHP >= 7.1.3
    OpenSSL PHP Extension
    PDO PHP Extension
    Mbstring PHP Extension
    Tokenizer PHP Extension
    XML PHP Extension
    Ctype PHP Extension
    JSON PHP Extension
    BCMath PHP Extension
    
    test.php   :
    
    
    

    mysqlをインストールして、公式サイトを通じてコミュニティ版をダウンロードしますhttps://dev.mysql.com/downloads/mysql/
     brew             ,  dmg    next    ,        。
         mysql           ,mysql8            ,        ,       。
    

    navicatはmysqlデータベースを表示するのに便利で、ダウンロードアドレスをお勧めします.https://xclient.info/search/s/navicat/
    ユーザーを作成し、ライブラリの権限をユーザーに割り当てます.プロジェクトでrootアカウントを使用しないでください.
    //* mac   mysql    
    cd /usr/local/mysql-8.0.15-macos10.14-x86_64/bin
    ./mysql //  mysql     
    use mysql;//  mysql   
    //    freeuser   ,%        ,ip  。
    CREATE USER 'freeuser'@'%' IDENTIFIED BY 'free99';
    //  learnlaravel       freeuser  
    GRANT ALL PRIVILEGES ON learnlaravel.* TO 'freeuser'@'%';