1. 程式人生 > >php 學習筆記之搭建開發環境(mac版)

php 學習筆記之搭建開發環境(mac版)

Mac 系統預設集成了很多開發工具,其中就包括 php 所需要的一些軟體工具.

下面我們將搭建最簡單的 php 開發環境,每一步都會驗證上一步的操作結構,請一步一步跟我一起搭建吧!

web 伺服器之 apache

apache 是一款 web 伺服器,用於執行 php 檔案,除了 apache 外也可以是 nginx 伺服器.

預設情況下 mac 已經預裝了 apach 服務,自然不用 nginx 伺服器了.

現在什麼也沒有配置的情況下,直接啟動 apache 伺服器看一下能否正常執行.

$ sudo apachectl start

常用命令

  • 檢視 apache 版本

語法: apachectl -v

示例:

$ apachectl -v
Server version: Apache/2.4.34 (Unix)
Server built:   Feb 22 2019 19:30:04
  • 啟動 apache 服務

語法: sudo apachectl start

示例:

$ sudo apachectl start
Password:
  • 停止 apache 服務

語法: sudo apachectl stop

示例:

$ sudo apachectl stop
  • 重啟 apache 服務

語法: sudo apachectl restart

示例:

$ sudo apachectl restart

安裝路徑

apache 預設安裝於 /private/etc/apache2 目錄,屬於系統隱藏目錄,可以在終端中直接進入也可以在訪達中直接前往資料夾.

示例:

$ tree /private/etc/apache2
/private/etc/apache2
├── extra
│   ├── httpd-autoindex.conf
│   ├── httpd-autoindex.conf~previous
│   ├── httpd-dav.conf
│   ├── httpd-dav.conf~previous
│   ├── httpd-default.conf
├── httpd.conf
├── httpd.conf.pre-update
├── httpd.conf~previous
├── magic
├── mime.types
├── original
│   ├── extra
│   │   ├── httpd-autoindex.conf
│   │   ├── httpd-dav.conf
│   │   ├── httpd-default.conf
│   │   ├── httpd-vhosts.conf
│   │   └── proxy-html.conf
│   └── httpd.conf
├── other
│   └── php7.conf
└── users
    └── Guest.conf

5 directories, 43 files

如果想要修改專案部署路徑以及伺服器埠等自定義配置,可開啟 /private/etc/apache2/httpd.conf 檔案進行編輯,如果許可權不足,要麼提升許可權要麼複製到別處修改好再替換掉原來的配置檔案.

配置檔案一旦修改,請一定要重啟伺服器,不然並不會生效!

vim 搜尋檔案內容時臨時高亮設定: :set hlsearch ,取消高亮設定: :set nohlsearch .

  • 修改專案部署路徑

DocumentRoot : 預設部署路徑於 /Library/WebServer/Documents

終端輸入 vim 命令查詢並編輯目標節點.

$ vim /private/etc/apache2/httpd.conf

輸入 vim /private/etc/apache2/httpd.conf 進入命令列模式,輸入 :/DocumentRoot 從頭搜尋檔案內容,緊接著輸入 n 表示查詢下一項匹配字元,N 表示查詢上一項匹配內容.

如果不熟悉 vim 語法也可以選擇熟悉的編輯器開啟 httpd.conf 配置檔案進行修改配置.

  • 修改專案部署埠

Listen : 預設監聽埠 80

如果埠衝突的話,可以修改成其他埠,80 埠的好處在於可以直接訪問伺服器地址而不用顯示帶上埠號.

# 等價於 http://localhost:80
http://localhost 

# 等價於 http://127.0.0.1:80
http://127.0.0.1

部署路徑

預設情況下,apache 的部署路徑位於 /Library/WebServer/Documents ,除非你更改了 httpd.conf#DocumentRoot 的節點配置.

$ tree /Library/WebServer/Documents
/Library/WebServer/Documents
├── PoweredByMacOSX.gif
├── PoweredByMacOSXLarge.gif
├── index.html.en
└── index.html.en~orig

0 directories, 4 files

當然你可以通過訪達直接前往 /Library/WebServer/Documents 目錄或者 open /Library/WebServer/Documents 直接呼叫內建程式開啟目錄.

如果非要一步一步找到部署路徑,開啟 訪達 後選擇左側最下方的本地光碟(個人使用者名稱),然後依次選擇 Machintosh HD > 資源庫 (Library) > WebServer > Documents

世界上最好的語言之 php

php 在行業內贏得"世界上最好的語言"稱號,自嘲為"拍簧片".不管怎樣,既然我們決定 pai(拍)huang(簧)pian(片) ,那總要配置一下 php 的基本環境吧!

Mac 系統一如既往內建了 php 環境,不用我們費心去安裝 php 了,現在看一下 php 的基本資訊吧!

$ php -version
PHP 7.1.23 (cli) (built: Feb 22 2019 22:08:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

php 是一種服務端指令碼解釋性語言,依賴於 web 伺服器進行解析,所以 php 想要正常工作離不開上一步配置的 apache 伺服器.

還記得 apache 配置檔案的位置嗎?

apache 配置檔案路徑 : /private/etc/apache2/httpd.conf

開啟 httpd.conf 配置檔案並搜尋 LoadModule php 字串,將前面的 # 去掉即可引入 php 支援,配置檔案修改後記得重啟才能生效喲!

是時候展示真正的技術了,現在萬事俱備只待測試 php 到底有沒有配置成功?!

在專案部署根目錄下新建 info.php 測試檔案,啟動伺服器後訪問
http://localhost/info.php 如果能正常打印出 php 相關資訊,那就證明 phpapache 整合無誤,否則可能是某一步配置有誤!

<?php
phpinfo();
?>

持久化儲存之 mysql

Mac 系統並沒有預設安裝 mysql 服務,因此我們需要手動安裝 mysql .

一般來說,我們談到 mysql 資料庫指的是 mysql 的服務端,作為生產環境服務端足夠了並不需要客戶端.

但是,日常開發中如果沒有客戶端我們很難直觀管理資料,所以一般來說,我們還會安裝 mysql 客戶端,當然一般是各種功能強大的圖形化工具.

mysql 服務端

下載連結: macOS 10.14 (x86, 64-bit), DMG Archive

和正常的軟體安裝一樣,將安裝檔案移動到應用裡即可完成,比 Windows 的下一步下一步安裝還要方便快捷!

安裝完成後,可以在系統偏好設定中找到 MySQL 圖示,檢視管理 mysql 服務端.

點選 MySQL 圖示,可以進行簡單的設定以及重啟服務等操作.

但是如果想要在終端中無痛連線上 mysql 服務端,那麼還需要一步設定軟連結,類似於 Windows 的快捷方式.

$ sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql

現在我們就可以在終端內愉快的連線上 mysql 服務端了呢!

# 登入 `mysql` 服務端
$ mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 檢視當前資料庫列表
mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| mysql               |
| performance_schema  |
| security-plus       |
| sys                 |
| test                |
+---------------------+
6 rows in set (0.00 sec)

# 退出當前資料庫會話
mysql> exit
Bye
$ 
  • 檢視 mysql 服務端版本

語法: mysql --version

示例:

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.24, for macos10.14 (x86_64) using  EditLine wrapper
  • 檢視 mysql 服務端狀態

語法: sudo /usr/local/mysql/support-files/mysql.server status

示例:

$ sudo /usr/local/mysql/support-files/mysql.server status
 SUCCESS! MySQL running (73088)
  • 啟動 mysql 服務端

語法: sudo /usr/local/mysql/support-files/mysql.server start

示例:

$ sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
. SUCCESS! 
  • 停止 mysql 服務端

語法: sudo /usr/local/mysql/support-files/mysql.server stop

示例:

$ sudo /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL
.. SUCCESS! 
  • 重啟 mysql 服務端

語法: sudo /usr/local/mysql/support-files/mysql.server restart

示例:

$ sudo /usr/local/mysql/support-files/mysql.server restart
Shutting down MySQL
. SUCCESS! 
Starting MySQL
. SUCCESS! 

mysql 客戶端

如果說生產環境沒有 mysql 的圖形化工具也就罷了,但是如果日常開發時也不沒有圖形化工具的話,那就真的太不方便了.

這裡推薦兩個客戶端工具,一個是人畜無害的 Sequel Pro,另一個則是 php 專屬的 phpMyAdmin.

  • BS 架構的 phpMyAdmin

下載地址 : phpMyAdmin

phpMyAdmin 是一款 web 版資料款管理軟體,可以在瀏覽器中線上訪問,像訪問你的網站一樣訪問資料庫.

下載完成後解壓並重命名為 phpMyAdmin,然後移動到 apache 的專案部署路徑下,如果沒有更改過預設的部署路徑,那麼應該是 /Library/WebServer/Documents 目錄.

現在部署路徑下不僅有個 info.php 檔案還有 phpMyAdmin 資料夾.

# 僅僅顯示兩級檔案目錄
$ tree -L 2
.
├── PoweredByMacOSX.gif
├── PoweredByMacOSXLarge.gif
├── index.html.en
├── index.html.en~orig
├── info.php
└── phpMyAdmin
    ├── CODE_OF_CONDUCT.md
    ├── CONTRIBUTING.md
    ├── export.php
    ├── favicon.ico
    ├── gis_data_editor.php
    ├── import.php
    ├── import_status.php
    ├── index.php
    ├── view_operations.php
    └── yarn.lock

11 directories, 108 files

移動完成後先複製一份 config.sample.inc.php 檔案並重命名為 config.inc.php 檔案.

執行 vim /Library/WebServer/Documents/phpMyAdmin/config.inc.php 搜尋並編輯 host 節點內容,將 localhost 更改成 127.0.0.1 .

示例:

# 修改前
$cfg['Servers'][$i]['host'] = 'localhost';

# 修改後: 將 `localhost` 更改成 `127.0.0.1`
$cfg['Servers'][$i]['host'] = '127.0.0.1';

重啟 apache 服務,訪問 http://localhost/phpMyAdmin/ 開始登陸資料庫吧!

輸入 mysql 的使用者名稱和密碼登入成功後就能管理本地資料庫了.

  • CS 架構的 Sequel Pro

下載地址 : v1.1.2 OS X 10.6 or Higher

Sequel Pro 是簡單易用的資料庫管理工具,與上述的 phpMyAdmin 不同之處在於並不依賴 php 環境,可以獨立安裝部署.

安裝完成後輸入資料庫連線資訊連線到本地資料庫,參考資訊如下.

點選連線(Connect) 連線到本地伺服器,由於剛才並沒有選擇資料庫,因此登陸後需要選定資料庫,這裡根據實際情況選擇即可.

php 整合 mysql

如果沒有資料庫提供持久化儲存能力,那麼 php 只能臨時執行而沒有記憶功能,所以想要記住網站大量資訊自然離不開資料庫.

準備資料

為了接下來演示 php 整合 mysql 資料庫,現在先建立一個測試資料庫並插入一些測試資料.

下面主要是通過終端方式進行操作,小夥伴們也可以使用上述安裝的圖形化工具進行視覺化編輯.

  • 連線到本地伺服器

語法 : mysql -u <username> -p

示例:

# 連線到本地資料庫,使用者名稱 `root`,密碼自定義
$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 109
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  • 列出當前資料庫列表

語法 : show databases

示例:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| security-plus      |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
  • 建立測試資料庫

語法 : create database <databaseName>

示例:

# 建立 `test` 資料庫並指定編碼格式為 `utf8`
mysql> create database IF NOT EXISTS test default charset utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

# 再次查詢當前資料庫列表,新增 `test` 資料庫
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| security-plus      |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)
  • 列出當前資料表列表

語法 : show tables

示例:

# 使用 `test` 測試資料庫
mysql> use test;
Database changed

# 列出當前全部資料表
mysql> show tables;
Empty set (0.00 sec)
  • 建立測試資料表

語法 : create tabel <tableName> (<fieldName> <type>))

# 建立 `user` 使用者表
mysql> CREATE TABLE `test`.`user` (
       `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '使用者 id',
       `name` VARCHAR(45) NOT NULL DEFAULT '' COMMENT '姓名',
       PRIMARY KEY (`id`),
       UNIQUE INDEX `id_UNIQUE` (`id` ASC))
     ENGINE = InnoDB
     DEFAULT CHARACTER SET = utf8
     COMMENT = '使用者表';
Query OK, 0 rows affected (0.01 sec)

# 再次列出當前資料表列表
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| user           |
+----------------+
1 row in set (0.00 sec)
  • 檢視資料表結構

語法 : desc <tableName>

示例:

mysql> desc user;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| id    | bigint(11) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(45)         | NO   |     |         |                |
+-------+---------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
  • 檢視資料表建立語句

語法 : show create table <tableName>

示例:

mysql> show create table user \G
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '使用者 id',
  `name` varchar(45) NOT NULL DEFAULT '' COMMENT '姓名',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='使用者表'
1 row in set (0.00 sec)
  • 查詢資料

語法 : select [fields] from tableName [where condition] [limit N][ offset M]

示例:

mysql> select id,name from user;
Empty set (0.00 sec)
  • 插入資料

語法 : insert into <tableName> ([fields]) VALUES ([values])

示例:

mysql> INSERT INTO `test`.`user` (`name`) VALUES ('snowdreams1006');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `test`.`user` (`name`) VALUES ('雪之夢技術驛站');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `test`.`user` (`name`) VALUES ('測試使用者姓名');
Query OK, 1 row affected (0.00 sec)

mysql> select id,name from user;
+----+-----------------------+
| id | name                  |
+----+-----------------------+
|  1 | snowdreams1006        |
|  2 | 雪之夢技術驛站        |
|  3 | 測試使用者姓名          |
+----+-----------------------+
3 rows in set (0.00 sec)
  • 退出資料庫

語法 : exit

示例:

mysql> exit
Bye
$ 
  • 匯出資料

語法 : mysqldump -u <username> -p <databaseName> > exportName.sql

備份資料用到的是 mysqldump 工具,預設情況下該命令位於 /usr/local/mysql/bin 目錄下,正常情況下需要指定該路徑才能呼叫 mysqldump 命令.

$ tree /usr/local/mysql/bin
/usr/local/mysql/bin
├── innochecksum
├── lz4_decompress
├── my_print_defaults
├── myisam_ftdump
├── myisamchk
├── mysql
├── mysql_client_test_embedded
├── mysql_config
├── mysqlbinlog
├── mysqlcheck
├── mysqld
├── mysqld-debug
├── mysqld_multi
├── mysqld_safe
├── mysqldump
├── resolveip
└── zlib_decompress

0 directories, 38 files

所以,應該是如下命令才能呼叫 mysqldump 命令.

$ /usr/local/mysql/bin/mysqldump --version
mysqldump  Ver 10.13 Distrib 5.7.24, for macos10.14 (x86_64)

不過這也太長了吧,肯定不是很不變,一勞永逸的方法是將 /usr/local/mysql/bin 加入到環境變數中就不用新增額外的路徑資訊了.

還記得 mysql 服務端剛安裝完畢,我們想要通過終端連線到本地資料庫伺服器時設定了 mysql 的軟連結,所以才能直接使用 mysql -u root -p 進行登入.

mac 的軟連結方式相當於 windows 系統的快捷方式,只針對具體命令,現在需要 mysqldump 命令,繼續使用軟連結還要新增類似的快捷方式.

$ sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql
$ sudo ln -fs /usr/local/mysql/bin/mysqldump /usr/local/bin/mysqldump

實測可用,但是這並不是優雅的操作方式,/usr/local/mysql/bin/ 目錄下那麼多命令,下次需要用到其他命令豈不是要設定很多軟連結?

$ mysqldump --version
mysqldump  Ver 10.13 Distrib 5.7.24, for macos10.14 (x86_64)

所以,現在我們考慮將 /usr/local/mysql/bin 加入到系統環境變數中,這樣一來就能一勞永逸不用頻繁設定軟連結了!

# mysql
export PATH=$PATH:/usr/local/mysql/bin

設定完畢後下次重啟電腦就會生效,或者執行下述命令立即生效.

$ source ~/.bash_profile

為了測試環境變數是否生效,我們先刪除原來的軟連結.

$ rm -rf /usr/local/bin/mysql
$ rm -rf /usr/local/bin/mysqldump

依然能夠正常呼叫 mysql 相關命令.

# `mysql` 版本資訊
$ mysql --version
mysql  Ver 14.14 Distrib 5.7.24, for macos10.14 (x86_64) using  EditLine wrapper

# `mysqldump` 版本資訊
$ mysqldump --version
mysqldump  Ver 10.13 Distrib 5.7.24, for macos10.14 (x86_64)

示例:

$ mysqldump -u root -p  test > database_test.sql;
Enter password: 
$

注意 : mysqldumpmysql 相互獨立的命令列程式,並不是在 mysql 會話中執行的 sql.
檢視當前備份檔案內容:

# 備份檔案位於當前目錄
$ cat $(pwd)/database_test.sql

備份 sql 檔案內容,可以直接複製執行.

-- MySQL dump 10.13  Distrib 5.7.24, for macos10.14 (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version   5.7.24

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (
  `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '使用者 id',
  `name` varchar(45) NOT NULL DEFAULT '' COMMENT '姓名',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='使用者表';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES (1,'snowdreams1006'),(2,'雪之夢技術驛站'),(3,'測試使用者姓名');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2019-05-19 12:49:35
  • 匯入資料

語法 : source <mysqldump.sql>

示例:

# 建立 `test_import` 資料庫
mysql> create database test_import;

# 使用 `test_import` 資料庫
mysql> use test_import;

# 匯入 `database_test.sql` 檔案
mysql> source /Users/sunpo/Documents/workspace/snowdreams1006.github.io/database_test.sql
  • 刪除資料庫

語法 : drop database <databaseName>

示例:

mysql> drop database test_import;
Query OK, 1 row affected (0.01 sec)

程式設計連線

如果沒有更改過專案的部署路徑,那麼我們之前有個測試 php 環境的檔案,即 /Library/WebServer/Documents/info.php ,現在我們繼續編寫該檔案,通過編碼的方式連線到 mysql 資料庫.

<?php

$username="root";
$userpass="root";
$dbhost="127.0.0.1";
$dbdatabase="test";

// 連線到本地伺服器
$db=new mysqli($dbhost,$username,$userpass,$dbdatabase);
$db->set_charset("utf8");
if(mysqli_connect_error()){
    echo "連線失敗: " . mysqli_connect_error();
    exit;
}

# 查詢使用者列表
$result = $db->query("SELECT id,name FROM user");
if ($result->num_rows > 0) {
    // 輸出資料
    while($row = $result->fetch_assoc()) {
        echo var_dump($row). "<br>";
    }
} 

# 關閉資料庫連線
$db->close();

phpinfo();

?>

現在再次啟動 apache 伺服器,訪問 http://localhost/info.php 測試成功!

環境搭建要點總結

apache 服務預設已安裝,啟動伺服器後,在瀏覽器中訪問 http://localhost/ 會顯示It works!,表明 apache 能正常使用.

  • 檢視 apache 伺服器版本 : apachectl -v
  • 啟動 apache 伺服器 : sudo apachectl start
  • 停止 apache 伺服器 : sudo apachectl stop
  • 重啟 apache 伺服器 : sudo apachectl restart
  • apache 伺服器安裝路徑 : /private/etc/apache2
  • apache 伺服器部署路徑 : /Library/WebServer/Documents

php 服務預設已安裝,整合到 apache 伺服器只需要在 /private/etc/apache2/httpd.conf 配置檔案中啟用 LoadModule php7_module libexec/apache2/libphp7.so 模組即可,重啟 apache 伺服器即可支援 php 環境.

  • 檢視 php 版本資訊 : php -version
  • php 預設配置檔案路徑 : /private/etc/php.ini.default

mysql 資料庫預設沒有安裝,需要手動前往 https://www.mysql.com/downloads/ 官網進行下載安裝.

如果需要在終端命令列內訪問 mysql 服務端,最好將 mysql 的安裝路徑新增到系統環境中,或者新增軟連結也可以.

  • mysql 安裝路徑 : /usr/local/mysql
  • 系統環境變數路徑 : ~/.bash_profile
  • mysql 二進位制檔案新增到系統環境變數 : export PATH=$PATH:/usr/local/mysql/bin
  • 刷新系統環境變數配置 : source ~/.bash_profile
  • mysql 命令新增軟連結 : sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql
  • 檢視 mysql 版本資訊 : mysql --version
  • 檢視 mysql 伺服器狀態 : mysql.server status
  • 啟動 mysql 伺服器 : mysql.server start
  • 停止 mysql 伺服器 : mysql.server stop
  • 重啟 mysql 伺服器 : mysql.server restart
  • 登入 mysql 伺服器 : mysql -u root -p
  • 退出 mysql 伺服器 : exit

最後,php 不僅僅可以面向過程也可以面向物件,雖然是拍簧片,但真的很強大,魅力不小