2010-08-22 16 views
7

Benim CakePHP site Godaddy "ızgara barındırma" hesabı üzerinde çalışan almak için mücadele edilmiştir. Pasta uygulamamın kurulumu, hesaptaki bir alt dizinden barındırılıyor ve bir alt alan üzerinden erişilebilir. Bu çalışmayı elde etmek için .htaccess dosyalarımı ayarlamak zorunda kaldım ve şimdi bu ortamda çalışan CakePHP konsolunu almam gerekiyor.Godaddy Hosting On CakePHP Konsolu

Amazon'un EC2 hizmetinde barındırılan bir Ubuntu sunucusunda aynı pasta uygulaması kurulumuna sahibim. Temelde Ubuntu LAMP kurulum kutusundan bir düz. CakePHP konsolu bu ortamda beklendiği gibi çalışır.

Ben Godaddy konsolu çalıştırmayı denediğinizde alıyorum şu mesaj:

CakePHP Konsolu: Bu dosya yanlış yüklenmiş ve/kek/konsol olduğundan emin continue.Please yapamaz senin sistem yolu ve bu komutun doğru kullanımı için kılavuza bakın. (http://manual.cakephp.org/)

Ben neler olduğunu öğrenmek için pasta/konsolda/cake.php bazı hata ayıklama kodu eklemek başladım . Godaddy sitesinde, 1812 satırında print_r($this->args)'u eklediğimde dizinin boş olduğunu buldum. Ben Ubuntu EC2 örneğinde bunu zaman bu olsun:

Array 
(
    [0] => /var/www/www.directory.sdcweb.org/htdocs/cake/console/cake.php 
) 

O GoDaddy'nin komut satırı PHP bash kabuk komut satırı argümanları geçerken değil gibi görünüyor. CakePHP konsolunun Godaddy'de nasıl çalışacağına dair bir tavsiyede bulunan var mı?

Kek kabuğunu çağırır bash komut bu senaryoyu değiştirerek sorunu çözebilir olduğunu düşünüyorum aşağıdaki

LIB=${0/%cake/} 
APP=`pwd` 

exec php -q ${LIB}cake.php -working "${APP}" "[email protected]" 

exit; 

içerir.

+1

komut satırı argümanları iletilmiyor ... Bunun nedeninin doğruluğundan emin değilim ... VE cake.php üstündeki/usr/bin/php için bir yol var ama bu yer Godaddy'de/usr/local/bin/php adresinde. Bu konuda çalışabilirim. – the0ther

+1

kuyu, register_argc_argv Kapalı olarak ayarlanmış, bu muhtemelen cmd satır param'lerinin geçirilmemesinin nedeni olabilir. – the0ther

cevap

1

Buradaki ilk pasta güncellemenizden çıkacağından, lib/kekte herhangi bir şey düzenlemenin tamam olduğunu sanmıyorum.

Aksine, ben satır ekleyerek php.ini den register_argc_argv ayarı değişti:

register_argc_argv=On 

bana küçük şimdi çalışıyor gibi görünüyor.

+0

Bu, WHM php.ini düzenleyicisi kullanılarak benim için çalıştı. PHP7'ye güncelledim ve yönerge güncellemeyle değiştirildi. (Kolay Apache 4). –

1

"Lütfen sistem yolunda/kek/konsol bulunduğundan emin olun."

Bu, ızgara barındırmadır, dolayısıyla düzenleyebileceğiniz bir .bashrc dosyanız olduğunu varsayarak düşünüyorum. Öncelikle Bashrc

PATH = $ PATH düzenlemek için vim veya nano kullanmak ardından pasta alt dizininin tam yolu bilmek gerekir:/mutlak// yol/kek/konsol Sonra

yapabilirsiniz oturumu açın ve tekrar giriş yapın ve her yerden pasta fırını yazabilmeniz gerekir ve aldığınız hatayı düzeltmeniz gerekir (bu, uygulama dizininizden çalıştırarak veritabanı.php'nizi bulabilir).

geçici değişkeni aktarabilir ancak bunu her giriş zamanı yazmak zorunda kalacak bir Bashrc dosyasını Başarısız. Kek kabuk (kek/konsol/kek) değiştirmek içinde

+0

benim PATH'ımın doğru olduğu gibi görünüyor. cmd satırında PATH yankılandığında, doğru görünüyor ve ben her zaman "Bu dosya yanlış yüklenmiş" iletisini alıyorum, herhangi bir dizinden kek komutunu çalıştırabilir. – the0ther

12

exec php -q ${LIB}cake.php -working "${APP}" "[email protected]" 

böyle çağıran php PHP 4 CLI çalıştırmak oldu öğrendim bundan sonra

exec php -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "[email protected]" 

için.Burada bu sorunu gidermek için kurulum onların barındırma kontrol paneli üzerinden bir php tabanlı cron işi, sen php komutu bulacaksınız eğer

exec /web/cgi-bin/php5 -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "[email protected]" 

barındırma benim paylaşılan Godaddy üzerinde PHP 5 çağırmak için kullanıyorum son bash script çağrılan aslında bu php5 yürütülebilir.

+0

"register_argc_argv = 1" in arkasındaki mantığı açıklayabilir misiniz? Bu harika olurdu! – mgPePe

+1

PHP'nin "gelen komut satırı parametrelerini arayacağımı" beyan etmesinin bir yolu. http://php.net/manual/en/ini.core.php#ini.register-argc-argv – the0ther