51dev.com IT技术开发者社区

51dev.com 技术开发者社区

php Apache使用教程

互联网报道阅读(102)2018-11-03 收藏0次评论

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

以上就是php Apache使用教程的全部内容。