L'exécution de Codeigniter via l'interface CLI sorties racine du site au lieu du résultat attendu
Je suis ce tutoriel sur l'exécution de Codeigniter via la CLI. J'ai fait tout ce qu'ils ont fait (copié-collé) maintenant quand je lance cette commande, il ne fait pas ce qui est attendu à l'exception de il sorties le site web de l'index de contenu.
$ cd /Users/MyUsername/Sites/code
$ php index.php tools message
La sortie j'obtiens, c'est l'index de la page HTML la source, par exemple http://localhost/code
.
Le résultat attendu doit être
Hello World!
Comment puis-je parvenir à le faire fonctionner?
Quelle est votre version de CodeIgniter?
Ma version est la version 2.0.3.
Et lorsque vous accédez à outils/de message dans le navigateur, vous obtenez "Bonjour le Monde!" ?
avez-vous essayez $this->input->is_cli_request() ?
Probablement la solution est stackoverflow.com/questions/10322587/... , a fonctionné pour moi
Ma version est la version 2.0.3.
Et lorsque vous accédez à outils/de message dans le navigateur, vous obtenez "Bonjour le Monde!" ?
avez-vous essayez $this->input->is_cli_request() ?
Probablement la solution est stackoverflow.com/questions/10322587/... , a fonctionné pour moi
OriginalL'auteur MacMac | 2011-10-06
Vous devez vous connecter pour publier un commentaire.
essayez ceci:
ou
aussi, postez le contenu de votre $_SERVER var et de la valeur de la 'uri_protocol variable de config.php.
$config['uri_protocol'] doit être "AUTO"
php index.php/tools/message
j'aiNo input file specified.
erreurMikhail, je vais avoir le même problème que vous. Avez-vous trouvé une solution?
php index.php/tools/message
ne fonctionne pas quand je lancedocker exec
, je dois changer de $config['uri_protocol'] être "AUTO".Si vous essayez d'exécuter Codeigniter via l'interface CLI sur l'hébergement web partagé avec CRON, la commande php lui-même peut être le problème. J'ai écrit un CRON ligne sur cPanel, mais l'index.php le script n'a pas eu les arguments. Enfin, il a travaillé avec le PATH_INFO option et avec des arguments séparés par des espaces, mais j'ai dû utiliser la commande
/usr/local/bin/php
au lieu de/usr/bin/php
OriginalL'auteur Vlad Balmos
Pour moi, c'était résolue par la modification de:
dans le fichier de configuration principal.
J'avais déjà changé qu'il
qui ne fonctionne pas avec CLI apparemment.
A été d'essayer de l'exécuter à partir de la cli avec uri_protocol réglé sur "PATH_INFO" n'a pas fonctionné alors, le changer pour "AUTO", il l'a fait pour moi. merci!
OriginalL'auteur Victor Schelin
Vous avez une erreur avec votre routage, votre nouvel exemple de la CLI contrôleur n'est pas déclenché, mais d'un autre contrôleur. Qui d'erreur que vous avez avec votre routage est difficile à dire, tant que vous n'avez pas indiqué votre code entier.
OriginalL'auteur hakre
Cela a fonctionné pour moi - à http://www.daharveyjr.com/codeigniter-cli-command-line-interface/
Je puis courir comme ce
OriginalL'auteur Gordon Oppenheimer
Je sais que cette question a déjà été posée, mais pour moi et pour les autres, la réponse choisie ne fonctionne pas. Ce que j'ai trouvé pour le travail est tout simplement à l'aide de
wget
. Avant de vous en bas de voter de moi parce que vous êtes à la recherche de quelque chose qui n'autorise pas les visiteurs extérieurs, écoutez-moi!Si vous utilisez
wget
en conjonction avec$this->input->ip_address();
vous pouvez vous assurer que la seule machine accéder à votre script est votre propre serveur. Il n'est pas aussi bon que d'être en mesure d'appeler le fichier localement à l'aide dephp index.php controller function
, mais c'est une solution de repli.Voici ce que j'ai créé qui a travaillé pendant quelques mois sans problème:
Créer un répertoire sur votre serveur, vous pouvez simplement l'utiliser comme un bloc-notes pour les fichiers temporaires créés par wget. J'ai créé un dossier nommé
cron
un niveau en dessous de monpublic_html
dossier.ex.
/home/myuser/cron
Construire votre commande cron. Vous pouvez enchaîner des commandes à l'aide
&&
.je.
cd /home/myuser/cron &&
-- déplacer à votre répertoire de travailii.
wget http://www.site.com/cron/foo &&
-- wget votre fichieriii.
rm -f foo
-- Supprimer le fichier téléchargé "foo" à partir de votre répertoire de travailVotre commande finale ressemblera à quelque chose comme ceci:
cd /home/myuser/cron && wget http://www.site.com/cron/foo && rm -f foo
Vérifiez que l'adresse IP de l'accès à vos fichiers cron est égal à votre serveur IP:
Important: Veuillez vous assurer que vous comprenez pleinement les effets de
rm -f
. Il peut avoir des conséquences si vous ne fournissez pas le bon fichier. Si vous avez du temps libre, vous pouvez choisir de supprimer le fichier et simplement supprimer manuellement tous les cron zéro périodiquement les fichiers.wget
. Veuillez noter que vous pouvez utiliser--delete-after
pour supprimer la page téléchargé après l'exécution dewget
.hmm, je n'étais pas au courant de cela. J'aurais dû lire la page de man de la première. C'est probablement mieux que l'aide de la commande rm.
OriginalL'auteur VictorKilo
Ok désolé de le dire, mais ici, sur cette page https://ellislab.com/codeigniter/user-guide/general/cli.html
Ils ne mentionnent pas si le chemin d'accès racine du dossier où l'on place le codeigniter ou le dossier controllers. J'ai beaucoup cherché sur cette question. J'ai essayé différentes choses et puis j'ai trouvé que.
avant que l'ensemble de PHP pour vos variables d'environnement PATH
{Exécutez le fichier php dans windows CMD}
après le réglage des variables d'environnement PATH
vous obtiendrez
sur votre cmd écran.
OriginalL'auteur khalrd