问题
I'm attempting to get a CakePHP 3 app setup on a shared hosting solution provided by Bluehost. When I attempt to bin/cake bake
from a console (or any cake commands, really) I get the following output:
################################################################################
#
# Bake is a shell script for running CakePHP bake script
#
# CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
# Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
#
# Licensed under The MIT License
# For full copyright and license information, please see the LICENSE.txt
# Redistributions of files must retain the above copyright notice.
#
# @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
# @link http://cakephp.org CakePHP(tm) Project
# @since 1.2.0
# @license http://www.opensource.org/licenses/mit-license.php MIT License
#
################################################################################
# Canonicalize by following every symlink of the given name recursively
canonicalize() {
NAME="$1"
if [ -f "$NAME" ]
then
DIR=$(dirname -- "$NAME")
NAME=$(cd -P "$DIR" > /dev/null && pwd -P)/$(basename -- "$NAME")
fi
while [ -h "$NAME" ]; do
DIR=$(dirname -- "$NAME")
SYM=$(readlink "$NAME")
NAME=$(cd "$DIR" > /dev/null && cd $(dirname -- "$SYM") > /dev/null && pwd)/$(basename -- "$SYM")
done
echo "$NAME"
}
CONSOLE=$(dirname -- "$(canonicalize "$0")")
APP=$(dirname "$CONSOLE")
exec php "$CONSOLE"/cake.php "$@"
exit
My folder structure is currently set as :
/public_html
/app
/cakestuff
Generated with the code:
php composer.phar create-project --prefer-dist cakephp/app app
I've also attempted to set up the app outside of public_html, but I have no idea where to look for other potential issues.
It looks like my cake commands aren't actually being run.
回答1:
I had same problem on Hostmonster server, which is same or similar to Bluehost. The following appears to work:
php-cli bin/cake.php bake
This is same as suggestion from Arak Tai'Roth above, but with "php-cli".
回答2:
php bin/cake.php bake
This works for me on Windows.
回答3:
I finally got this resolved, posting an answer to help future users.
The issues are indeed with Bluehost, but I imagine you would have similar issues on any shared hosting that attempts to sanitize your CLI inputs. THere were couple of steps, but overall it wasn't that painful.
- Ensure you have a php.ini in which
register_argv_argc
has been set to On. Create the app using
php composer.phar create-project --prefer-dist cakephp/app [app name]
In the newly created [app name] folder, you need to edit your bin/cake command directly,you need to change line 39
from: exec php "$CONSOLE"/cake.php "$@"
to: exec php-cli -c /path/to/your/php.ini "$CONSOLE"/cake.php "$@"
回答4:
For godaddy shared hosting follow step as
1.First check your bin/cake file.If it contains only one exec command as this
exec php "$CONSOLE"/cake.php "$@"
then replace the file content with this Fix mistake in cake shell script
2.Goto host Cron Job page and use command
/usr/bin/php-cli /home/yourusername/public_html/path/to/your/bin/cake.php yourfilename
回答5:
I had this same issue and the above answers didn't help. I didn't change any of the cake files. I just followed the following instructions to get it to work.
1.) Add this line to .bashrc:
alias php-cli="/ramdisk/php/54/bin/php54-cli"
2.) cd to your cakephp app
3.) use this command to use the bake console:
php-cli bin/cake.php bake all <your table name here>
来源:https://stackoverflow.com/questions/30968964/cakephp-3-on-bluehost-console-commands-do-not-function