1、打开终端,查看Apache版本:
httpd -v
或
sudo apachectl -v
Server version: Apache/2.4.28 (Unix)
Server built: Oct 9 2017 19:54:20
2、开启Apache:
sudo apachectl start
Server version: Apache/2.4.28 (Unix)
Server built: Oct 9 2017 19:54:20
3、验证是否开启:
浏览器输入:127.0.0.1或者localhost,会出现it works
4、Apache的默认根目录:
/Library/WebServer/Documents
5、复制目录文件,修改index.php内容:
cp /Library/WebServer/Documents/index.html.en /Library/WebServer/Documents/info.php
或
复制目录/Library/WebServer/Documents下index.html.en文件,后缀名改为.php,
并编辑文件内容在it works后加上
<html>
<body>
<h1>
It works! <?php phpinfo();?>
</h1>
</body>
</html>
再次访问浏览器会看到php的版本信息
6、修改Apache的httpd.conf文件,先备份该文件
sudo vi /etc/apache2/httpd.conf
编辑内容,先根据终端提示的信息来更改(brew info php),再根据网上帖子更改:
6.1、开启php,找到并取掉注释符号#号:
LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so
并添加:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
6.2、设置虚拟主机和虚拟目录,找到并取掉注释符号#号
#LoadModule authn_core_module libexec/apache2/mod_authn_core.so
#LoadModule authz_host_module libexec/apache2/mod_authz_host.so
#LoadModule authz_core_module libexec/apache2/mod_authz_core.so
#LoadModule dir_module libexec/apache2/mod_dir.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
#LoadModule alias_module libexec/apache2/mod_alias.so
并添加`index.html index.php index.jsp index.htm`,如果网站根目录使用虚拟目录形式,则在根目录下不能添加这些文件,否则不会出现虚拟目录,
并修改文件内容:`Options FollowSymLink`修改为`Options Indexes FollowSymLinks`
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
#LoadModule perl_module libexec/apache2/mod_perl.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so
<IfModule unixd_module>
找到并去掉注释符号(#)
#Include /private/etc/apache2/extra/httpd-userdir.conf
#Include /private/etc/apache2/extra/httpd-vhosts.conf
#Include /private/etc/apache2/other/*.conf
6.3、修改默认网站目录,以自定义文件目录作为网站目录:
DocumentRoot "/Users/comyn/Sites"
<Directory "/Users/comyn/DocumentRoot">
6.3、创建虚拟主机
sudo vim /etc/apache2/extra/httpd-vhosts.conf
6.3.1、找到并去掉注释符号(#),没有则添加
#Include /private/etc/apache2/users/*.conf
6.3.2、用#注释掉原有的两个VirtualHost并添加,ServerName对应自定义网站名称,ErrorLog和CustomLog最后一个目录名也要对应修改
<VirtualHost *:80>
DocumentRoot "/Users/comyn/Workspace"
ServerName phpserver
ErrorLog "/private/var/log/apache2/phpserver-error_log"
CustomLog "/private/var/log/apache2/phpserver-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
6.4、添加DNS解析
sudo vi /etc/hosts
添加以下内容,phpserver对应上面的ServerName
127.0.0.1 phpserver
6.5、重新以phpserver浏览器访问网站,如果出现问题,可能是权限问题、没有文件问题
6.5.1、权限修改:
sudo chmod -R 775 /Users/comyn/server
6.5.2、修改 httpd.conf,添加文件
DirectoryIndex index.html index.php index.jsp index.htm
7、配置各种PHP功能
sudo cp /etc/php.ini.default /etc/php.ini
编辑php.ini内容,根据终端提示的信息来更改(brew info php):
#比如phpMyAdmin中导入数据的最大值
upload_max_filesize = 2M
post_max_size = 8M
#比如通过display_errors来控制是否显示PHP程序的报错
display_errors = Off
8、浏览器查看127.0.0.1
,可看到网站目录内容
9、如果中途有错误,可命令,启动,查看错误,并解决
sudo /usr/sbin/httpd -k start
10、重启Apache
sudo apachectl restart
11、终端查看php版本:
mac系统自带的php
/usr/bin/php -v
自己安装的php
php-fpm -v ,php -v
自带的php-fpm在/usr/sbin目录下,
通过brew安装的php把php-fpm放到了/usr/local/sbin目录,
默认启动PHP-fpm时系统会找到/usr/sbin目录的文件,他的默认php-fpm.conf为/private/etc目录,默认上不存在的
which php-fpm
/usr/local/sbin/php-fpm
解决php-fpm -v 版本不一致:export PATH=/usr/local/sbin:/usr/local/bin:$PATH
Apache 配置说明:
1. Listen 命令
Listen 80 //监听本机的所有IP地址的80端口的请求
Listen 192.168.3.100 //监听本机的指定IP地址192.168.3.100的所有端口的访问
Listen 192.168.18.89:8080 //监听本机指定IP地址192.168.18.89的8080端口的访问
2. 设置网站根目录的外部的(客户端)访问权限
Options:指定服务器将启用哪些服务器特性。取值:none、All、Indexes
None:禁用启用服务器特性
All:开启所有服务器特性
Indexes:如果首页文件不存在,则显示目录列表
Order:指定Allow(允许)和Deny(禁止)的执行顺序
Order Allow,Deny 先允许访问,再禁止IP访问
Order Deny,Allow 先禁止所有访问,再开启指定IP的访问
Deny:禁止哪些IP访问主机
Deny From All 禁止所有IP访问主机,包括自己
Deny From 192.168.18.76 192.168.18.74 禁止指定IP访问你的主机。禁止客户端的IP地址
Deny From 192.168.18 禁止网段介于192.168.18.0~192.168.18.255之间所有IP访问
Allow:允许哪些IP访问主机
Allow From All 允许所有IP访问主机,包括自己
Allow From 192.168.18.76 192.168.18.74 允许指定IP访问主机
Allow From 192.168.18 允许网段介于192.168.18.0~192.168.18.255之间所有IP访问