Mac OSX 下配置 LNMP開發環境


不久前負責了一個項目需要配置PHP7的開發環境,因為之前所有的項目用的是PHP5的,所以研究了這些東西,但是很遺憾,電腦出了問題,不得已重裝了系統,然后你懂得。。。什么都沒有了,要重新來過。。
雖然本人是搞前端的,但是因為時常需要接觸配置開發環境並部署本地網站,所以這次干脆從頭到尾親自動手,好好學習一下運維這方面的相關知識了。

Mac OSX 下 使用 homebrew 安裝 PHP,nginx, mysql,composer,NodeJS等,搭建LNMP開發環境。實戰經驗分享:

1 版本問題

  • 此次因為重裝並升級了系統,所以索性搭建時安裝的NMP也用了對應官網上的默認或者最新版本。
  • 如果有版本要求的可以安裝對應的版本
  • PHP建議安裝5.6的,因為PHP56的還是目前比較穩定的版本,很多公司都在用。
  • 如果有些命令行失靈或者報錯,那么很有可能是版本過於新/舊或者環境的問題,NMP的內容或命令行也會更新或者廢棄。

2 linux 命令行
這里放置一些下面安裝時可能會用到的linux 命令行,供不太了解的人參考,如有錯誤,歡迎指正。

  • 刪除文件
$ rm -rf filename
  • 查看某個文件目錄下的隱藏文件
$ ls -a  
  • 編輯某個文件的內容
$ vim 文件名  
// 按下a鍵進入編輯模式,按下esc鍵退出編輯模式,按下“:wq”表示保存並推出,按下“:q”表示不保存,直接退出。
  • 在某個文件中搜索關鍵詞
$ :/要搜索的關鍵詞,按enter鍵開始搜  

iTerm2 && Oh My Zsh

這里附上一款替代終端的軟件和口碑比較好的終端主題

下載地址 -> iTerm2
安裝之后:
執行一下命令行安裝[oh-my-zsh]主題(https://github.com/robbyrussell/oh-my-zsh):

$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Homebrew

Homebrew是Mac OSX下流行的包管理軟件,這里推薦通過Homebrew來安裝各種軟件包。

進入Homebrew官網之后,查看如何安裝:

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

PHP

添加php軟件倉庫

$ brew tap homebrew/homebrew-php

踩的坑
brew tap homebrew/dupes
brew tap homebrew/versions
嘗試在自己本地去執行這兩個命令的時候,給出了警告:

Warning: homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.

查了下發現是 homebrew/dupes,homebrew/versions好像已經被遷移到homebrew/core或者是被刪除,可以忽略。

安裝PHP(這里可以指定版本,比如可以把71換成56)

$ brew install php71

安裝后 php.ini 以及fpm的配置文件均在/usr/local/etc/php/7.1/目錄下。

設置環境變量
查看環境PATH:echo $PATH,確認/usr/local/bin, /usr/local/sbin是否存在且排在/usr/sbin之前。如不滿足,則需根據你系統所使用的shell,將環境變量添加到~/.bashrc, /.zshrc或/.profile中去:

 PATH="/usr/local/bin:/usr/local/sbin:$PATH"

啟動PHP-FPM服務

$ brew services start php71

也可通過brew services restart|stop php71命令來重啟、停止服務。

配置PHP-FPM隨機啟動

$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/

驗證PHP-FPM服務是否啟動成功

$ ps aux | grep php-fpm

如存在相關php-fpm進程,則表明啟動成功.

nginx

安裝

$ brew install nginx

安裝后,可在/usr/local/etc/nginx目錄下,找到Nginx系列配置文件。
建立需要存放項目的文件夾,舉例如下:

$ sudo mkdir -p /var/www   //創建名字為var的文件夾,該文件夾下創建www文件夾,這里多用來存放項目文件夾
$ sudo mkdir -p /var/log/nginx      // 在var文件夾下創建log文件夾,log文件夾下在創建nginx文件夾,這里用來存放nginx運行日志
$ mkdir /usr/local/etc/nginx/sites-enabled     //在/usr/local/etc/nginx/下創建sites-enabled文件夾,用來存放對應的項目的nginx的配置。

替換/usr/local/etc/nginx/nginx.conf的配置內容為(替換內容根據項目和公司需要來寫,下面只是示例內容):

user  nobody;
worker_processes  1;

error_log  /var/log/nginx/error.log debug;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        root         /var/www;
        charset utf-8;

        location / {
            index  index.html index.htm index.php;
        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        }
    }

    include sites-enabled/*;
}

啟動Nginx服務

$ sudo brew services start nginx

驗證Nginx服務啟動是否成功

$ bash -c `echo "Hello, World!" >> /var/www/index.html`
$ bash -c `echo "<?php \nphpinfo();" >> /var/www/phpinfo.php`

在瀏覽器中打開http://localhost,出現Hello, World!表示Nginx啟動成功。 在瀏覽器中打開http://localhost/phpinfo.php,出現PHP配置相關信息,表示PHP配置成功。

如果不成功,可通過以下命令查看錯誤日志排查原因:

$ tail -100f /var/log/nginx/…error.log

配置Nginx服務隨機啟動

cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/

MySQL

安裝

$ brew install mysql

啟動

$ brew services start mysql

配置隨機啟動

$ cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

phpMyAdmin

phpMyAdmin是一款方便易用的Mysql數據庫管理軟件。可以在 官網 下載最新版的phpMyAdmin。

將下載的安裝包解壓到 /var/www/phpmyadmin 目錄下,創建配置文件config.inc.php, 內容如下:

<?php

$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

然后可通過瀏覽器打開http://localhost/phpmyadmin/,進入phpmyadmin。

composer

Composer可以對php項目進行依賴管理,具體用法和內容可以查看官網.
踩的坑
在安裝composer時,需要安裝一個PHP71的一個擴展包phalcon
搜索具體的名字,如下:

$ brew search phalcon

安裝:

$ brew install homebrew/php/php71-phalcon

全局安裝
可以執行這些命令讓 composer 在你的系統中進行全局調用:

$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar
$ mv composer.phar /usr/local/bin/composer

驗證是否安裝

$ composer -v

局部安裝
可以通過 --install-dir 選項指定 Composer 的安裝目錄(它可以是一個絕對或相對路徑):

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin

nodejs

安裝nodejs

brew install nodejs
brew postinstall node

配置NPM源為國內源,以大幅提升NPM的安裝速度:

npm config set registry https://registry.npm.taobao.org

OK,完畢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM