can';不要将Zend框架包含到共享托管服务器上的我的php文件中
我怎样才能让它工作?我需要使用Zend框架来发送邮件。 但是我无法在我的php文件中包含这个框架。问题可能是由于im使用共享主机服务造成的 我已经做了以下工作can';不要将Zend框架包含到共享托管服务器上的我的php文件中,php,zend-framework,Php,Zend Framework,我怎样才能让它工作?我需要使用Zend框架来发送邮件。 但是我无法在我的php文件中包含这个框架。问题可能是由于im使用共享主机服务造成的 我已经做了以下工作 下载了一个linux tgz发行版,其框架为2.x版 解压并通过上传文件夹。ftp到我的共享主机 我将Zend文件夹放在根目录中 我没有访问php.ini文件的权限,因此我创建了一个新文件,其中包含以下内容 safe_mode = off SMTP = localhost smtp_port = 26 sendmail_from = we
safe_mode = off
SMTP = localhost
smtp_port = 26
sendmail_from = web15.meebox.net
include_path = /home/sammensp/public_html/Zend/library
require_once 'Zend/Mail/Message.php';
use Zend\Mail;
$mail = new Mail\Message();
$mail->setBody('This is the text of the email.');
$mail->setFrom('domain@web15.meebox.net', 'Sender\'s name');
$mail->addTo('name@gmail.com', 'Name o. recipient');
$mail->setSubject('TestSubject');
$transport = new Mail\Transport\Sendmail();
$transport->send($mail);
Warning: require_once(Zend/Mail/Message.php) [<a href='function.require-
once'>function.require-once</a>]: failed to open stream: No such file or directory in
/home/sammensp/public_html/mobile/test.php on line 23
Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed
opening required 'Zend/Mail/Message.php'
(include_path='/home/sammensp/public_html/Zend/library') in
/home/sammensp/public_html/mobile/test.php on line 23
警告:require_once(Zend/Mail/Message.php)[]:无法打开流:中没有此类文件或目录
/第23行的home/sammensp/public_html/mobile/test.php
致命错误:require_once()[]:失败
打开所需的“Zend/Mail/Message.php”
(包括_path='/home/sammensp/public_html/Zend/library')
/第23行的home/sammensp/public_html/mobile/test.php
我的web应用程序和test.php文件位于/public_html/mobile/test.php
我已将include路径设置为以下include\u path=/home/sammensp/public\u html/Zend/library
你能帮我解决我做错了什么以及如何改正吗 您不能将
php.ini
放在Web服务器根目录中,它不会被加载。使用.htaccess
(假设您在apache服务器上)文件设置PHP设置(PHP\u值包含路径”):/usr/www/your\u user\u folder/your\u website\u folder/includes“
)或在PHP文件中使用设置包含路径()
您的主机可能会禁用这两种方法。除非您需要允许服务器上的所有项目访问该框架,否则不需要在全局级别包含它。事实上,大多数主持项目的人没有修改php.ini文件的权限(loval开发环境除外)
ZF只是一个库文件夹。这与人们将zend框架库添加到say codeigniter项目或类似项目中的做法非常相似。它的设计是松散耦合的,因此可以以任何方式利用它
下载ZF并将其上传到您喜欢的公共html文件夹或任何地方。使用set_include_path()和下面的示例代码:
<?php
// Define relative path to ZendFramework in public_html
define('ZF_PATH', '/../../../lib/php/zendframework');
// Define path to application directory
defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define real path to ZendFramework if it's not yet included in include_path
if(!strpos(get_include_path(), 'zendframework'))
define('ZF_REAL_PATH', realpath(APPLICATION_PATH . ZF_PATH));
else define('ZF_REAL_PATH', '');
// Updating include_path
set_include_path(implode(PATH_SEPARATOR, array(ZF_REAL_PATH, get_include_path(),)));
// Done! the rest of the code might be unnecessary in your case.
require 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
$application->bootstrap()->run();
您确定您创建的php.ini中的设置确实得到了应用吗?尝试使用set\u include\u path()
将库文件夹添加到包含路径。验证您的ini设置是否通过ini\u get()或phpinfo使用。如果需要,请使用ini_set()检查您的主机提供商,因为最终他们会决定允许您做什么。如果它们不支持您需要的内容,您可以随时切换。我检查了include路径是否正常,但仍然有问题……好的,所以我尝试使用另一个名为php mailer的邮件包装器。它奏效了,但没有奏效。我从来没有收到过zend的邮件去上班,但我想这没关系。我会妥善解决我的根本问题。也就是说hotmail将我的邮件放入垃圾邮件过滤器中,所以我现在使用了pfpinfo(),名为“include_path”的字段的值为“/home/sammensp/public_html/Zend/library”这就是我设置它的方式。顺便说一下,我的php.ini不在根目录中,而是在我保存项目的库中,它位于文件夹“/home/sammensp/public_html/”中