当前位置:首页 > 文章列表 > 文章 > php教程 > PHP Apache project with Virtual Host

PHP Apache project with Virtual Host

来源:dev.to 2024-10-30 19:27:58 0浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《PHP Apache project with Virtual Host》,正文内容主要涉及到等等,如果你正在学习文章,或者是对文章有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

PHP Apache project with Virtual Host

创建项目目录

首先,为您的项目创建一个目录。例如,让我们创建一个名为 php 的目录:


sudo mkdir /var/www/html/php


创建 php 测试文件

在项目目录中创建一个index.php文件:


echo "<?php phpinfo(); " | sudo tee /var/www/html/php/index.php


设置目录权限

设置适当的权限,以便 apache 可以访问该目录:


sudo chown -r www-data:www-data /var/www/html/php 
sudo chmod -r 755 /var/www/html/php


命令 sudo chown -r www-data:www-data /var/www/html/php 执行以下操作:

  1. -r:该选项表示应该递归执行操作,即不仅对指定目录执行操作,还对其所有子目录和文件执行操作。

  2. www-data:www-data:指定将成为文件新所有者的用户和组都是 www-data。这是 linux 系统上的常见用户和组,用作 apache 和 nginx 等 web 服务器的默认用户。

  3. /var/www/php:这是要更改属性的目录的路径。

命令 sudo chmod -r 755 /var/www/html/php 执行以下操作:

755:这是一种权限模式:

  1. 第一个数字 (7) 为文件(或目录)的所有者提供读 (4)、写 (2) 和执行 (1) 权限,总共 7 个。

  2. 第二个数字 (5) 授予该组读取 (4) 和执行 (1) 权限,但不提供写入权限,总共 5 个。

  3. 第三个数字 (5) 还授予其他用户读取 (4) 和执行 (1) 权限,但不授予写入权限,总共 5 个。

综上所述,这个命令改变了 /var/www/html/php 内所有文件和目录的权限,让所有者拥有完全的控制权(读、写、执行),而组和其他用户只有读的权限和执行权限。这在 web 服务器环境中很常见,以确保服务器可以访问必要的文件而不影响安全性。

创建虚拟主机配置文件

为您的虚拟主机创建一个新的配置文件。该文件应与 php 项目同名:


sudo your_editor /etc/apache2/sites-available/php.conf


添加虚拟主机配置

将以下配置添加到文件中:


<virtualhost *:80>
    serveradmin webmaster@localhost
    servername php.info
    documentroot /var/www/html/php

    <directory /var/www/html/php/>
        allowoverride all
        require all granted
    </directory>

    errorlog ${apache_log_dir}/php_error.log
    customlog ${apache_log_dir}/php_access.log combined
</virtualhost>


我们来分析一下代码的各个部分:

    • 这是侦听端口 80 的虚拟主机配置块的开始,该端口是 http 的默认端口。星号 (*) 表示虚拟主机将接受来自任何 ip 地址的连接。
  1. serveradmin webmaster@localhost

    • 定义服务器管理员的电子邮件地址。该电子邮件地址可用于错误消息或用户需要联系管理员时。
  2. 服务器名称 php.info

    • 指定应用此设置的服务器的名称。在这种情况下,虚拟主机将响应 php.info 的请求。重要的是该名称正确解析为服务器的 ip(通常在 /etc/hosts 文件或 dns 中配置)。
  3. 文档根目录 /var/www/html/php

    • 定义包含当有人访问 servername 时将提供服务的文件的目录(在本例中为 php.info)。在此示例中,文件位于 /var/www/html/php.
  4. <目录 /var/www/html/php/>

    • 此块指定指定目录的特定设置。此块中的设置会影响 apache 针对该特定目录的行为。

允许覆盖全部

  • 它允许 /var/www/html/php/ 目录中的 .htaccess 文件覆盖 apache 的设置。这意味着开发人员可以使用 .htaccess 文件来配置规则,例如重定向或访问控制,而无需编辑主 apache 配置文件。

要求全部授予

  • 允许所有用户访问该目录。这意味着任何人都可以不受限制地访问 /var/www/html/php/ 中的文件。
  1. 错误日志 ${apache_log_dir}/php_error.log
  2. 指定此虚拟主机的 apache 错误日志文件的路径。 ${apache_log_dir} 是一个变量,通常在 apache 主配置文件中设置,指向存储日志的目录。这里,与该虚拟主机相关的错误将记录在 php_error.log 文件中。

  3. 自定义日志 ${apache_log_dir}/php_access.log 组合

  4. 定义此虚拟主机的 apache 访问日志文件的路径。与 errorlog 一样,这也使用 ${apache_log_dir} 变量。组合格式记录了有关请求的信息,包括客户端的 ip 地址、请求的时间、http 方法、请求的 url、状态代码和用户代理。

启用虚拟主机

使用以下命令启用新的虚拟主机:


sudo a2ensite php.conf


激活重写模块(如果需要)

如果需要使用.htaccess或url重写,请激活apache重写模块:


sudo a2enmod rewrite


将服务器名称添加到主机

要使用您定义的服务器名称 (php.info) 访问您的项目,请在 /etc/hosts 文件中添加一个条目:


sudo your_editor /etc/hosts


将以下行添加到文件末尾:


<p>127.0.0.1   php.info</p>




重新启动 apache

重新启动 apache 以使更改生效:


<p>sudo systemctl restart apache2</p>




访问项目

您现在可以通过输入 http://php.info 在浏览器中访问您的项目。

好了,本文到此结束,带大家了解了《PHP Apache project with Virtual Host》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
路由器可带多少部手机或电脑?路由器可带多少部手机或电脑?
上一篇
路由器可带多少部手机或电脑?
理解 JavaScript 对象和函数中的“this”
下一篇
理解 JavaScript 对象和函数中的“this”
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 讯飞AI大学堂免费AI认证证书:大模型工程师认证,提升您的职场竞争力
    免费AI认证证书
    科大讯飞AI大学堂推出免费大模型工程师认证,助力您掌握AI技能,提升职场竞争力。体系化学习,实战项目,权威认证,助您成为企业级大模型应用人才。
    11次使用
  • 茅茅虫AIGC检测:精准识别AI生成内容,保障学术诚信
    茅茅虫AIGC检测
    茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
    157次使用
  • 赛林匹克平台:科技赛事聚合,赋能AI、算力、量子计算创新
    赛林匹克平台(Challympics)
    探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
    187次使用
  • SEO  笔格AIPPT:AI智能PPT制作,免费生成,高效演示
    笔格AIPPT
    SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
    174次使用
  • 稿定PPT:在线AI演示设计,高效PPT制作工具
    稿定PPT
    告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
    161次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码