《PHP和MySQL Web开发从新手到高手(第5版)》一一1.3 在Mac OS X下安装

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

本节书摘来自异步社区出版社《PHP和MySQL Web开发从新手到高手(第5版)》一书中的第1章,第1.3节,作者: 【澳】Kevin Yank,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 在Mac OS X下安装

PHP和MySQL Web开发从新手到高手(第5版)
在本节中,我们将介绍如何在一台运行Mac OS X version 10.5(Leopard)的Mac计算机上开始运行一个安装了PHP和MySQL的Web服务器。如果你使用的并不是Mac计算机,可以跳过本节。

Mac OS X将Apache和PHP都作为标准安装组件来安装,它是唯一这么做的面向消费者的OS(实际上,它还附带了Ruby、Python和Perl,所有这些都是流行的Web编程语言)。也就是说,只需要几个步骤就能启动Apache和PHP。但是,你还是需要一个MySQL数据库服务器。最简单的方法是忽略内建的软件,并且用一个方便的、一体化的安装包来安装你所需要的所有部件。

MAMP(表示Mac、Apache、MySQL和PHP)是一款免费的、一体化的程序,它包含了Apache Web服务器、PHP和MySQL的最新版本。让我们来看看安装它的过程。

tb1.tif 自主选项

在本书之前的版本中,我建议你安装Mac OS X所自带的Apache和PHP的内建版本,并且使用MySQL的官方安装包来安装它。我认为,对于初学者来说,这是很好的做法,因为这让你能够很好地体会这些软件是如何配合工作的。

遗憾的是,这意味着很多读者的最初的几个小时要花在“PHP落地”上,按照详细安装说明,在一个漫长的过程中跌跌撞撞地前进。更糟糕的是,有时候某一个软件包的一些细小的变化,就意味着这些说明的细节部分变得过时了。

如今,我坚信学习PHP和MySQL最好的方式是直接开始使用它们。安装的过程越快速、越省力就越好。这就是为什么在本版中我要求你使用MAMP。

此外,我们有很多的机会去了解这些软件,那又何必给计算机安装一堆独立且不相关,而又很难删除的软件呢?

尽管如此,如果你是喜欢坚持自己动手的人,或者是一位技术高手,又或者如果你只是想学完本书并看看专业人士是如何做的,那么,我在附录A中给出了每一个单独软件包的详细安装说明。

如果你是上述的某一类读者,建议你按照附录A而不是本节的介绍去做。
1.从MAMP的Web站点下载最新版本(需要免费的MAMP,而不是商业版的MAMP PRO)1。在下载该文件之后(在编写本书时,MAMP 2.0.5大约是116MB),双击该文件以解压缩安装程序(MAMP.pkg)。然后,双击它并启动MAMP安装程序,如图1.8所示。

image

注意下面的内容

下一个步骤需要一些技巧。在开始任意地单击按钮进行安装之前,请务必先阅读注意事项。
2.在安装过程中,安装程序会提示你选择是否执行标准安装。在这一步骤中,单击Customize按钮而不是Install按钮。这会使得你有机会选择不采用MAMP PRO(安装程序会悄悄地作为默认项,希望你安装这个版本,从而让你决定购买该版本)。这很重要,因为如果安装了MAMP PRO,在启动免费版的MAMP的时候将会显示一条令人烦恼的警告消息。

错过了步骤

如果你错过了这一步,并且已经允许安装程序在系统上安装了MAMP PRO,那么删除它也很容易。

打开Applications文件夹,双击新建的MAMP PRO文件夹,双击MAMP PRO Uninstaller以运行它。选中Uninstaller窗口中的每一个复选框。一旦选中了所有这些复选框,单击Uninstall按钮。最后退出Uninstaller。
浏览Applications文件夹,并且在那里找到新的MAMP文件夹。打开它,双击MAMP图标以启动MAMP。当MAMP启动的时候,将会出现如下的情况:首先,出现如图1.9所示的MAMP窗口。两个状态指示标志将从红色变为绿色,表示内建的Apache和MySQL服务器启动了。接下来,MAMP将会打开默认的Web浏览器,并且加载MAMP的欢迎页面,如图1.10所示。
image

如果你看到这个页面,就意味着Web服务器已经启动并运行了,因为你看到的这个页面就是从服务器载入的。注意,浏览器的地址栏中的URL是以http://localhost:8888/开头的(一些现代的浏览器可能隐藏协议“http://”),localhost是一个特殊的主机名,它总是指向你自己的计算机。“8888”是浏览器用来连接到你的计算机的端口号。

计算机上运行的每一个服务器,都监听一个唯一的端口号。通常,Web站点寄存在端口80上,并且,当URL没有指定端口号的时候,浏览器就使用80端口来连接服务器。默认情况下,MAMP配置为Apache监听8888端口,而MySQL监听8889端口。这就确保了如果Mac已经安装了一个Web服务器并监听80端口,或者已经安装了一个MySQL服务器监听3306端口2(这是标准的MySQL服务器端口)的话,MAMP将仍然能够继续工作。

本书后续内容中的代码和说明,都将假设你的Web服务器在80端口上运行,并且MySQL服务器在3306端口上运行。现在是一个很好的时机,可以查看下MAMP是否使用了这些标准的端口正常运行。按照如下步骤即可。

1.在MAMP窗口中,点击Stop Servers按钮,等待指示标志变为红色。

2.单击Preferences…按钮并导航到Ports标签页。

3.单击Set to default Apache and MySQL ports按钮,以便Apache能够使用80端口而MySQL使用3306端口。单击OK按钮。

4.单击Start Servers,MAMP将会提示你输入密码。因为要在80这样的一个“官方”Internet端口上运行服务器,需要有管理员权限。

如果两个指示标志都变成了绿色,再次单击Open start page按钮,并且验证MANP的欢迎页面正常显示(这次是使用以http://localhost/(没有端口号)开头的一个URL来进行的)。如果是这样的话,你干得很好。

如果在步骤1中,有一个或两个指示标志没有变成红色,或者如果欢迎页面没有正确载入,那很可能有端口冲突。在Mac上的某处,有另外一个Web服务器或MySQL服务器已经使用了一个端口或两个端口。一个需要检查的位置是System Preferences中的Sharing图标。如果Web Sharing是打开的,Mac OS X的内建Apache是在运行中(通常在端口80上)的。另一个选择是尝试关闭各种应用。例如,在某些条件下,Skype for Mac会阻止MAMP的MySQL服务器启动。

如果最终你只能够让MAMP在其默认的端口上正常运行(8888和8889),继续并使用它们。无论何时,只要本书提到了以http://localhost/开头的一个URL,你就必须添加端口号(http:// localhost:8888/)。并且当需要连接到MySQL的时候,我将告诉你如何指定一个非标准的端口号。

对默认的MAMP配置所做的最后一项修改,就是打开PHP错误显示。默认情况下,当你在PHP代码中犯下一个严重的错误的时候(相信我,我们都会犯很多错误),MAMP的Apache服务器将会产生一个空白的Web页面。作为一名开发者,当你需要搞清楚出现了什么样的输入错误的时候,这真的帮不上什么忙。我更喜欢在浏览器窗口中看到一条详细的错误消息。

MAMP默认关闭了错误显示。其原因是,当你决定使用它寄存一个公开的、可供访问的Web站点的时候,当你犯错的时候,站点的访问者将不会看到这令人尴尬的错误消息。然而,实际上,一个公开Web站点遭遇尴尬,这在其开发阶段是很平常的事情。

要打开PHP错误显示,你可以在Mac的Applications文件夹中打开MAMP文件夹。从那里开始,继续向下找到bin/php/。针对MAMP所附带的每个PHP版本,这个php文件夹下面都包含了一个子文件夹。你可以在MAMP的Preferences下仔细检查以确认版本。但是,有可能已经配置为运行最新的版本了。因此,打开这个最新版本的文件夹(在我的MAMP 2.0.5版本中,是php5.3.6)。然后,再打开conf子文件夹。用你喜欢的文本编辑器打开php.ini文件(TextEdit就是不错的文本编辑器),你会看到如下几行内容:

; Print out errors (as a part of the output). For production web 
sites,
; you're strongly encouraged to turn this feature off, and use
error logging
; instead (see below). Keeping display_errors enabled on a
production web site
; may reveal security information to end users, such as file paths
on your Web
; server, your database schema or other information.
display_errors = Off
AI 代码解读

将最后一行的Off改为On,并保存该文件。现在,单击Stop Servers按钮,然后在MAMP中单击Start Servers按钮,以新的配置来重新启动Apache。好了,PHP现在将会显示有用的(如果有点让人精神崩溃的话)错误消息。

当你用完MAMP的时候,通过单击MAMP窗口中的Quit按钮,关闭掉它(以及它的内建服务器)。当你下一次需要对数据库驱动的Web站点做些事情的时候,只要重新启动它就好了。

在MAMP中设置MySQL root密码
一旦MAMP在你的Mac计算机上启动并运行,你接下来的工作应该是为MySQL设置一个root密码了。

MySQL只允许授权的用户浏览和操作存储在其数据库中的信息。因此,你需要告知MySQL,谁是经过授权的用户而谁不是。当你初次安装MySQL的时候,它配置了一个名为“root”用户,该用户能够访问MySQL并且执行大部分的任务,而不需要输入密码。因此,你的首要任务是为该root用户分配一个密码,以使得未经授权的用户无法操作你的数据库。

为何如此麻烦

意识到能够通过同一网络中的任意计算机访问MySQL(就像一个Web服务器一样)是很重要的。如果你在连接到互联网上的一台计算机上工作,那么,根据你所采取的安全性措施,世界上的任何人都可能连接到你的MySQL服务器。因此,显然选择一个难以猜测到的密码是很有必要的。
要设置MySQL root密码,首先要确保MAMP及其服务器在运行中。然后,打开Mac OS X Terminal应用程序(可以在Applications文件夹下的Utilities文件夹中找到),并且输入如下的命令(在每条命令之后按下Enter键):
**
cd /Applications/MAMP/Library/bin/**

这会导航到你的MAMP安装位置的Library/bin/子文件夹,这是Terminal工具程序所在的位置。

2../mysqladmin -u root -p password "_newpassword_"

用你想要分配给root用户的密码替代newpassword。

当你按下Enter键的时候,将会提示你输入当前的密码: root。

3.退出Terminal。

现在密码设置好了,但是带来了一个新的问题:MAMP自身需要不受限制地访问MySQL服务器,以便能够控制它。如果此时你在MAMP中点击Open start page按钮,将会收到一条错误消息:“Error: Could not connect to MySQL server!”。显然,我们需要告知MAMP新的MySQL root密码是什么。

你必须编辑MAMP文件夹中的几个文件,以使其能够再次工作。可以在TextEdit中(或者你喜欢的任何文本编辑器中),打开这些文件中的每一个。

在Mac OS X中使用TextEdit编辑PHP脚本

TextEdit有一个糟糕的习惯性错误,就是在打开.php文件的时候会将其误当作是HTML文档,并且试图将其显示为格式化文本。为了避免这一点,你必须在Open对话框中选中Ignore rich text commands复选框。
/Applications/MAMP/bin/mamp/index.php

找到如下所示的一行:

$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock',
'root', 'root');
AI 代码解读

用你的新的root密码(即'newpassword')替换第二个'root'。

/Applications/MAMP/bin/phpMyAdmin/config.inc.php

这是一个很大的文件,因此,你可能需要使用文本编辑器的Find功能来找到如下的内容:

$cfg['Servers'][$i]['user'] = 'root';
 // MySQL user
$cfg['Servers'][$i]['password'] = '**root**';
            // MySQL password (only needed
 // with 'config' auth_type)
AI 代码解读

同样,用你的新的root密码(即'newpassword')替换第二个'root'。

/Applications/MAMP/bin/checkMysql.sh

/Applications/MAMP/bin/quickCheckMysqlUpgrade.sh

/Applications/MAMP/bin/repairMysql.sh

/Applications/MAMP/bin/stopMysql.sh

/Applications/MAMP/bin/upgradeMysql.sh

小文件中的内容都是以如下的形式开头(这是以checkMysql.sh为例)的:

# /bin/sh
/Applications/MAMP/Library/bin/mysqlcheck --all-databases --check
 --check-upgrade -u root -p**root**
 --socket=/Applications/MAMP/tmp/mysql/mysql.sock
AI 代码解读

看到-proot了吗?p表示“password”,而剩下的内容是密码。将其更改为新的密码(即-pnew password)。

对这5个文件都做同样的修改。

做了这些修改并保存之后,MAMP应该又能够正常工作了。而MySQL服务器对于外围的入侵来说也已经是很好、很安全的了。

哦,不要忘了这个密码。如果忘记的话,再要修改会很困难。但是,我将在第10章中介绍如何做到这点。可以在下面记下你的MySQL root密码,以备不时之需:

tb1.tif My MySQL Root Password (Mac)

root user password:         

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1819
分享
相关文章
|
21天前
|
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
通过这个过程,用户不仅可以定制自己的桌面外观,还可以学习到更多关于 Linux 系统管理的知识,从而更好地掌握系统配置和主题管理的技巧。
73 12
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
|
2月前
|
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
95 20
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
42 0
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件,以增强开发功能和提升效率。通过正确配置插件,开发流程能够得到简化,开发体验也会更加顺畅。
236 1
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在Mac上安装DevEco Studio
本篇将专注于如何在 Mac 上安装鸿蒙开发工具 DevEco Studio,确保开发环境能够顺利搭建。完成安装后,可以正式开始鸿蒙应用的开发工作。
247 1
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在Mac上安装DevEco Studio
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
112 3
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
PHP在Web开发中的持久魅力与创新实践###
【10月更文挑战第17天】 本文探讨了PHP作为一门老牌却充满活力的编程语言,在现代Web开发中的独特优势和未来趋势。通过分析其简洁性、灵活性、强大生态系统及不断创新的特性,本文旨在揭示PHP为何能持续吸引开发者,并在技术快速迭代的时代保持竞争力。同时,文章也展望了PHP在未来Web开发领域的发展潜力,强调其在技术创新和社区支持下,依然能够引领Web开发的新潮流。 ###
74 9

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等