Configuring Linux Web Servers

بواسطة: Udacity

Overview

In this course you'll learn the basic Linux fundamentals every web developer needs to know to share their web applications with the world! You'll get a basic Python WSGI application up and running within a Vagrant virtual machine that queries data from a PostgreSQL database.

You'll start by exploring various Linux distributions and learning the differences between a number of them. You'll then explore how the Linux operating system differs from other operating systems you may be more familiar with. With this base knowledge, you'll then move into Linux security - covering topics such as file permissions, user management, package management and configuring firewalls. Finally, you'll transform a safe and secure baseline server into a web application server by installing and configuring the Apache HTTP Server and PostgreSQL database server.

Syllabus

  • Intro to Linux
    • Introduction to the Linux operating system and its many distributions.,Setup your very own Linux virtual machine on your own computer and explore it.,Learn how the filesystem is organized and identify key files.
  • Linux Security
    • Execute administrative tasks, update the software on your system, install new software, and manage users.,Learn how to implement even stronger authentication mechanisms, and how to interpret Linux file permissions.,Configure a firewall to keep your system secure.
  • Web Application Servers
    • Transform your secure and safe barebones server into a fully functional web application server.,Install and configure an Apache HTTP Server and PostgreSQL database server.,Write a basic Python WSGI application that can query a database and present that data upon a web request.

Taught by

Michael Wales

Configuring Linux Web Servers
الذهاب الي الدورة

Configuring Linux Web Servers

بواسطة: Udacity

  • Udacity
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • advanced
  • N/A
8.1.2PHP Version269msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (152ms)
    • Application (117ms)
    • 1 x Booting (56.34%)
      151.56ms
      1 x Application (43.44%)
      116.87ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed32.83ms
      • select * from `courses` where `slug_ar` = 'configuring-linux-web-servers' limit 1
        3.85ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. configuring-linux-web-servers
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-16 23:42:56' where `id` = 1684
        28.06ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-16 23:42:56
        • 1. 1684
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (10)
        280μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (6) and `providers`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1676 limit 1
        280μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1676
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        mfOAz6HWQUb0r8rkzUEUJ1asuDVETJ2XX26ltz2G
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/config...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/configuring-linux-web-servers
        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:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.131.38.255" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "93178ac00b64fa27-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.131.38.255" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.131.38.255" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "93178ac00b64fa27-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.131.38.255" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "10958" "REMOTE_ADDR" => "172.70.131.194" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/configuring-linux-web-servers" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744846976.2645 "REQUEST_TIME" => 1744846976 ]
        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 23:42:56 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlgvK2VBL1BBRVZEckNOTm90OEJtQnc9PSIsInZhbHVlIjoiTllrREtVeE9kM2lsTVRkbUJYS21SMTVtSE5iTTdaVlBKSmMydll4a2h0S1ppeTR0MkY3THZEUGZoUnpkSHJnMExPdHJjeHBpa01YVmdqZ1M2RksvdzVYd1ZSck5aUTArU2VxNFJMY1VWS2ZCbWNKT21SUDlZN3hlWUgzSklXQTgiLCJtYWMiOiIwNTJhZTQxODYzYzYzNDY0OWM0M2YwZDcyZWY5Mzg2MGMxMzk2ZWFlNDEzOTAzOGUyNGFmYWFjMTdmNzhjYzA3IiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 01:42:56 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlgvK2VBL1BBRVZEckNOTm90OEJtQnc9PSIsInZhbHVlIjoiTllrREtVeE9kM2lsTVRkbUJYS21SMTVtSE5iTTdaVlBKSmMydll4a2h0S1ppeTR0MkY3THZEUGZoUnpkSHJnMExPdHJje" 1 => "laravel_session=eyJpdiI6Ijd5SU9oNkV6Mys0MHFuN1Rmb0Z5VFE9PSIsInZhbHVlIjoiZEdrZDIwZzlLM3Y2clZKUHp2b2F6cDlKYlVqRDFqcUE2Z0xLaFhabWhOMzBXZitGbnZxalBvQ0MxQzhkTHpUS3FSN2taRmFMa3ZkNWFwN1Bsc0F3UG5iaXhQalNLR0hHZFJhclJVcWdFdG1iTG5Vd0NUOXNJSnpNMDgyL0tGYjQiLCJtYWMiOiJiZjZiNzgzODA4MzVlOGU3MjdhYmU2YTc3N2ZkZTAyNzczYjlhNzMzOTFhMDY5ZWY5ZDlkZjEwYjM4ODExZmRjIiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 01:42:56 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ijd5SU9oNkV6Mys0MHFuN1Rmb0Z5VFE9PSIsInZhbHVlIjoiZEdrZDIwZzlLM3Y2clZKUHp2b2F6cDlKYlVqRDFqcUE2Z0xLaFhabWhOMzBXZitGbnZxalBvQ0MxQzhkTHpUS3FS" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlgvK2VBL1BBRVZEckNOTm90OEJtQnc9PSIsInZhbHVlIjoiTllrREtVeE9kM2lsTVRkbUJYS21SMTVtSE5iTTdaVlBKSmMydll4a2h0S1ppeTR0MkY3THZEUGZoUnpkSHJnMExPdHJjeHBpa01YVmdqZ1M2RksvdzVYd1ZSck5aUTArU2VxNFJMY1VWS2ZCbWNKT21SUDlZN3hlWUgzSklXQTgiLCJtYWMiOiIwNTJhZTQxODYzYzYzNDY0OWM0M2YwZDcyZWY5Mzg2MGMxMzk2ZWFlNDEzOTAzOGUyNGFmYWFjMTdmNzhjYzA3IiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 01:42:56 GMT; path=/XSRF-TOKEN=eyJpdiI6IlgvK2VBL1BBRVZEckNOTm90OEJtQnc9PSIsInZhbHVlIjoiTllrREtVeE9kM2lsTVRkbUJYS21SMTVtSE5iTTdaVlBKSmMydll4a2h0S1ppeTR0MkY3THZEUGZoUnpkSHJnMExPdHJje" 1 => "laravel_session=eyJpdiI6Ijd5SU9oNkV6Mys0MHFuN1Rmb0Z5VFE9PSIsInZhbHVlIjoiZEdrZDIwZzlLM3Y2clZKUHp2b2F6cDlKYlVqRDFqcUE2Z0xLaFhabWhOMzBXZitGbnZxalBvQ0MxQzhkTHpUS3FSN2taRmFMa3ZkNWFwN1Bsc0F3UG5iaXhQalNLR0hHZFJhclJVcWdFdG1iTG5Vd0NUOXNJSnpNMDgyL0tGYjQiLCJtYWMiOiJiZjZiNzgzODA4MzVlOGU3MjdhYmU2YTc3N2ZkZTAyNzczYjlhNzMzOTFhMDY5ZWY5ZDlkZjEwYjM4ODExZmRjIiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 01:42:56 GMT; path=/; httponlylaravel_session=eyJpdiI6Ijd5SU9oNkV6Mys0MHFuN1Rmb0Z5VFE9PSIsInZhbHVlIjoiZEdrZDIwZzlLM3Y2clZKUHp2b2F6cDlKYlVqRDFqcUE2Z0xLaFhabWhOMzBXZitGbnZxalBvQ0MxQzhkTHpUS3FS" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "mfOAz6HWQUb0r8rkzUEUJ1asuDVETJ2XX26ltz2G" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/configuring-linux-web-servers" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]