Virtual Machine

This method involves running a virtual server. A web server inside the virtual server runs with full permissions. A development image is availible upon request. You will need to use Microsoft's Virtual PC 2004.

Mount the development image, log into the web server using the root password of '123456'.

Getting to the Machine

The machine's name is wwwawa, this may appear on your network through the nmbd that the server runs. Try opening a browser once the virtual machine is running to http://wwwawa/. If you get the AW home page then you've got it! Otherwise… When you are logged in you can see the virtual machine's address with

$ ifconfig

It will produce output like this:

eth0    Link encap:Ethernet  HWaddr 00:03:FF:07:90:C6
        inet addr:192.168.147.103  Bcast:192.168.147.255  Mask:255.255.255.0
        inet6 addr: fe80::203:ffff:fe07:90c6/64 Scope:Link
        ...

In this case the IP address is 192.168.147.103. This is your web server's IP. You can open a browser to that address, administer the database on that end, or whatever other manipulations you care to do.

Finding the Code

The default html directory is /var/www/www and the code directory is /var/www/code. After bringin up the server you should checkout the latest version of the source with subversion (installed already on the VM).

The source can be modified in the apache root directory /var/www/ and tested on the local machine with a standard web browser.

Samba is set up on the virtual machine and you can browse to /var/www root using file sharing. Try, (say in this .103 IP case) \\192.168.147.103\web (or maybe \\wwwawa\web\ if that works). Use root and 123456 as your login.

Editing the Source

You can use eclipse and PHP eclipse to do the editing outside the web environment by mounting the root drive through samba via the share \\machine\\web\ and logging on as root. Obviously, machine referrs to the name or IP address of your virtual machine.

Permissions

The VM runs apache as the “apache” user. As such, you may need to reset the permissions for apache when changing VM files or updating from subversion.

$ cd /var/www
$ chmod apache.apache * -R 
Join AW and support river stewardship nationwide!
7.4.3PHP Version527msRequest Duration7MBMemory UsageGET content/{url}Route
    • Booting (30.78ms)
    • Application (497ms)
    • 1 x Application (94.16%)
      497ms
      1 x Booting (5.84%)
      30.78ms
      14 templates were rendered
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • app::layout.gadget (resources/views/layout/gadget.blade.php)2blade
        Params
        0
        contents
        1
        formRenderService
      • layout.columnstyle.one (resources/views/layout/columnstyle/one.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.columnstyle.componentstack (resources/views/layout/columnstyle/componentstack.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        stack
        8
        component
      • layout.main (resources/views/layout/main.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._headers (resources/views/layout/_headers.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.header (resources/views/layout/header.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._scripts (resources/views/layout/_scripts.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.navigation (resources/views/layout/navigation.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • includes.alert.membership (resources/views/includes/alert/membership.blade.php)17blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
        15
        shouldNotifyUser
        16
        user
      • navigation.menu.static (resources/views/navigation/menu/static.blade.php)15blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
      • includes.footer (resources/views/includes/footer.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • layout.pagemap (resources/views/layout/pagemap.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      uri
      GET content/{url}
      middleware
      web
      controller
      App\Http\Controllers\Wh2oController@content
      namespace
      App\Http\Controllers
      where
      as
      generated::7S3RnBZOjVwYvccb
      file
      app/Http/Controllers/Wh2oController.php:34-68
      8 statements were executed, 4 of which were duplicated, 4 unique3.8ms
      • select * from security where domain in ('ScriptLibraryGadget') and area is null;
        140μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('ArticleGadget') and area is null;
        198μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        580μs/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        350μs/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        430μs/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        810μs/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from security where domain in ('WelcomeGadget') and area is null;
        753μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('NewsGadget') and area is null;
        543μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
          _token
          AlPjWhpFzKiJk4toXgukAOGGG0frz1ZKeVRlovs4
          page
          array:1 [ "count" => -1 ]
          PHPDEBUGBAR_STACK_DATA
          []
          path_info
          /content/Wiki/developer:setup_a_virtual_machine
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:15 [ "priority" => array:1 [ 0 => "u=0, i" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "host" => array:1 [ 0 => "beta.americanwhitewater.org" ] ]
          request_server
          0 of 0
          array:42 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_PRIORITY" => "u=0, i" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_HOST" => "beta.americanwhitewater.org" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "beta.americanwhitewater.org" "SERVER_PORT" => "443" "SERVER_ADDR" => "172.31.18.125" "REMOTE_PORT" => "47520" "REMOTE_ADDR" => "18.117.85.183" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => true "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/opt/americanwhitewater.org/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/content/Wiki/developer:setup_a_virtual_machine" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "PHP_VALUE" => "post_max_size=20M" "SCRIPT_FILENAME" => "/opt/americanwhitewater.org/public/index.php" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744834534.4931 "REQUEST_TIME" => 1744834534 ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 16 Apr 2025 20:15:34 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkJzSG9NakNSUEpMTGxnYjc3U2lickE9PSIsInZhbHVlIjoiZUdXM3pLZ0ROVERFbnh4TGRFeUg0SFRnUWJ4b1hPanBtN2RZWjRwZGhYd3BYeHlWWjREa2NZelZPY3JoOHcrSEE2MDJ2Z3FHTkZETG9DcXlJTGl5akNJMzFLazk4b1JqVFRSc1pLMy9nZ1o2ei8zZGFUMWYxV2lFVElDS1pIdDQiLCJtYWMiOiI1MmIzNTFlZGRjMGUyMWVmYmQwOTFmNDIyNmE4ZDA3NWVjYzY1M2ViMTE1YTBkMzA0MGQxNWRkZjZkYWMxZWQzIn0%3D; expires=Wed, 16-Apr-2025 22:15:35 GMT; Max-Age=7200; path=/XSRF-TOKEN=eyJpdiI6IkJzSG9NakNSUEpMTGxnYjc3U2lickE9PSIsInZhbHVlIjoiZUdXM3pLZ0ROVERFbnh4TGRFeUg0SFRnUWJ4b1hPanBtN2RZWjRwZGhYd3BYeHlWWjREa2NZelZPY3JoOHcrSEE2MDJ2Z" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjNSM2tHVGRhQ2lEWVdXYlN5WEF3alE9PSIsInZhbHVlIjoiU0VVdjdUdVZYbFZSUVRiK2pXUThScHdUNk9Gdkd4OU9CQytieDRHWEw4OGhDNmJHbXBKSXJqQ3NhVE1QRm1uTSIsIm1hYyI6IjFjMGFiOWI2NTIxOGYzOTM0YzYyNTdiNWFlNTg2N2U2YmY4Y2QxZmRjMjc1OGI4NWFhODdlOTQwNzBiMjA3ZjAifQ%3D%3D; expires=Wed, 16-Apr-2025 20:14:34 GMT; Max-Age=0; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjNSM2tHVGRhQ2lEWVdXYlN5WEF3alE9PSIsInZhbHVlIjoiU0VVdjdUdVZYbFZSUVRiK2pXUThScHdUNk9Gdkd4OU9CQytieDRHWEw4OGhDNmJHbXBKS" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkJzSG9NakNSUEpMTGxnYjc3U2lickE9PSIsInZhbHVlIjoiZUdXM3pLZ0ROVERFbnh4TGRFeUg0SFRnUWJ4b1hPanBtN2RZWjRwZGhYd3BYeHlWWjREa2NZelZPY3JoOHcrSEE2MDJ2Z3FHTkZETG9DcXlJTGl5akNJMzFLazk4b1JqVFRSc1pLMy9nZ1o2ei8zZGFUMWYxV2lFVElDS1pIdDQiLCJtYWMiOiI1MmIzNTFlZGRjMGUyMWVmYmQwOTFmNDIyNmE4ZDA3NWVjYzY1M2ViMTE1YTBkMzA0MGQxNWRkZjZkYWMxZWQzIn0%3D; expires=Wed, 16-Apr-2025 22:15:35 GMT; path=/XSRF-TOKEN=eyJpdiI6IkJzSG9NakNSUEpMTGxnYjc3U2lickE9PSIsInZhbHVlIjoiZUdXM3pLZ0ROVERFbnh4TGRFeUg0SFRnUWJ4b1hPanBtN2RZWjRwZGhYd3BYeHlWWjREa2NZelZPY3JoOHcrSEE2MDJ2Z" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjNSM2tHVGRhQ2lEWVdXYlN5WEF3alE9PSIsInZhbHVlIjoiU0VVdjdUdVZYbFZSUVRiK2pXUThScHdUNk9Gdkd4OU9CQytieDRHWEw4OGhDNmJHbXBKSXJqQ3NhVE1QRm1uTSIsIm1hYyI6IjFjMGFiOWI2NTIxOGYzOTM0YzYyNTdiNWFlNTg2N2U2YmY4Y2QxZmRjMjc1OGI4NWFhODdlOTQwNzBiMjA3ZjAifQ%3D%3D; expires=Wed, 16-Apr-2025 20:14:34 GMT; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6IjNSM2tHVGRhQ2lEWVdXYlN5WEF3alE9PSIsInZhbHVlIjoiU0VVdjdUdVZYbFZSUVRiK2pXUThScHdUNk9Gdkd4OU9CQytieDRHWEw4OGhDNmJHbXBKS" ] ]
          session_attributes
          0 of 0
          array:3 [ "_token" => "AlPjWhpFzKiJk4toXgukAOGGG0frz1ZKeVRlovs4" "page" => array:1 [ "count" => -1 ] "PHPDEBUGBAR_STACK_DATA" => [] ]