mac攻略(五) -- 使用brew配置php7開發環境(mac+php+apache+mysql+redis)


  網上有很多文章都是錯誤的,因為是copy別人的,作者沒有自己親測,不僅不能給新手提供幫助,還會產生嚴重的誤導,以下介紹是我不斷的爬坑,親測的一篇可用教程,,希望能對大家提供些許幫助(Mac版本是sierra),轉載請注明出處

一.apache使用的mac自帶

基本使用方法:
  啟動Apache:運行“sudo apachectl start”
  停止Apache:運行“sudo apachectl stop”,
  查看Apache:版本:運行“sudo apachectl -v”,
  重啟Apache:運行“sudo apachectl restart”
相關目錄
  apache 日志位置 /private/var/log/apache2/error_log
  apache配置主文件 /etc/apache2/httpd-conf
  apache的vhost配置 /etc/apache2/extra/httpd-vhost.conf

二.安裝php7.0

1>使用 brew doctor 可以檢查你的brew運行情況
2>添加brew的PHP擴展庫:(mac os 比較歧視PHP,不包含PHP的包,那么我們就要綁定其他人的git倉庫,用法是$ brew tap <gihhub_user/repo>)
  brew update
  brew tap homebrew/dupes
  brew tap homebrew/php
  
  (有些地方使用brew tap josegonzalez/homebrew-php或者brew tap josegonzalez/php,我去josegonzalez的倉庫看了下都是fork的homebrew的倉庫,所以我認為有上面兩個倉庫夠用了,就不寫osegonzalez的了)
  可以使用brew options php70命令來查看安裝php的選項,請注意:如果你希望以mac下的apache作為web server,編譯時要加 --with-apache;如果你的web server 是 nginx這類,就需要加上 --with-fpm。這里我用下面的選項安裝
brew install php70 --with-apxs2  --with-apache --with-gmp --with-imap --with-tidy --with-debug
 
  下面提個坑,--with-apache這個要帶上,否則macos sierra系統在安裝php7的時候不會產生相應的libphp7.so模塊
然后將下載的apache卸載,方法是
  brew list //查看都安裝了哪些
  brew uninstall //卸載相應的模塊
  brew cleanup -s //清除緩存和老舊版本文件
 
  brew link php70 //開啟PHP70進程
  php -v //測試是否成功
 
  當你安裝完之后,輸入
  brew info php70
  打出來的信息我放在了文章末尾,這些話很重要,請仔細閱讀
 
3>修改apache配置文件
  打開配置文件
    sudo vim  /etc/apache2/httpd.conf
  先將下面兩句注釋掉
    #LoadModule php5_module libexec/apache2/libphp5.so
    #Include /private/etc/apache2/other/*.conf 這行
  然后增加下面三項,注意關於libphp7.so的地址請寫你自己的
    LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
 
    <FilesMatch .php$>
      SetHandler application/x-httpd-php
    </FilesMatch>
 
    <IfModule php7_module>
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps
      <IfModule dir_module>
        DirectoryIndex index.html index.php
      </IfModule>
    </IfModule>
  
以下提及下關於php版本切換問題,如果不關心請略過這段,配置完再看
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  libphp5.solibphp7.so模塊控制着我們apache使用的php版本,比如你還裝了php56
  那么配置文件中再加上以下內容
    #LoadModule php5_module  /usr/local/opt/php56/libexec/apache2/libphp5.so
    <IfModule php5_module>
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps
      <IfModule dir_module>
        DirectoryIndex index.html index.php
      </IfModule>
    </IfModule>
   控制apache選擇的php版本,那么libphpX.so模塊我們只能選擇一個,剩下的注掉,這里我們使用php7,所以將關於libphp5.so這句注釋掉,如果你使用php56版本,那么就反過來操作
  分析下brew unlink 和brew link的作用,這里的操作別不能改變apache選擇的php版本,但是可以控制我們終端中的版本, 我們使用brew安裝時已經自動將執行程序軟連接到/usr/local/bin下
  
  如果兩個目錄下有相同的可執行程序,誰優先執行受到PATH環境變量的影響,
  在終端輸入 echo $PATH ,得到我自己PATH變量如下
    /usr/local/bin:/usr/local/sbin:/usr/local/Cellar/git/2.10.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  這里/usr/local/bin優先級最高,並且brew link phpxx 命令已經將相應php版本軟連接到此目錄下了,所以我們使用終端php -v 就可以查看相應版本了
  ---------------------------------------------------------- ---------------------------------------------------------- ---------------------------------------------------------- ----------------------------------------------------------
 
4>添加系統環境變量PATH來方便我們的使用
  進入配置文件
    sudo vim ~/.bash_profile
  將以下內容加入到路徑中,注意/usr/local/bin在/usr/local/sbin之前
    export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"   
    export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
  然后更新系統資源使之生效
    source ~/.bash_profile
  注意:
    <1>如果你用的是zsh,那么你加入的配置文件是 ~/.zshrc
    <2>關於export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"  這句,實際上我們使用brew安裝時已經自動將執行程序軟連接到/usr/local/bin下了,所以使用終端時選擇的php版本就是brew的版本,可以不寫這句
    
  關於路徑的分析傳送門:環境變量PATH分析
 
5>測試apache是否支持php70
  輸入 php -v 查看你當前的php版本
  在apache默認目錄(/Library/WebServer/Documents)下新建info.php, 內容如下
    <?php
      phpinfo();
    ?>
  重啟apache服務
    apache sudo apachectl restart
  在瀏覽器輸入localhost/info.php 當畫面出現的一刻,簡直是熱淚盈眶
 
  如果不知道怎么配置項目請點擊: apache站點配置傳送門

三.安裝mysql

1>安裝mysql
    brew install mysql
 
2>查看mysql安裝信息
    brew info mysql
  我們可以看到下面的一段話
 
#######brew info mysql命令后的提示#######
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
 
To connect run:
mysql -uroot
 
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don't want/need a background service you can just run:
mysql.server start
#######brew info mysql命令后的提示#######
 
  那么我們就按照提示操作,輸入以下命令
    mysql_secure_installation
  接下來就是按照提示操作,設置密碼
  然后決定是否要開機運行mysql,如果需要的話就運行
     brew services start mysql
  不需要的話就在使用的時候運行
    mysql.server start

3>連接mysql
  沒有密碼
    mysql -uroot
  如果你有密碼
    mysql -uroot -p
  運行一個命令試試
    show databes;
  結果出來如下,
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
 
  進入mysql命令之后退出的方法
    exit
 
4> 圖形工具使用的是navicat(破解版)

四.安裝redis 

1>使用brew安裝redis
    brew install redis
 
2>查看安裝信息
    brew info redis
  可以看到以下信息
##########brew info redis顯示信息#########
To have launchd start redis now and restart at login:
brew services start redis
Or, if you don't want/need a background service you can just run:
redis-server /usr/local/etc/redis.conf
##########brew info redis顯示信息#########
 
  如果你想要開機自啟動那么
    brew services start redis
  如果你想使用的時候再啟動
    redis-server /usr/local/etc/redis.conf
 
3>啟動redis,出現以下畫面證明安裝成功了
4>在終端打開新的窗口使用客戶端功能
  command+n組合按鍵打開一個新的窗口
  使用redis-cli命令啟動redis客戶端
    redis-cli
  使用舉例
  如果想終止redis
    redis-cli shutdown
 
備注:我使用的是laravel框架,不用自己去考慮php7的redis擴展問題

附錄

########brew info php70 命令后的信息###########
==> Caveats
To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so
 
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>
 
Finally, check DirectoryIndex includes index.php
DirectoryIndex index.php index.html
 
The php.ini file can be found in:
/usr/local/etc/php/7.0/php.ini
 
✩✩✩✩ Extensions ✩✩✩✩
 
If you are having issues with custom extension compiling, ensure that
you are using the brew version, by placing /usr/local/bin before /usr/sbin in your PATH:
 
PATH="/usr/local/bin:$PATH"
 
PHP70 Extensions will always be compiled against this PHP. Please install them
using --without-homebrew-php to enable compiling against system PHP.
 
✩✩✩✩ PHP CLI ✩✩✩✩
 
If you wish to swap the PHP you use on the command line, you should add the following to ~/.bashrc,
~/.zshrc, ~/.profile or your shell's equivalent configuration file:
 
export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"
 
GMP has moved to its own formula, please install it by running: brew install php70-gmp
 
✩✩✩✩ FPM ✩✩✩✩
 
To launch php-fpm on startup:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist
 
The control script is located at /usr/local/opt/php70/sbin/php70-fpm
 
OS X 10.8 and newer come with php-fpm pre-installed, to ensure you are using the brew version you need to make sure /usr/local/sbin is before /usr/sbin in your PATH:
 
PATH="/usr/local/sbin:$PATH"
 
You may also need to edit the plist to use the correct "UserName".
 
Please note that the plist was called 'homebrew-php.josegonzalez.php70.plist' in old versions
of this formula.
 
With the release of macOS Sierra the Apache module is now not built by default. If you want to build it on your system
you have to install php with the --with-apache option. See brew options php70 for more details.
 
To have launchd start josegonzalez/php/php70 now and restart at login:
brew services start josegonzalez/php/php70
 
 ########brew info php70 命令后的信息###########


免責聲明!

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



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