Apache安装

发布时间:2019-03-07 19:47:54编辑:auto阅读(1916)

    Apache开启php

    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访问

关键字