(MAC)PHP Apache

简介: (MAC)PHP Apache

MAC 默认是自带 Apache 服务器的,但是我们需要后天的去使用配置一下它。



基础命令


``` // 开启 sudo apachectl -k start // 关闭 sudo apachectl -k stop // 重启 sudo apachectl -k restart


// 开启 sudo apachectl start // 关闭 sudo apachectl stop // 重启 sudo apachectl restart


// mac hosts 文件目录 /private/etc/hosts


// 配置文件路径 /etc/apache2/httpd.conf // 备份配置文件 sudo cp httpd.conf httpd.conf.backup // 还原配置(其实就是用备份文件覆盖) sudo cp httpd.conf.backup httpd.conf


// 虚拟机配置路径 /etc/apache2/extra/httpd-vhosts.conf


// php.ini 路径 /etc/php.ini // 将 php.ini.default 拷贝为 php.ini sudo cp php.ini.default php.ini ```


  • httpd.conf:为 Apache 服务器的配置文件。


  • php.ini:为 PHP 语言的配置文件。


  • 上面启动参数里面有带 -k 跟没带 -k 的启动两种方式,可以看看 Apache起步命令加-k参数和不加的区别,但是有一点需要注意,如果你是用 -k 的启动那么你后面的停止重启都需要用带 -k 命令,否则会不生效,停止或者重启不了,使用不带 -k 的启动也是一样的道理。


  • 我这边是新机器,之前也没有对 Apache 服务器做过处理的,所以我们先开机就来启动一下 Apache:


sudo apachectl -k start


运行之后结果:


dengzemiaodeMacBook-Pro:~ dengzemiao$ sudo apachectl -k start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using dengzemiaodeMacBook-Pro.local. Set the 'ServerName' directive globally to suppress this message dengzemiaodeMacBook-Pro:~ dengzemiao$


咋们先不管警告啥的,因为咋们是新机器肯定啥都没有的,启动之后浏览器打开IP地址:http://localhost 或 http://127.0.0.1,如果浏览器输出 It works!,那就是启动成功了。




看来还是启动成功的!既然启动成功了!那么我们可以继续下一步...



修改 Apache 的配置文件


  • 修改前先备份配置文件 httpd.conf(使用上面的终端命令),然后用 sublime text、vscode、文本编辑等编辑器打开 /etc/apache2 下的 httpd.conf 文件。


  • Windows 上面是需要配置 Apache 路径的,Mac上则不需要这个步骤。


  • 插入 Indexes 字段,开发阶段使用,线上服务器则需要去掉 按 Command+F 搜索关键字 "FollowSymLinks",在 Options 和 FollowSymLinks 之间插入单词 Indexes。


Indexs 配置的作用是如果不存在 Index.html 文件的时候, 将该目录下的文件树列出来


```


DocumentRoot: The directory out of which you will serve your

documents. By default, all requests are taken from this directory, but

symbolic links and aliases may be used to point to other locations.


# DocumentRoot "/Library/WebServer/Documents" # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named explicitly --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Multiviews MultiviewsMatch Any


#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted

```


没有加入 Indexes 的打开 http://127.0.0.1 效果:




加入 Indexes 的打开 http://127.0.0.1 效果:




  • 修改默认服务器地址


搜索关键字 "ServerName",如果不修改,就是 http://127.0.0.1


```


ServerName gives the name and port that the server uses to identify itself.

This can often be determined automatically, but we recommend you specify

it explicitly to prevent problems during startup.

#

If your host doesn't have a registered DNS name, enter its IP address here.

#

ServerName www.example.com:80 -》 默认配置就是 127.0.0.1

现在我们需要自定义一个 ServerName

ServerName 127.0.0.1 ```


  • 打开 php


搜索关键字 "php7_module"(根据版本不同,数字也可能是php3456等),默认是被注释的,需要手动打开。


```


LoadModule php7_module libexec/apache2/libphp7.so -》默认是被注释的

LoadModule php7_module libexec/apache2/libphp7.so ```


  • 设置本地资源文件的根目录


一般在用户根目录 /Users/电脑名字 下创建文件夹 Sites 作为存放本地资源的根目录。(直接用 /Users/xxxx 根目录的原因:为了避免在 Desktop、Documents等目录下出现的子文件夹需要逐级授权问题)




然后在配置文件中搜索关键字 "DocumentRoot",将 DocumentRoot 与 Directory 后面的默认路径替换为上面的自定义路径。


``` # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # # /Library/WebServer/Documents -》 默认根目录 # /Users/dengzemiao/Sites -》 自定义根目录 DocumentRoot "/Users/dengzemiao/Sites" # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named explicitly --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Multiviews MultiviewsMatch Any


#
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 #   AllowOverride FileInfo AuthConfig Limit
 #
 AllowOverride None
 #
 # Controls who can get stuff from this server.
 #
 Require all granted

```


我在自定义目录里面创建一个自定义 index2.html(里面其他文件是我从默认路径那边拷贝过来的,这些都是没用的文件只是测试用一下):




然后在启动 Apache 之后访问路径:http://127.0.0.1/index2.html




注意了:以后开发写的php文件就是在这个 Sites 文件夹中进行创建文件或者项目开发,因为只有这里面你的php文件才会被执行成功,在其他地方则会显示源码不会被执行成功。




  • 保存配置文件


Command + S,保存需要输入密码。


  • 备份 php.ini.default 文件,(MAC)PHP php.ini 配置文件


cd /etc sudo cp php.ini.default php.ini


(这一步好像可以不用配置,我忘了之前的操作了) 并在 httpd.conf 中添加配置:


// 只需要添加路径即可,不需要带文件名 PHPIniDir /private/etc


  • 启动Apache服务


sudo apachectl -k start


启动完成后,用浏览器访问 127.0.0.1,可以看到放置在本地资源根目录下的文件。


IP(127.0.0.1)也可以换成你电脑的IP地址,这样在同一局域网的设备也可以访问服务器的内容。


用完 Apache 要手动关闭,否则会一直占用内存。


到这里为止 Apache 也就配置完成了!!!



下面是一些 Apache 细节检测设置功能介绍,可选择性了解。


检测配置文件是否有问题


如果配置文件不小心改错或者写错东西


``` APPHAS DEFAULTPORTS> Listen 8080 APPHAS DEFAULTPORTS> Listen 80


不小心改成


APPHAS DEFAULTPORTS> Listen 8080 APPHAS DEFAULTPORTS> Listenss1 80 ```


可以通过命令行


sudo apachectl -t


来检测配置文件是否有问题,上面改错之后会输出


dengzemiaodeMacBook-Pro:etc dengzemiao$ sudo apachectl -t AH00526: Syntax error on line 56 of /private/etc/apache2/httpd.conf: Invalid command 'Listenss1', perhaps misspelled or defined by a module not included in the server configuration dengzemiaodeMacBook-Pro:etc dengzemiao$


如果没有问题,则会输出:


dengzemiaodeMacBook-Pro:etc dengzemiao$ sudo apachectl -t Syntax OK



相关文章
|
6月前
|
Ubuntu Apache PHP
解决Ubuntu下Apache不解析PHP问题
解决Ubuntu下Apache不解析PHP问题
|
10天前
|
数据库连接 PHP Apache
PHP在Apache中如何运行?
PHP在Apache中如何运行?
18 5
|
3月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
56 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
3月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
332 0
|
6月前
|
关系型数据库 MySQL PHP
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
|
6月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
283 2
|
6月前
|
Apache
apache2.4集成php7或8均失败
apache2.4集成php7或8均失败
57 0
|
6月前
|
安全 网络安全 Apache
Windows下Apache部署多个php项目
在 Windows 系统下,使用 Apache 服务器发布多个 PHP 项目是一项常见的任务。本文将介绍如何在 Windows 操作系统下使用 Apache 发布多个 PHP 项目。在 Windows 操作系统下使用 Apache 发布多个 PHP 项目可能有一些挑战,但是只要您按照本文的步骤进行操作,您就可以成功地完成这项任务。希望本文能够对您有所帮助。
115 0
|
1月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
594 13
Apache Flink 2.0-preview released
|
1月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
68 3

推荐镜像

更多