Any update on SuiteCRM 8 - Q & A
still facing this issue.
404 GraphQL call error
Related posts
As raised on the following post:
Related github issues
- https://github.com/salesagility/SuiteCRM-Core/issues/4
- https://github.com/salesagility/SuiteCRM-Core/issues/1
Errors
If you are getting an 404
when calling /api/graphql
, like:
Possible root cause
The 404 here suggests that you may not have your webserver configured to allow re-writes.
Debugging the problem
To make sure that the problem is indeed related with mod_rewrite
You can double check if this is a re-write problem by doing a request to: https://<your_host>/index.php/api/graphql
. If you get an error message similar to the following and not a 404
it means its a problem with the rewrite.
Solution
Please check that you have mod_rewrite
enabled in apache. Also check that your server is configured to allow re-writes for your page with a configuration similar to this:
<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/project/public
<Directory /var/www/project/public>
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
Hi @cherub-chum,
Thank you for the update.
Last week we’ve updated the Development Install Guide, have you had the chance to go through it?
overall you be using the commands configured in package.json
instead of directly using ng build
yarn run build-dev:common
yarn run build-dev:core
yarn run build-dev:shell
The above commands then call ng build
.
The reason for having to use yarn is that yarn supports webpack 5
, while npm
doesn’t yet.
And webpack 5
allows us to use Module Federation, which is the base for the frontend extension framework.
Please let me know if the above guide works of if you still have issues.
Legacy rewrite internal server error
Related posts
As raised on the following post:
Errors
From the post mentioned above:
Possible root cause
Misconfiguration in the legacy .htaccess
This can happen if the the site url provided during the install is not the correct one.
Debugging the problem
Check the .htaccess
file under /your/crm/path/public/legacy
.
Your RewriteBase
should have something like /public/legacy
. Check the following excerpt.
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
Options -Indexes
Options -MultiViews
RewriteEngine On
RewriteBase /public/legacy
Solution
Note:
Please check the if you have mod_rewrite
configured. The following thread may help SuiteCRM 8 Beta - Install Questions - #3 by clemente.raposo
Solution 1
Try updating RewriteBase
to /public/legacy
Please also make sure that the site_url
on /<your-crm>/public/legacy/config.php
is correct. It should be pointing to your legacy path, something like: https://<your-host>/public/legacy
Note: Please note that if your vhost
is not directly pointing to /<your-crm>/public
and you have SuiteCRM installed on a sub-folder like https://<your-host>/suite-8/public
you will need to add something like /suite-8/public/legacy
to RewriteBase
. And something like https://<your-host>/suite-8/public/legacy
to site_url
on config.php
Solution 2
Try re-installing. When running the ./bin/console suitecrm:app:install
command, please make sure that the url provided points to your SuiteCRM 8
main path:
-
if you have your
vhost
pointing to/<your-crm-path>/public
the site url should be something likehttps://yourhost/
-
if you have your
vhost
just pointing to/<your-crm-path>/
the site url should be something likehttps://yourhost/public
. Note: Ideally you should not use this option, as only the files onpublic
should publicly available.
yarn install ECONNREFUSED
Note
This should only apply when trying to do the developer environment install (i.e. installing from the repo)
Related posts
As raised on the following post:
Errors
From the post mentioned above:
Possible root cause
Note: this error should only happen if you are trying to setup SuiteCRM
from the repo, instead of using the packed zip.
Outdated version on yarn.lock
on the current repo code.
This may happen on the currently published yarn.lock
. It will be updated and published soon.
Temporary Solution
Note: This solution should only be applied while the yarn.lock
is not updated
- Delete the
yarn.lock
and runyarn install
- Then go through the remaining steps on the development-install-guide
In Step 4 of installation, Running the Command from public/legacy
path, it throws error as it would not find the library, Even after running composer update
in root folder several times.
-bash: ./vendor/bin/pscss: No such file or directory
Here are the contents of vendor in root.
Hello everyone, I install suite8 according to the instructions
https://docs.suitecrm.com/8.x/developer/development-install-guide/.
But I already did it.
Hi @cherub-chum,
Thank you for the feedback once again.
From the error I imagine you’ve executed composer install
with --no-dev
on the legacy folder, right?
To run the ./vendor/bin/pscss
you need to run just with composer install
, as the pscss
is a dev dependency.
Please try running composer install
on the legacy folder (under public/legacy
) and after that re-running the pscss
command also under public/legacy
.
Please let me know if you still have issues after that.
Also, I think that the reference to composer install --no-dev
in the developer guide, may be misleading.
I’ve added a PR for removing that from the documentation and to add a note explaining that pscss
was added as dev dependency
Hi @palach,
Thanks for for trying out SuiteCRM 8 and for your feedback.
In order to be able to help, just wanted to ask:
Are you installing from the repo? or from the package zip?
Have you run composer install
on the Suite 8 folder and on the legacy folder (under public/legacy
)?
Hello @clemente.raposo
Yes that was the issue, i was using --no-dev
for install.
Moving forward in step 11 for ./bin/console suitecrm:app:install
i get
Already installed. Stopping
Is that due to repo checkout ?
For Step 12, reset permission, those are still on <Root>/public/legacy
folder ?
Hi @cherub-chum,
Regarding the comments above:
When running the install command, and for the moment, it does a very simple check to try to understand if the system was already configured. It checks for the .env.local
file. (we are going to improve this soon).
So your are getting the above message probably because of a previous attempt to run the install. Just remove the .env.local
/ .env.local.php
and try again. Also, please make sure you have a clean db, before running the install, as the install adds the needed tables.
Please run them on the Suite 8 root folder (not on public/legacy
) , to make sure everything gets the right permissions.
Please let me know if you still have issues after trying the above.
Is there any install log for the process?
I am using socket on my Localhost MAMP installation, which might be an issue since the Suite App Install only asks for username/password and the URL.
Hi @cherub-chum,
yes that is a good point, regarding the socket, which kind of configuration do you usually use when setting up Suite 7?
Regarding the log. Please check on public/legacy/suitecrm.log
.
The install command after adding the Suite 8 side configuration, calls the silent install on legacy. Legacy is handling the bulk of the install process and it should log to suitecrm.log, if I’m not mistaken.
Hi @cherub-chum,
@Matt reminded me that there should also be an public/legacy/install.log
.
Thanks @Matt
public/legacy/suitecrm.log has
Could not connect to DB server localhost as root. port : No such file or directory
And the db is empty no Tables created.
Suite7 Config has no Port or Socket mentioned that i checked.
Thanks I mack composer install in public/legacy
and suiteCRM8 installed success.
Hi Guys,
I am trying to install v8 on Ubuntu v20.10 server but during the installation process I get the message:
‘Attempted to call function "mysql_connect’ from the global namespaces.’
My configuration:
Apache 2.4
PHP 7.4 and 8
mySQL 8 .0.23
Is the function ‘mysql_connect’ not from old php versions ? Where did it get here ?
Thanks for help.
sla
Hi @sla,
Welcome to the community and thank you for trying out Suite 8.
Also, sorry for the delay in replying, we are on a quite busy period at the moment.
Regarding the above question, Suite 8, at the moment still relies on Suite 7 for many things.
More details
just a bit of context:
For several reasons among them backwards compatibility reasons, Suite 8 still relies for a good part of the backend on the Suite 7. Suite 8 “contains” an Suite7 within it on the public/legacy
folder and it uses a concept called “Legacy Handlers” to call suite 7 for whatever it needs.
Though the only place I see we are using the mysql_connect
is in public/legacy/include/database/MysqlManager.php
. Though preferably we should be using MysqliManager
instead.
Do you have mysqli
php module installed?
More details
The code on legacy is doing the following:
public/legacy/include/database/DBManagerFactory.php
if (empty($config['db_manager'])) {
// standard types
switch ($type) {
case "mysql":
if (empty($sugar_config['mysqli_disabled']) && function_exists('mysqli_connect')) {
$my_db_manager = 'MysqliManager';
} else {
$my_db_manager = "MysqlManager";
}
break;
Finally, thank you for bringing this up.
@Mac-Rae we need to add the list of required php modules to the Suite 8 documentation - Compatibility matrix
@Matt FYI. Probably something we need to look at, though I think we need to drop support for MysqlManager
on php 8
Hi @cherub-chum,
Could you try with a connection without using the socket to check if it works, please?
We need to look into configuration for socket connection.