小编Wal*_*ter的帖子

通过PHP中的CURL获取Google Sites API - 获取"prolog中不允许使用内容".

$curl = new Curl();
$data = 'Email='.urlencode('MYEMAIL@EMAIL.COM').'&Passwd='.urlencode('MYPASSWORD').'&accountType=GOOGLE&source=Google-cURL-Example&service=jotspot';
$curl->post('https://www.google.com/accounts/ClientLogin',$data);

//match authorization token
preg_match("!Auth=(.*)!",$curl->response,$match);
$auth = $match[1];

//set curl headers
$curl->set_headers(array(
'Content-Type: application/atom+xml; charset=utf-8',
'Host: sites.google.com',
'GData-Version: 1.4',
'Authorization: GoogleLogin auth='. trim($auth)));

//get a list of sites associated with my domain
$curl->get('https://sites.google.com/feeds/site/clevertechie.mygbiz.com'); 

//contains data returned by $curl->get();
echo $curl->response;
Run Code Online (Sandbox Code Playgroud)

因此,我没有从$ curl-> response获取网站列表,而是收到一条消息 - "prolog中不允许内容." 我到处寻找并且找不到解决方案,请帮忙!谢谢!:)

这是应该由响应返回的XML:

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gAcl='http://schemas.google.com/acl/2007' xmlns:sites='http://schemas.google.com/sites/2008' xmlns:gs='http://schemas.google.com/spreadsheets/2006' xmlns:dc='http://purl.org/dc/terms' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'>
<updated>2012-10-31T19:00:17.297Z</updated>
<app:edited xmlns:app='http://www.w3.org/2007/app'>2012-10-31T19:00:17.297Z</app:edited>
<title>My Site Title</title>
<summary>My Site Summary</summary>
<sites:siteName>my-site-title</sites:siteName>
<sites:theme>slate</sites:theme>
</entry>
Run Code Online (Sandbox Code Playgroud)

我无法粘贴"https://sites.google.com/feeds/site/clevertechie.mygbiz.com"的来源,因为如果未在头文件中指定授权令牌,则无法直接访问该源.检索其数据的唯一方法是使用我已完成的标题中的标记.而不是获得XML,我得到"prolog中不允许内容".

$ …

php curl google-sites

8
推荐指数
1
解决办法
1569
查看次数

Phusion Passenger无法使用Apache

更新:当输入'passenger-memory-stats'时,我显示:

---Passenger processes---
Processes: 0
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?为什么即使我在httpd.conf中添加并重启apache,乘客也不会启动?

我无法让Phusion Passenger在服务器上运行Ruby on Rails.我已按照Phusion网站上的所有说明操作并安装了乘客,并修改并创建了Apache VirtualHost以指向新目录并验证所有.conf文件是否已成功加载.还加载了httpd -M passenger_module.我还成功地在localhost上运行了Passenger Standalone和Rails服务器webrick,并且能够验证它是否适用于curl.

但是当我尝试从浏览器运行我的域时,我只得到404找不到的或者我在VirtualHost下由DocumentRoot指定的文件夹中创建的空索引文件(所以我知道它正在加载.conf并进入正确的目录)但它没有加载Rails应用程序....有人可以指出我做错了什么?这是我的设置和配置:

ruby -v:
ruby 2.1.2p95

rails -v:
Rails 4.2.3

passenger -v:
Phusion Passenger version 5.0.15

httpd -v:
Apache/2.2.27 (Unix)

opearting system:
CentOS

uname -i: 
x86_64
Run Code Online (Sandbox Code Playgroud)

httpd.conf中:

Include "/usr/local/apache/conf/includes/mydomain.conf"
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
</IfModule>
Run Code Online (Sandbox Code Playgroud)

/usr/local/apache/conf/includes/mydomain.conf:

<VirtualHost 208.79.235.241:80>
ServerName mydomain.com
DocumentRoot /home/clevert/public_html/rails_apps/mydomain.com/public
PassengerRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
<Directory /home/clevert/public_html/rails_apps/mydomain.com/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

有关ruby-command的passenger-config:

Command: /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
Run Code Online (Sandbox Code Playgroud)

passenger-config validate-install:

Checking whether this Passenger install …
Run Code Online (Sandbox Code Playgroud)

ruby apache ruby-on-rails passenger phusion

6
推荐指数
1
解决办法
2574
查看次数

标签 统计

apache ×1

curl ×1

google-sites ×1

passenger ×1

php ×1

phusion ×1

ruby ×1

ruby-on-rails ×1