什么是。:在php include_path中是什么意思?


10

我正在尝试在运行xampp的计算机上安装Zend。Zend的帮助文件说,为了设置命令行工具,我需要确保/ library目录的内容位于我的php include_path指定的目录内。

当我查看我的php.ini时,include_path被注释掉了,但是值看起来像这样:

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"

include_path到底指向哪里?我对Linux很陌生,还从未见过。:作为文件路径的一部分。


2
您提到“运行xampp的计算机”您可能想要删除它并安装lamp-server,它是Ubuntu中的软件包
Marco Ceppi

1
为什么?xampp运行得很好。
EmmyS

2
Ubuntu的lamp-server元软件包(tasksel→LAMP Server)是灯泡堆栈的发行版,专门针对ubuntu量身定制。当然,您可以使用xampp-它可以很好地工作,但是建议使用Ubuntu的发行版(版本)(如果要使用规范的企业支持,则必须使用xampp)。
Stefano Palazzo

Answers:


4

:是目录列表中的分隔符。

。表示当前目录

因此,当php脚本正在寻找包含文件时,它将与php文件和/ php / includes位于同一目录。


因此,该路径当前包含两个目录-当前目录(我假设您的意思是实际包含php.ini的目录)和/ php / includes?/ php / includes在哪里(就此路径而言)?在当前目录内?或者别的地方?
EmmyS 2010年

差不多了。是相对于每个特定php文件而不是php.ini的当前目录。/ php / includes是绝对路径,需要文件系统中的顶级“ php”文件夹(与/ usr,/ etc处于同一级别)
misterben 2010年

7

.:实际上只是.(因为:是分隔多个路径的关键字),这意味着将在其中执行脚本的当前文件夹包含在include_path中。这样,当您在同一目录中有两个文件时:

index.php
include-me.php

您可以在PHP中包含第二个include('include-me.php');。如果没有.路径是你不能够这样做。

因此,为了完成如上所述的安装,您需要将的内容放置在/library您正在处理的脚本所在的文件夹中或-的同一文件夹中/php/includes(请确保;已从ini文件中删除了该文件夹)。您还可以创建另一个目录-例如,/opt/Zend/library然后添加/opt/Zend/library到您的include路径语句:include_path = ".:/php/includes:/opt/Zend/library"

最后-由于您正在运行Ubuntu,因此建议您改用Ubuntu的LAMP设置(大多数文档都假定您正在使用)。可以通过删除XAMPP并执行sudo tasksel install lamp-server该步骤来将Apache 2.2,MySQL,PHP 5.3安装到系统上来进行安装。如中所述,设置LAMP堆栈的最简单方法是什么?


1
我对xampp非常满意。我确实感谢其他信息。
EmmyS 2010年

@EmmyS很好:D-我只是在回答中包括对您评论“为什么”的回复。只是想确保您了解情况。
Marco Ceppi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.