首先,为您的项目创建一个目录。例如,让我们创建一个名为 php:
的目录sudo mkdir /var/www/html/php
在项目目录中创建一个index.php文件:
echo "设置目录权限
设置适当的权限,以便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 执行以下操作:
-R:该选项表示应该递归执行操作,即不仅对指定目录执行操作,还对其所有子目录和文件执行操作。
www-data:www-data:指定将成为文件新所有者的用户和组都是 www-data。这是 Linux 系统上的常见用户和组,用作 Apache 和 Nginx 等 Web 服务器的默认用户。
/var/www/php:这是要更改属性的目录的路径。
命令 sudo chmod -R 755 /var/www/html/php 执行以下操作:
755:这是一种权限模式:
第一个数字 (7) 赋予文件(或目录)的所有者读 (4)、写 (2) 和执行 (1) 权限,总共 7 个。
第二个数字 (5) 为组提供读取 (4) 和执行 (1) 权限,但不提供写入权限,总共 5 个。
第三个数字 (5) 还授予其他用户读取 (4) 和执行 (1) 权限,但不提供写入权限,总共 5 个。
综上所述,这个命令改变了/var/www/html/php内所有文件和目录的权限,让所有者拥有完全的控制权(读、写和执行),而组和其他用户只有读和执行权限。这在 Web 服务器环境中很常见,以确保服务器可以访问必要的文件而不影响安全性。
创建虚拟主机配置文件
为您的虚拟主机创建一个新的配置文件。该文件应与 php 项目同名:
sudo your_editor /etc/apache2/sites-available/php.conf添加虚拟主机配置
在文件中添加以下配置:
ServerAdmin webmaster@localhost ServerName php.info DocumentRoot /var/www/html/php AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/php_error.log CustomLog ${APACHE_LOG_DIR}/php_access.log combined 我们来分析一下各部分代码:
- 这是侦听端口 80 的虚拟主机配置块的开始,该端口是 HTTP 的默认端口。星号 (*) 表示虚拟主机将接受来自任何 IP 地址的连接。
ServerAdmin webmaster@localhost
- 定义服务器管理员的电子邮件地址。该电子邮件地址可用于错误消息或用户需要联系管理员时。
服务器名称 php.info
- 指定应用此设置的服务器的名称。在这种情况下,虚拟主机将响应 php.info 的请求。重要的是该名称正确解析为服务器的 IP(通常在 /etc/hosts 文件或 DNS 中配置)。
文档根目录 /var/www/html/php
- 定义包含当有人访问 ServerName 时将提供服务的文件的目录(在本例中为 php.info)。在此示例中,文件位于 /var/www/html/php.
- 此块指定指定目录的特定设置。此块中的设置会影响 Apache 针对该特定目录的行为。
允许覆盖全部
要求所有已授予的
指定此虚拟主机的 Apache 错误日志文件的路径。 ${APACHE_LOG_DIR} 是一个变量,通常在 Apache 主配置文件中设置,指向存储日志的目录。这里,与该虚拟主机相关的错误将记录在 php_error.log 文件中。
CustomLog ${APACHE_LOG_DIR}/php_access.log 组合
定义此虚拟主机的 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
将以下行添加到文件末尾:
127.0.0.1 php.info
重新启动 Apache 以使更改生效:
sudo systemctl restart apache2
您现在可以通过输入 http://php.info 在浏览器中访问您的项目。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3