MacOS的終端與使用linux系統沒什麼區別,shell命令幾乎完全通用,非常適合服務端開發。下面講解一下MacOS 下php、apache、mysql開發環境配置,目錄結構與linux系統下的差不多,有哪些坑需要注意的呢?
MacOS自帶php與apache,把它開啟就行了。
第一步:開啟終端,sudo su 入進root許可權
第二步:mv /etc/php.ini.default /etc/php.ini,建立PHP的配件檔案php.ini
第三步:vim /etc/apache2/httpd.conf,修改httpd.conf配置檔案
修改監聽的埠:
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
Listen 80
</IfDefine>
預設網站目錄 /Library/WebServer/Documents,需要的可以修改
去掉 LoadModule php7_module libexec/apache2/libphp7.so前面的#號註釋,這裡是載入解析php的作用,我的是PHP7
apache常用命令:
啟動Apache服務 sudo apachectl start
重啟Apache服務 sudo apachectl restart
停止Apache服務 sudo apachectl stop
檢視Apache服務 sudo apachectl -v
第四步:vim /Library/WebServer/Documents/phpinfo.php, 建立測試檔案
瀏覽訪問:http://localhost/phpinfo.php,看以下圖片,恭喜你,php跑起來了
第五步:Mac沒用自帶mysql,只好去官網 https://dev.mysql.com/downloads/mysql/ 下載
安裝完成後, mysql --version檢視版本,下面是我本機的:
mysql Ver 8.0.17 for macos10.14 on x86_64 (MySQL Community Server - GPL)
php -v 檢視php版本:
PHP 7.1.16 (cli) (built: Mar 31 2018 02:59:59) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
資料庫目錄:/usr/local/mysql/data
mysql 啟動或者停止命令列:
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server restart
sudo /usr/local/mysql/support-files/mysql.server stop
也可以在系統偏好設定->MySQL中管理:
如果沒有/etc/my.cnf 資料庫配置檔案,需要建立vim /etc/my.cnf,網上可以找到別人發出來的,影印貼上進去儲存
再關聯Configuration File,點apply
mysql -uroot -p 登入
配置mysql_native_password身份驗證外掛的密碼
CREATE USER 'xiaozhu'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
grant all privileges on *.* to 'xiaozhu'@'localhost';
flush privileges;
vi /etc/my.cnf
在[mysqld]中新增下邊的程式碼default_authentication_plugin=mysql_native_password
sudo /usr/local/mysql/support-files/mysql.server restart 重啟
第六步: 我的php7 只支援mysqli_connect訪問mysql資料庫,並且mysql要配置mysql_native_password身份驗證外掛的密碼,mysql8的原因
下載phpMyAdmin放置 /Library/WebServer/Documents目錄,登入建立資料庫test,建表user
建立測試程式碼:vim /Library/WebServer/Documents/mysql.php
訪問http://localhost/mysql.php,看到以下介面大功告成。
總結:主要的坑出在mysql8要配置mysql_native_password身份驗證外掛的密碼,還有php7不支援mysql_connect,要用mysqli_connect。