I'm trying to move my cake core folder and app folders outside of my web root directory. Everything works fine when I place all my files in the "web" directory but when I move them outside of this directory I can't access them using the absolute paths to where I want these directories located. In cakephp you can edit these settings in the config file to do what I want and they work on my my local machine and on another server not running ispconfig. Am I getting the paths wrong or is there permissions issues resulting from ispconfig. Any help would be great because leaving all these folders in the web root directory is not ideal. from cakephp's index.php file in web root. Code: /** * These defines should only be edited if you have cake installed in * a directory layout other than the way it is distributed. * When using custom settings be sure to use the DS and do not add a trailing DS. */ /** * The full path to the directory which holds "app", WITHOUT a trailing DS. * */ if (!defined('ROOT')) { define('ROOT', DS . 'var' . DS . 'www' . DS . 'clients' . DS . 'client0' . DS . 'web5'); } /** * The actual directory name for the "app". * */ if (!defined('APP_DIR')) { define('APP_DIR', 'app'); } /** * The absolute path to the "cake" directory, WITHOUT a trailing DS. * */ if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', DS . 'var' . DS . 'www' . DS . 'clients' . DS . 'client0' . DS . 'web5'); }
PHP files are only allowed in the web folder for security reasons. If you want to have files outside of the web dir, then you have to add the path that you want to use to the open basedir path on the options tab of the website settings.
I ended up just adding Code: DocumentRoot /var/www/clients/client0/web5/web/app/webroot to my Apache directives settings under the websites options tab. Seems to work fine and now my app and cake core directories are inside the /web directory so they're accessible to php and outside the document root directory. Although now document root is declared twice but I don't know if that is going to be a problem at all...
Thats hosuld not be a problem as declarations that come later in the file simply override the first one. But you will not ba eable to access statistics anymore. Adding your path to the open_basedir will be the cleaner solution.
It appears that the open_basedir text box only allows so many characters. Is there another place I can input this information for longer file paths that may not fit here or can I remove subdirectories like ./domain.com/web and just have ./domain.com here
Install the 3.0.3.1 RC1, the field has been extended there. But I really dont know how you could have reached the limit in the current ispconfig 3.0.3 as it is already 64 000 chars.
I'm curious why you need to make any changes at all. I have cakephp sites running and didn't make any changes at all. Using the standard cake layout of web/app/webroot/ with the .htaccess handling the redirect. <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
It's true you can just plop the whole thing in the web directory but for a production site you should remove both your app and cake core directories from your document root and you can tell your application where you've placed directories in the index.php file located in your webroot. I also like to have one cake core directory serving multiple applications as well.
I'm trying to run cakephp with ispconfig but with no success. Right now I have two problems. I'm getting a 500 Internal server error when using the .htaccess that Turbanator mentioned. I was able to make it work setting a different DocumentRoot. I was writing this and then i tested again. DocumentRoot works for the front page but everything else seems to get a 404. And my database server is refusing external connections. (I have a separate mysql server). Is there a way to make ISPConfig make the mysql accept connections from the web server by default?
Did you check Apache's error log? Does MySQL listen on all interfaces? What's the output of Code: netstat -tap | grep mysql ?
I've solved the configuration problem. I'm not really sure of what happened but i've made it to work without adding the DocumentRoot. Code: tcp 0 0 *:mysql *:* LISTEN 11912/mysqld
I believe I was not clear. I've solved the apache configuration problem. I believe that mysql users still need to be manually allowed get access from another server.
I have a separate server for MySQL and the databases i create in ispconfig cant be acessed from the webserver ( which is another machine ) Is there a problem in my configuration or ISPConfig does not handle proper configuration of user access in mysql databases that are located in a different server?
Can you check the mysql.user table on the separate MySQL server and check if the Host column holds the correct hosts that are allowed to connect? Also, is MySQL listening on all interfaces? You can check that with Code: netstat -tap | grep mysql
The funny thing is that i've added both ip's from the webserver when i was adding the mysql user. Even doing this it didn't work. It only worked when i added a wildcard( '%' ) as the host. Code: tcp 0 0 *:mysql *:* LISTEN 11912/mysqld tcp 0 0 db.domain.com:60468 web.domain.com:mysql TIME_WAIT -
Maybe you should have used hostnames instead of IP addresses. That might be the problem. But it's good to hear that you at least got it going with wildcards.