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

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

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

web 服務器之 apache

apache 是一款 web 服務器,用於運行 php 文件,除了 apache 外也可以是 nginx 服務器.

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

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

$ sudo apachectl start

php-setup-environment-mac-apache-start.png

常用命令

  • 查看 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 表示查找上一項匹配內容.

php-setup-environment-mac-apache-DocumentRoot.png

如果不熟悉 vim 語法也可以選擇熟悉的編輯器打開 httpd.conf 配置文件進行修改配置.
  • 修改項目部署端口
Listen : 默認監聽端口 80

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

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

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

php-setup-environment-mac-apache-listen-port.png

部署路徑

默認情況下,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 直接調用內置程序打開目錄.

php-setup-environment-mac-apache-Documents.png

如果非要一步一步找到部署路徑,打開 訪達 後選擇左側最下方的本地光盤(個人用戶名稱),然後依次選擇 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

php-setup-environment-mac-apache-integration-php.png

打開 httpd.conf 配置文件並搜索 LoadModule php 字符串,將前面的 # 去掉即可引入 php 支持,配置文件修改後記得重啓才能生效喲!

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

在項目部署根目錄下新建 info.php 測試文件,啓動服務器後訪問 [
http://localhost/info.php](
http://localhost/info.php) 如果能正常打印出 php 相關信息,那就證明 phpapache 整合無誤,否則可能是某一步配置有誤!

<?php
phpinfo();
?>

php-setup-environment-mac-apache-php-start.png

持久化存儲之 mysql

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

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

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

mysql 服務端

下載鏈接: macOS 10.14 (x86, 64-bit), DMG Archive

php-setup-environment-mac-mysql-server-download.png

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

安裝完成後,可以在系統偏好設置中找到 MySQL 圖標,查看管理 mysql 服務端.

php-setup-environment-mac-mysql-server-icon.png

點擊 MySQL 圖標,可以進行簡單的設置以及重啓服務等操作.

php-setup-environment-mac-mysql-server-running.png

但是如果想要在終端中無痛連接上 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 版數據款管理軟件,可以在瀏覽器中在線訪問,像訪問你的網站一樣訪問數據庫.

php-setup-environment-mac-mysql-client-phpMyAdmin.png

下載完成後解壓並重命名爲 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';

php-setup-environment-mac-mysql-client-phpMyAdmin-config.png

重啓 apache 服務,訪問 http://localhost/phpMyAdmin/ 開始登陸數據庫吧!

php-setup-environment-mac-mysql-client-phpMyAdmin-login.png

輸入 mysql 的用戶名和密碼登錄成功後就能管理本地數據庫了.

php-setup-environment-mac-mysql-client-phpMyAdmin-database.png

  • CS 架構的 Sequel Pro
下載地址 : v1.1.2 OS X 10.6 or Higher

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

php-setup-environment-mac-mysql-client-SequelPro.png

安裝完成後輸入數據庫連接信息連接到本地數據庫,參考信息如下.

php-setup-environment-mac-mysql-client-SequelPro-config.png

點擊連接(Connect) 連接到本地服務器,由於剛纔並沒有選擇數據庫,因此登陸後需要選定數據庫,這裏根據實際情況選擇即可.

php-setup-environment-mac-mysql-client-SequelPro-database.png

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 加入到系統環境變量中,這樣一來就能一勞永逸不用頻繁設置軟鏈接了!

php-setup-environment-mac-mysql-path.png

# 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 測試成功!

php-setup-environment-mac-php-mysql-connected.png

環境搭建要點總結

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 不僅僅可以面向過程也可以面向對象,雖然是拍簧片,但真的很強大,魅力不小呢!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章