当前位置:首页 > 文章列表 > 数据库 > MySQL > php 学习笔记之搭建开发环境(mac版)

php 学习笔记之搭建开发环境(mac版)

来源:SegmentFault 2023-02-24 11:56:12 0浏览 收藏

有志者,事竟成!如果你在学习数据库,那么本文《php 学习笔记之搭建开发环境(mac版)》,就很适合你!文章讲解的知识点主要包括MySQL、PHP、MacOS、apache,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

$ sudo apachectl start

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

常用命令

  • 查看
    $ apachectl -v
    Server version: Apache/2.4.34 (Unix)
    Server built:   Feb 22 2019 19:30:04
    • 启动
      $ sudo apachectl start
      Password:
      • 停止
        $ sudo apachectl stop
        • 重启
          $ sudo apachectl restart

          安装路径

          $ 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

          如果想要修改项目部署路径以及服务器端口等自定义配置,可打开

          $ vim /private/etc/apache2/httpd.conf
          输入
          $ tree /Library/WebServer/Documents
          /Library/WebServer/Documents
          ├── PoweredByMacOSX.gif
          ├── PoweredByMacOSXLarge.gif
          ├── index.html.en
          └── index.html.en~orig
          
          0 directories, 4 files

          当然你可以通过访达直接前往

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

          持久化存储之
          # 登录 `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
          $ 
          • 查看
            # 仅仅显示两级文件目录
            $ 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

            移动完成后先复制一份

            # 连接到本地数据库,用户名 `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.
            • 列出当前数据库列表
            语法 :
            mysql> show databases;
            +--------------------+
            | Database           |
            +--------------------+
            | information_schema |
            | mysql              |
            | performance_schema |
            | security-plus      |
            | sys                |
            +--------------------+
            5 rows in set (0.00 sec)
            • 创建测试数据库
            语法 :
            # 创建 `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)
            • 列出当前数据表列表
            语法 :
            # 使用 `test` 测试数据库
            mysql> use test;
            Database changed
            
            # 列出当前全部数据表
            mysql> show tables;
            Empty set (0.00 sec)
            • 创建测试数据表
            语法 :
            # 创建 `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)
            • 查看数据表结构
            语法 :
            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)
            • 查看数据表创建语句
            语法 :
            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)
            • 查询数据
            语法 :
            mysql> select id,name from user;
            Empty set (0.00 sec)
            • 插入数据
            语法 :
            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)
            • 退出数据库
            语法 :
            mysql> exit
            Bye
            $ 
            • 导出数据
            语法 :
            $ 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

            所以,应该是如下命令才能调用

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

            不过这也太长了吧,肯定不是很不变,一劳永逸的方法是将

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

            实测可用,但是这并不是优雅的操作方式,

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

            所以,现在我们考虑将

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

            设置完毕后下次重启电脑就会生效,或者运行下述命令立即生效.

            $ source ~/.bash_profile

            为了测试环境变量是否生效,我们先删除原来的软链接.

            # 备份文件位于当前目录
            $ cat $(pwd)/database_test.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
            • 导入数据
            语法 :
            mysql> drop database test_import;
            Query OK, 1 row affected (0.01 sec)

            编程连接

            如果没有更改过项目的部署路径,那么我们之前有个测试

            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). "
            "; } } # 关闭数据库连接 $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
            不仅仅可以面向过程也可以面向对象,虽然是拍簧片,但真的很强大,魅力不小呢!

            以上就是《php 学习笔记之搭建开发环境(mac版)》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
布隆过滤器简介布隆过滤器简介
上一篇
布隆过滤器简介
SQL 行转列,列转行
下一篇
SQL 行转列,列转行
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    12次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    22次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    30次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    38次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    35次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码