LinkStackOrg / LinkStack

LinkStack - the ultimate solution for creating a personalized & professional profile page. Showcase all your important links in one place, forget the limitation of one link on social media. Set up your personal site on your own server with just a few clicks.
https://linkstack.org
GNU Affero General Public License v3.0
2.38k stars 240 forks source link

Error 500 after install #403

Closed tigexplorer closed 1 year ago

tigexplorer commented 1 year ago

Platform: Ubuntu 22.04 LTS Server type: Apache2 ... PHP version: 8.1

HI, I've put the contents of littlelink-custom in my webserver dir /var/www/sub.mydomain.xyz/public_html,

have then changed the owner to chown -R www-data:www-data /var/www/sub.mydomain.xyz/public_html and gave write perm chmod -R g+rw /var/www/sub.mydomain.xyz/public_html

I get the Server Errror 500 but no error in the apache error log.

What's my mistake here?

In the first place, I've forgotten to set the owner to www-data and write perms and got this: Permission denied in /var/www/sub.mydomain.xyz/public_html/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php But now, no error is logged.

tilllt commented 1 year ago

Yeah, same issue, Error 500 after installing the docker container with default settings, no way to debug when raising log level. I think the current Docker setup is broken, too bad.

JulianPrieber commented 1 year ago

Please turn on debugging in your .env config file.

Code_bbWVVcL0vv

You might be able to find an error code inside: /storage/logs/laravel.log

tigexplorer commented 1 year ago

Ahh, with sshfs the hidden files wasn't copied...

But now, I get this by the first call:

Illuminate \ Database \ QueryException
PHP 8.1.2-1ubuntu2.11
9.52.5
could not find driver ```
PRAGMA foreign_keys = ON;
JulianPrieber commented 1 year ago

Are you using MySQL?

tigexplorer commented 1 year ago

On the system, yes, but for now, I don't have set any options on LittleLink, according due the docs...

JulianPrieber commented 1 year ago

Could you share the stack trace of the error?

tigexplorer commented 1 year ago

I hope, this is what you want:

[resources / views / installer / installer.blade.php : 10](phpstorm://open?file=%2Fvar%2Fwww%2Fsub.mydomain.xyz%2Fpublic_html%2Fresources%2Fviews%2Finstaller%2Finstaller.blade.php&line=10)

curl "https:/sub.mydomain.xyz/" \ -X GET \ -H 'host: sub.mydomain.xyz' \ -H 'user-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0' \ -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' \ -H 'accept-language: de,en-US;q=0.7,en;q=0.3' \ -H 'accept-encoding: gzip, deflate, br' \ -H 'dnt: 1' \ -H 'connection: keep-alive' \ -H 'cookie: XSRF-TOKEN=eyJpdiI6IjIxa2pXNW9vWHZUT1YzeVZpNllLVGc9PSIsInZhbHVlIjoiRGhMOHZTL2w0ZHlwU1YzQ3VkYzYvZnBSR3pxRUlHeE00aVBxMU1yN1FCTmlWT29CdHJXcjd2c2VWM005bHZ5T3lXRE1vbzBrejZqWVBPQ2hCRzliZFNGSFlOTFdYY29OQS9LWWw2c0I3V3hUdnpPVjNKUlNxTEEzb04yVDRWUCsiLCJtYWMiOiIxNWE2OTc3Y2I1YWU4NTU4NGY4Y2U2ODFmOWJkYjgwMDhlMzEwMjI0NWQ1ZTMzMTE4NjkzZGZiM2Q2OTBiZGNlIiwidGFnIjoiIn0%3D; littlelink_custom_session=eyJpdiI6ImpDWWZ2eWJZTTBjakFOeGt3dUlnWnc9PSIsInZhbHVlIjoiRnBXaGUxcUpRYjdkYmFOelJiVUp1cUdscmhuODA4NFBVVVYrZVBybWdDUnp0amg4dVN4SW5lTkxwQmVTamxaZXJuR3hqWTV3MzJFeG9zUW1jRWhlcURUY1ZPOWxqbWRCalBtMXZOWnpLVDhXQ1RINjM1T3AvNGRSM0xZMXRneDUiLCJtYWMiOiJhZDA4Mzg0MGVlNWIyMjQyOWE4ZTgxYjJhMGIxNThhOTNmZmZiMTRiNDU4ZWZmYWYxYTMzNjZkYWFhMGZiYTA3IiwidGFnIjoiIn0%3D' \ -H 'upgrade-insecure-requests: 1' \ -H 'sec-fetch-dest: document' \ -H 'sec-fetch-mode: navigate' \ -H 'sec-fetch-site: none' \ -H 'sec-fetch-user: ?1';

JulianPrieber commented 1 year ago

When you get the error screen, there should be a share button somewhere. Please click that and share the error.

Then you get a link like this that you can post here: https://flareapp.io/share/W7zRk3k7#F55

tigexplorer commented 1 year ago

https://flareapp.io/share/oPRN1noP#F64

JulianPrieber commented 1 year ago

I'm not sure what's causing this. This could be caused by a missing PHP dependency, but the installer should flag that before running.

I think your best bet is to wipe everything clean and start new with a fresh installation. Make sure to set the correct file permissions before running the installation process.

tigexplorer commented 1 year ago

On a other VM, I've installed like this

curl -O -L https://github.com/JulianPrieber/littlelink-custom/releases/latest/download/littlelink-custom.zip
unzip littlelink-custom.zip
mv littlelink-custom /var/www/mydomain.xy/public_html/
sudo chown -R www-data:www-data /var/www/mydomain.xy/public_html/littlelink-custom/
sudo chmod -R g+rw /var/www/mydomain.xy/public_html/littlelink-custom/

and get the same error on first run https://mydomain.xy/littlelink-custom/

JulianPrieber commented 1 year ago

yeah that wont work

JulianPrieber commented 1 year ago

If you pull the app from source, you'll have to compile it first. For that you need composer.

JulianPrieber commented 1 year ago

curl -O -L https://github.com/JulianPrieber/littlelink-custom/releases/latest/download/littlelink-custom.zip

Does this actually pull the latest release?

tigexplorer commented 1 year ago

I've taken the url from the download button on this site: https://github.com/JulianPrieber/littlelink-custom/releases/tag/v3.6.0

JulianPrieber commented 1 year ago

I've taken the url from the download button on this site: https://github.com/JulianPrieber/littlelink-custom/releases/tag/v3.6.0

Right. I had some issues in the past with GitHub's backend to get the actual release file. I just tried running the thing and the release seems to be correct.

tigexplorer commented 1 year ago

The dir list is as follows:

drwxrwxr-x  9 www-data  www-data    4096 Apr 11 18:46 app
-rw-rw-r--  1 www-data  www-data    1739 Apr 11 18:46 artisan
drwxr-xr-x  2 www-data  www-data    4096 Apr 21 18:21 backups
drwxrwxr-x  3 www-data  www-data    4096 Apr 11 18:46 bootstrap
-rw-rw-r--  1 www-data  www-data    5414 Apr 11 18:46 CODE_OF_CONDUCT.md
-rw-rw-r--  1 www-data  www-data    2340 Apr 11 18:46 composer.json
-rw-rw-r--  1 www-data  www-data  387248 Apr 11 18:46 composer.lock
drwxrwxr-x  2 www-data  www-data    4096 Apr 21 18:21 config
-rw-rw-r--  1 www-data  www-data    2820 Apr 11 18:46 CONTRIBUTING.md
drwxrwxr-x  2 www-data  www-data    4096 Apr 11 18:46 css
drwxrwxr-x  5 www-data  www-data    4096 Apr 11 18:46 database
-rw-rw-r--  1 www-data  www-data     235 Apr 11 18:46 .editorconfig
-rw-rw-r--  1 www-data  www-data    4979 Apr 21 18:21 .env
-rw-rw-r--  1 www-data  www-data     860 Apr 11 18:46 .env.example
-rw-rw-r--  1 www-data  www-data     116 Apr 11 18:46 .gitattributes
-rw-rw-r--  1 www-data  www-data     246 Apr 11 18:46 .gitignore
-rw-rw-r--  1 www-data  www-data     874 Apr 11 18:46 .htaccess
drwxrwxr-x  3 www-data  www-data    4096 Apr 11 18:46 img
-rw-rw-r--  1 www-data  www-data    2435 Apr 11 18:46 index.php
-rw-rw-r--  1 www-data  www-data       0 Apr 11 18:46 INSTALLING
drwxrwxr-x  2 www-data  www-data    4096 Apr 11 18:46 js
-rw-rw-r--  1 www-data  www-data   42696 Apr 11 18:46 LICENSE
drwxrwxr-x  7 www-data  www-data    4096 Apr 11 18:46 littlelink
-rw-rw-r--  1 www-data  www-data      75 Apr 11 18:46 mix-manifest.json
-rw-rw-r--  1 www-data  www-data     671 Apr 11 18:46 package.json
-rw-rw-r--  1 www-data  www-data  765393 Apr 11 18:46 package-lock.json
-rw-rw-r--  1 www-data  www-data    1233 Apr 11 18:46 phpunit.xml
drwxrwxr-x  7 www-data  www-data    4096 Apr 11 18:46 resources
drwxrwxr-x  2 www-data  www-data    4096 Apr 11 18:46 routes
-rw-rw-r--  1 www-data  www-data     890 Apr 11 18:46 SECURITY.md
-rw-rw-r--  1 www-data  www-data     566 Apr 11 18:46 server.php
drwxrwxr-x  7 www-data  www-data    4096 Apr 11 18:46 storage
drwxrwxr-x  9 www-data  www-data    4096 Apr 11 18:46 studio
-rw-rw-r--  1 www-data  www-data     194 Apr 11 18:46 .styleci.yml
-rw-rw-r--  1 www-data  www-data     598 Apr 11 18:46 tailwind.config.js
drwxrwxr-x  6 www-data  www-data    4096 Apr 11 18:46 themes
drwxrwxr-x 51 www-data  www-data    4096 Apr 11 18:46 vendor
-rw-rw-r--  1 www-data  www-data       7 Apr 11 18:45 version.json
-rw-rw-r--  1 www-data  www-data    1211 Apr 11 18:46 web.config
-rw-rw-r--  1 www-data  www-data     631 Apr 11 18:46 webpack.mix.js
JulianPrieber commented 1 year ago

This is what the docker image does to get the thing to run without issues.

COPY littlelink-custom /htdocs
RUN chown -R apache:apache /htdocs
RUN find /htdocs -type d -print0 | xargs -0 chmod 0755
RUN find /htdocs -type f -print0 | xargs -0 chmod 0644
tilllt commented 1 year ago

If you pull the app from source, you'll have to compile it first. For that you need composer.

I used the docker-compose.yml mentioned here https://github.com/JulianPrieber/llc-docker,

using default values, it ends up in Error 500 as well. Also, i dont see an .env file in the docker-installation, where is that supposed to be populated from?

tigexplorer commented 1 year ago

I got the same error after:

sudo find /var/www/mydom.xy/public_html/littlelink-custom/ -type d -print0 | sudo xargs -0 chmod 0755
sudo find /var/www/mydom.xy/public_html/littlelink-custom/ -type f -print0 | sudo xargs -0 chmod 0644
JulianPrieber commented 1 year ago

Also, i dont see an .env file in the docker-installation, where is that supposed to be populated from?

From release/source.

I wouldn't really recommend using the docker compose. If you can in any way use commands, use commands to set it up. Otherwise, you can easily do the same with portainer if you have that setup.

tilllt commented 1 year ago

Also, i dont see an .env file in the docker-installation, where is that supposed to be populated from?

From release/source.

  • Are you setting up the thing as a web instance or in docker?
  • Are you using SQLite for your installation attempts?

I wouldn't really recommend using the docker compose. If you can in any way use commands, use commands to set it up. Otherwise, you can easily do the same with portainer if you have that setup.

I am running all my containers from composer stacks so I'd prefer that way. Are you saying the example docker-compose.yml you provide does not work?

JulianPrieber commented 1 year ago

Are you saying the example docker-compose.yml you provide does not work?

It does work, but apparently not very well. I didn't write it, someone in the community did. I don't really have much experience writing such files, so my ability to improve or troubleshoot this is fairly limited.

The docker compose file utilizes an alternative method of achieving file persistence which is less storage heavy but has pretty significant flaws.

If I have to set up a docker image, I just run these two commands:

docker volume create llc
docker run --detach --name littlelink-custom --publish 8800:80 --publish 8801:443 --restart unless-stopped --mount source=llc,target=/htdocs julianprieber/littlelink-custom
tilllt commented 1 year ago

Are you saying the example docker-compose.yml you provide does not work?

It does work, but apparently not very well. I didn't write it, someone in the community did. I don't really have much experience writing such files, so my ability to improve or troubleshoot this is fairly limited.

The docker compose file utilizes an alternative method of achieving file persistence which is less storage heavy but has pretty significant flaws.

If I have to set up a docker image, I just run these two commands:

docker volume create llc
docker run --detach --name littlelink-custom --publish 8800:80 --publish 8801:443 --restart unless-stopped --mount source=llc,target=/htdocs julianprieber/littlelink-custom

Ok thanks I will try that

tigexplorer commented 1 year ago

It works! I had to manual install sqllite. Maybe, in the future, it can be checked by the install process?

tilllt commented 1 year ago

What do you mean "install SQLite" , install the PHP SQLite extensión?

tigexplorer commented 1 year ago

What do you mean "install SQLite" , install the PHP SQLite extensión?

Yes, this does the trick for me sudo apt install php8.1-sqlite3 and then restart/ reload apache

JulianPrieber commented 1 year ago

Maybe, in the future, it can be checked by the install process?

I'll look into it. Glad it works now.