iOS - Mac Apache WebServer 服务器配置

时间:2023-03-09 09:00:15
iOS - Mac Apache WebServer  服务器配置

前言

  • Apache 是目前使用最广的 Web 服务器,可以支持各种脚本的执行。
  • Mac 系统自带,无需单独安装,只需要修改几个配置就可以,简单,快捷。
  • 有些特殊的服务器功能,Apache 都能很好的支持。例如:HTTP PUT/DELETE 等操作。

1、Apache WebServer 配置

  • 1)准备工作:

    • 为了保证电脑的安全,必须设置用户密码。
  • 2)配置服务器:

    • 1> 配置服务器的工作:

      • 在 Finder 中创建一个 "ApacheWebServer" 的文件夹,直接创建在 /Users/JHQ0228(当前用户名)目录下。
      • 修改配置文件中的 "两个路径",指向刚刚创建的文件夹。
      • 修改一个 Options 配置项。
      • 反注释一个文件路径配置。
      • 拷贝一个文件。
    • 2> 配置服务器注意事项:

      • 关闭中文输入法。
      • 命令和参数之间需要有 "空格"。
      • 修改系统文件一定记住 "sudo",否则会没有权限。
      • 目录要在 /Users/JHQ0228(当前用户名)目录下。
    • 3> 配置服务器:

          提示:$ 开头的,可以拷贝,但是不要拷贝 $ 。
      
          "直接在当前用户目录下创建一个 ApacheWebServer 的文件夹,打开终端,按照下面的操作开始配置"
      
          # 切换工作目录
          $ cd /etc/apache2
      
          # 备份文件,以防不测,只需要执行一次就可以了,格式 cp (copy 的缩写) (源文件) (目标文件)
          # 如果后续操作出现错误,可以使用以下命令恢复    $ sudo cp httpd.conf.bak httpd.conf
          $ sudo cp httpd.conf httpd.conf.bak
      
          # 用 vim 打开 httpd.conf 文件
          $ sudo vim httpd.conf
      
          # 查找 DocumentRoot,命令模式下输入 /(查找),区分大小写
          * /DocumentRoot
      
          # "将光标移动到 DocumentRoot 所在行"
      
              DocumentRoot "/Library/WebServer/Documents"
              <Directory "/Library/WebServer/Documents">
      
          # 进入编辑模式,将光标移动到 DocumentRoot 所在行,直接按键盘上的 i 键
          * i
      
          # "修改引号中的路径为上面在 Finder 中创建的路径"
      
              DocumentRoot "/Users/JHQ0228/ApacheWebServer"
              <Directory "/Users/JHQ0228/ApacheWebServer">
      
          # "往下滑动找到 Options FollowSymLinks Multiviews 行",Mac 10.10+ 的 Apache 需要修改这一行
      
              Options FollowSymLinks Multiviews
      
          # "在 Options 与 FollowSymLinks 之间插入 Indexes"
      
              Options Indexes FollowSymLinks Multiviews
      
          # 进入命令模式,直接按键盘上的 esc 键
          * esc
      
          # 查找 php,命令模式下输入 /(查找),区分大小写
          * /php
      
          # "将光标移动到 #LoadModule php5_module libexec/apache2/libphp5.so 行首"
      
              #LoadModule php5_module libexec/apache2/libphp5.so
      
          # 删除行首注释 #,命令模式下直接按键盘上的 x 键
          * x
      
              LoadModule php5_module libexec/apache2/libphp5.so
      
          # 保存并退出,命令模式下输入 :wq ,不保存退出为 :q!
          * :wq
      
          # 切换工作目录,etc 目录有点类似于 windows/system32,存放配置文件的目录
          $ cd /etc
      
          # 拷贝 php.ini 文件
          $ sudo cp php.ini.default php.ini
      
          # 重新启动 apache 服务器
          $ sudo apachectl -k restart
      
          # "如果出现以下错误提示,表示配置完成"
      
              httpd: Could not reliably determine the server's fully qualified domain name, using
              JHQ0228-MacBookAir.local. Set the 'ServerName' directive globally to suppress this message
      
          # 将服务器脚本文件放到前面设置的 ApacheWebServer 文件夹中。
          # 打开浏览器,在浏览器地址栏中输入服务器地址如 http://192.168.88.200 ,能够进入到 “Index of /” 页面。
          # 或者输入本地地址 http://localhost 进行测试。
  • 3)常见问题:

    • 1> 如果点击服务器网站资源中的 info.php 文件,出现下载,或者只是显示一小段文字

          解决办法:
      
          在终端中输入以下两个命令:
      
          $ sudo apachectl -k stop        // 关闭 apache 服务器
      
          $ sudo apachectl -k start       // 重新再次启动 apache 服务器
    • 2> 每次启动计算机,Apache 服务器默认是不会自动启动的

          可以启动计算机之后,打开终端,输入以下命令:
      
          $ sudo apachectl -k start        // 启动 apache 服务器
      
          设置开机启动:
      
          $ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
      
          关闭开机启动:
      
          $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    • 3> 最常见的问题

      • 交换文件已经存在,直接按字母 d,可以删除交换文件。
    • 4> Mac 10.10+ 的 Apache 配置略微有一些不一样

          在 httpd.conf 中找到
      
          "Options FollowSymLinks Multiviews"
      
          加一个单词 Indexes,修改后的结果如下:
      
          "Options Indexes FollowSymLinks Multiviews"
    • 5> 执行脚本的时候,显示没有权限,拒绝访问。用 NTFS 格式的 U 盘拷贝网络素材,会把文件本身的权限过滤掉。

          以下是在终端中修改文件权限的指令:
      
          $ ls -la                                // 查看当前文件夹中的文件访问权限
          $ chmod 644 info.php(没有权限的文件名)  // 将指定的文件权限修改为 -rw-r--r-- -读写-只读-只读-,644(110 100 100)
          $ chmod 644 *.*                         // 将所有的文件权限修改为 -rw-r--r--