偷個懶,用的系統自帶的apache和php
apache安裝與使用
-
Mac自帶apache默認路徑
- 主程序 /usr/sbin/httpd
- 模塊 /usr/libexec/apache2
- 配置 /etc/apach2/
- 文件根目錄 /Library/WebServer/Documents
- 日志 /private/var/log/apache2/
- CGI根目錄 /Library/WebServer/CGI-Executables
- 私有配置 /private/etc/apach2
-
啟動httpd
- 修改配置文件 /etc/apache2/httpd.conf,ServerName localhost:80
- 啟動 sudo httpd -k start,sudo apachectl start
- 瀏覽器訪問localhost,出現It works!
-
常用命令
- 查看模塊 httpd -M
- 測試配置文件 httpd -t
-
配置默認站點
- 讓apache確定網站文件夾所在位置 DocumentRoot
- 給文件夾起一個別名,方便用戶用名字訪問對於的網站 ServerName,端口可以在Listen單獨配置
- 凡是涉及到apache配置文件的修改,需要重啟apache才能生效
- DNS解析:通常默認站點都是本地DNS,hosts文件 /etc/hosts
配置apache加載php模塊
- apache配置文件中加LoadModule php7_module
- httpd -t, httpd -M確認
- 重啟apache httpd -k restart
- apache分配工作給php模塊,如果是php代碼,交給php處理
- 配置中加 AddType application/x-httpd-php .php
- 檢查語法,重啟apache
- 訪問localhost/index.php
- 將php的配置文件加載到apache的配置文件中
- PHPIniDir ''/etc'
- 將etc/php.ini.default拷貝一份為/etc/php.ini
- 注意php.ini修改之后需要重啟apache生效
mysql安裝與配置
我是下載的tar包版本,解壓之后的操作步驟如下
# 將文件夾移到/usr/local下
sudo mv mysql-8.0.13-macos10.14-x86_64/ /usr/local/mysql
# 修改用戶用戶組
sudo chown -R root:wheel /usr/local/mysql
# 初始化,注意記錄臨時root密碼
/usr/local/mysql/bin/mysqld --initialize --user=mysql
# 測試啟動,重啟,停止,檢查狀態
cd /usr/local/mysql
sudo support-files/mysql.server start
sudo support-files/mysql.server restart
sudo support-files/mysql.server stop
sudo support-files/mysql.server status
# 修改root密碼
mysqladmin -u root -p password root123
# 登錄mysql
mysql -u root -p
# 輸出密碼
# 成功如下
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.13 MySQL Community Server - GPL
#其他修改root密碼的方式
# 用set password命令
mysql> set password for root@localhost = password('123');
# 直接UPDATE編輯user表
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
# 修改PATH環境變量
PATH=$PATH:/usr/local/mysql/bin
MySQL訪問
是C/S架構,通過客戶端,或者通過一些擴展插件
php連接MySQL數據庫
php本身不具備操作MySQL的能力,需要借助MySQL的擴展實現
- MAC自帶的php7.1.19,已刪除mysql擴展
- 去http://git.php.net/下載mysql擴展
- 下載對應版本php源碼php-7.1.19.tar.gz,解壓,進入對應的擴展目目錄
$ phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
---------------------
上面問題的解決辦法
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/php /usr/include/php
如果sudo還是沒有權限是因為rootless機制,鎖定了/system、/sbin、/usr
重啟之后Command+R,實用工具-Terminal-csrutil disable
$ phpize
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
這個問題用brew install autoconf即可
./configure
make
make test
sudo cp module/mysql.so /usr/lib/php/no-debug-non-zts-20160303
- 然后在/etc/php.ini中加入
extension=/usr/lib/php/extensions/no-debug-non-zts-20160303/mysql.so
- 重啟apache,sudo apachectl start
- 再看phpinfo()就已經包含mysql了