PHP前端开发

PHP Apache project with Virtual Host

百变鹏仔 2天前 #PHP
文章标签 Apache

创建项目目录

首先,为您的项目创建一个目录。例如,让我们创建一个名为 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 执行以下操作:

立即学习“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>

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

  1. serveradmin webmaster@localhost

  2. 服务器名称 php.info

  3. 文档根目录 /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 在浏览器中访问您的项目。