Hi... This follows the previous pt #3 (after this section/msg...) As some of the list may know I'm trying to test a github repos ("https://github.com/thedevdojo/wave"). The goal is to have a digitalocean/instance, running Ubuntu/Apache2, to display the same basic app as in the "https://wave.devdojo.com/" demo site. The app requires php/laravel/composer/mysql/apache2 to run. I've gotten most of the "install" portion/steps completed, or at least not getting errs.. The process has two users testuser root The process is set to use Apache2 The test url is http://161.35.5.174 --- base url The http://161.35.5.174/wave isn't quite correct as it generates a list/index of files So I suspect I'm not correct regarding the VirtualHost file /etc/apache2/alias.conf rewrite process .htaccess file.. the Virtualhost wave.conf <VirtualHost *:80> ServerAdmin admin@xxxxxxxxxxx ServerName temp ServerAlias temp DocumentRoot /var/www/html/wave/wave/public <Directory /var/www/html/wave/wave/public/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Require all granted </Directory> LogLevel debug ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> testuser@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/wave/wave$ cat /etc/apache2/mods-available/alias.conf # Aliases: Add here as many aliases as you need (with no limit). The format is # Alias fakename realname # # Note that if you include a trailing / on fakename then the server will # require it to be present in the URL. So "/icons" isn't aliased in this # example, only "/icons/". If the fakename is slash-terminated, then the # realname must also be slash terminated, and if the fakename omits the # trailing slash, the realname must also omit it. # # We include the /icons/ alias for FancyIndexed directory listings. If # you do not use FancyIndexing, you may comment this out. Alias /icons/ "/usr/share/apache2/icons/" Alias /wave/ "/var/www/html/wave" #Alias /wave/ "/var/www/html/wave/public" <Directory "/usr/share/apache2/icons"> Options FollowSymlinks AllowOverride None Require all granted </Directory> At this point, I have no clue what to "correct", other than trial/error... Again, the droplet is a test digitalocean/ubuntu I can easily provide access if you're up to "taking a look" The droplet can be recreated in a few minutes.. The idea is to have a "subdir" for the "wave" test project. The files are located /var/www/html/wave --- top level github test wave proj https://github.com/thedevdojo/wave thanks -bruce =========================================================== =========================================================== laravel -- php -- more basic questions.. pt. #3 Hi... This follows the previous pt #2 (at bottom of this msg...) As some of the list may know I'm trying to test a github repos ("https://github.com/thedevdojo/wave"). The goal is to have a digitalocean/instance, running Ubuntu/Apache2, to display the same basic app as in the "https://wave.devdojo.com/" demo site. The app requires php/laravel/composer/mysql/apache2 to run. I have Laravel -- "composer update" issues in terms or user owner/group Owner - permissions settings. Not exactly sure what the settings should be for a given dir/file. I managed to resolve the issue of the "composer update" by changing/modifying the usergroup for "testuser" -- adding it to "www-data" Now, I'm running into issues with the php artisan cache:clear php artisan config:cache php artisan migrate Doctrine\DBAL\Driver\PDO\Exception SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: YES) which is odd.. as there's no "forge" in the ,env file for the mysql db testuser@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/wave/wave$ more wave.env APP_NAME=Wave APP_ENV=local APP_KEY=base64:8dQ7xw/kM9EYMV4cUkzKgET8jF4P0M0TOmmqN05RN2w= APP_DEBUG=false #APP_URL=http://wave.test APP_URL=http://161.35.5.174 LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=waveXX #DB_USERNAME=root #DB_PASSWORD= DB_USERNAME="wave_XX" DB_PASSWORD="waveXX" . . . I'm seeing a lot of different "solns/attacks" for handling this. But not a good soln I trust. Given this is laravel, any one with thoughts on this issue?? As far as I can tell, the larave/artisan process is somehow using "default" data... as opposed to the defined wave.env file thanks for any input.. -bruce Hi As some of the list may know I'm trying to test a github repos ("https://github.com/thedevdojo/wave"). The goal is to have a digitalocean/instance, running Ubuntu/Apache2, to display the same basic app as in the "https://wave.devdojo.com/" demo site. The app requires php/laravel/composer/mysql/apache2 to run. I have Laravel -- "composer update" issues in terms or user owner/group Owner - permissions settings. Not exactly sure what the settings should be for a given dir/file. Doing a trial/error process with checking out different sites. I set permissions to top level of dirs to 755 /var/www/html/wave /var/www/html/wave/wave set 755 -R /var/www/html/wave/wave/storage /var/www/html/wave/wave/bootstrap user:group -R www-data, www-data /var/www/html/wave ??? chmod -R ug+rwx storage chmod -R ug+rwx bootstrap/cache inside func link tt /var/www/html/wave/wave/storage/app/public set 755 -R --test..?? /var/www/html/wave/wave/public/storage chmod -R 755 /var/www/html/wave/wave/public/storage I have the users: root testuser the "testuser" is the user used to run the laravel "composer update" cmds... I'm presently getting an error: from "composer update" > @php artisan storage:link ErrorException symlink(): Permission denied at vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:340 336▕ */ 337▕ public function link($target, $link) 338▕ { 339▕ if (! windows_os()) { ➜ 340▕ return symlink($target, $link); 341▕ } 342▕ 343▕ $mode = $this->isDirectory($target) ? 'J' : 'H'; 344▕ +15 vendor frames 16 artisan:35 Illuminate\Foundation\Console\Kernel::handle() Script @php artisan storage:link handling the post-autoload-dump event returned with error code 1 the dir the cmd is being run from "/var/www/html/wave/wave" the dir tree is: testuser@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/wave/wave$ ls -al total 496 drwxrwxrwx 17 www-data www-data 4096 Nov 4 03:22 . drwxrwxrwx 9 www-data www-data 4096 Nov 4 03:16 .. drw-r-xr-x 2 www-data www-data 4096 Oct 31 17:17 .do -rw-r-xr-x 1 www-data www-data 1650 Oct 31 17:17 .dockerignore -rw-r-xr-x 1 www-data www-data 258 Oct 31 17:17 .editorconfig -rw-r-xr-x 1 www-data www-data 1085 Oct 31 17:17 .env.example drw-r-xr-x 8 www-data www-data 4096 Oct 31 17:17 .git -rw-r-xr-x 1 www-data www-data 152 Oct 31 17:17 .gitattributes drw-r-xr-x 3 www-data www-data 4096 Oct 31 17:17 .github -rw-r-xr-x 1 www-data www-data 337 Oct 31 17:17 .gitignore -rw-r-xr-x 1 www-data www-data 705 Oct 31 17:17 Dockerfile -rw-r-xr-x 1 www-data www-data 1069 Oct 31 17:17 LICENSE.md -rw-r-xr-x 1 www-data www-data 4822 Oct 31 17:17 README.md -rw-r-xr-x 1 www-data www-data 294 Oct 31 17:17 SECURITY.md drw-r-xr-x 7 www-data www-data 4096 Oct 31 17:17 app -rw-r-xr-x 1 www-data www-data 1686 Oct 31 17:17 artisan drwxrwxrwx 3 www-data www-data 4096 Oct 31 17:17 bootstrap -rw-r-xr-x 1 www-data www-data 302 Oct 31 17:17 buildDocker.sh -rw-r-xr-x 1 www-data www-data 2317 Oct 31 17:17 composer.json -rwxrwxrwx 1 www-data www-data 348410 Nov 4 03:22 composer.lock drw-r-xr-x 2 www-data www-data 4096 Oct 31 17:17 config drw-r-xr-x 4 www-data www-data 4096 Oct 31 17:17 database -rw-r-xr-x 1 www-data www-data 9865 Oct 31 17:17 deploy.json -rw-r-xr-x 1 www-data www-data 1675 Oct 31 17:17 docker-compose.yml drw-r-xr-x 17 www-data www-data 4096 Oct 31 17:17 lang -rw-r-xr-x 1 www-data www-data 152 Oct 31 17:17 package-lock.json -rw-r-xr-x 1 www-data www-data 42 Oct 31 17:17 package.json -rw-r-xr-x 1 www-data www-data 1160 Oct 31 17:17 phpunit.xml drw-r-xr-x 5 www-data www-data 4096 Oct 31 17:17 public drw-r-xr-x 3 www-data www-data 4096 Oct 31 17:17 resources drw-r-xr-x 2 www-data www-data 4096 Oct 31 17:17 routes drwxrwxrwx 6 www-data www-data 4096 Oct 31 17:17 storage drw-r-xr-x 7 www-data www-data 4096 Oct 31 17:17 tests drwxrwxr-x 50 testuser testuser 4096 Nov 4 03:22 vendor drw-r-xr-x 7 www-data www-data 4096 Oct 31 17:17 wave -rw-r-xr-x 1 www-data www-data 1159 Nov 2 23:12 wave.env in checking out the Filesystem.php 337▕ public function link($target, $link) 338▕ { 339▕ if (! windows_os()) { ➜ 340▕ return symlink($target, $link); 341▕ } 342▕ did a quick test of the Filesystem.php to see exactly what "target/link" dirs are, to try to better understand what might be the issues.. inside func link tt-- /var/www/html/wave/wave/wave/docs ll target -- /var/www/html/wave/wave/public/wave/docs so the "target" is basically the -->"/var/www/html/wave/wave/public" tree tested creating a -- root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/wave/wave# mkdir /var/www/html/wave/wave/public/storage "added storage.." root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/wave/wave# chown www-data:www-data -R /var/www/html/wave/wave/public/storage root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/wave/wave# chmod -R 775 /var/www/html/wave/wave/public/storage running the "composre update" now gives err ERROR The [public/storage] link already exists. inside func link tt /var/www/html/wave/wave/wave/docs ll /var/www/html/wave/wave/public/wave/docs ErrorException symlink(): Permission denied which says that "creating" a test "public/storage" dir with the chmod -R 775, chown -R www-data:www-data isn't the solution! so.. I'm not exactly sure what's the basic issue... Once I/the test gets through setting up/running the laravel/composer cmds, I'll do the migrate/db stuff.. and hopefully up will pop a test page! I'm at a complete/current loss as to what's causing the expected user/permission errors.... If anyone has any thoughts/pointers, I'm more than willing to try them. If someone is really bored and wants to ump on the cloud/instance, I can easily give you access! Given this is a cheap instance, it can be blown away/reinstalled in a few minutes! thanks -bruce