One place for hosting & domains

      How To Install the Django Web Framework on Ubuntu 20.04


      Not using Ubuntu 20.04?


      Choose a different version or distribution.

      Introduction

      Django is a full-featured Python web framework for developing dynamic websites and applications. Using Django, you can quickly create Python web applications and rely on the framework to do a good deal of the heavy lifting.

      In this guide, you will get Django up and running on an Ubuntu 20.04 server. After installation, you will start a new project to use as the basis for your site.

      Different Methods

      There are different ways to install Django, depending upon your needs and how you want to configure your development environment. These have different advantages and one method may lend itself better to your specific situation than others.

      Some of the different methods include:

      • Global install from packages: The official Ubuntu repositories contain Django packages that can be installed with the conventional apt package manager. This is simple, but not as flexible as some other methods. Also, the version contained in the repositories may lag behind the official versions available from the project.
      • Install with pip in a virtual environment: You can create a self-contained environment for your projects using tools like venv and virtualenv. A virtual environment allows you to install Django in a project directory without affecting the larger system, along with other per-project customizations and packages. This is typically the most practical and recommended approach to working with Django.
      • Install the development version with git: If you wish to install the latest development version instead of the stable release, you can acquire the code from the Git repo. This is necessary to get the latest features/fixes and can be done within your virtual environment. Development versions do not have the same stability guarantees as more stable versions, however.

      Prerequisites

      Before you begin, you should have a non-root user with sudo privileges available on your Ubuntu 20.04 server. To set this up, follow our Ubuntu 20.04 initial server setup guide.

      Global Install from Packages

      If you wish to install Django using the Ubuntu repositories, the process is very straightforward.

      First, update your local package index with apt:

      Next, check which version of Python you have installed. 20.04 ships with Python 3.8 by default, which you can verify by typing:

      You should see output like this:

      Output

      Python 3.8.2

      Next, install Django:

      • sudo apt install python3-django

      You can test that the installation was successful by typing:

      Output

      2.2.12

      This means that the software was successfully installed. You may also notice that the Django version is not the latest stable version. To learn more about how to use the software, skip ahead to learn how to create sample project.

      Install with pip in a Virtual Environment

      The most flexible way to install Django on your system is within a virtual environment. We will show you how to install Django in a virtual environment that we will create with the venv module, part of the standard Python 3 library. This tool allows you to create virtual Python environments and install Python packages without affecting the rest of the system. You can therefore select Python packages on a per-project basis, regardless of conflicts with other projects’ requirements.

      Let’s begin by refreshing the local package index:

      Check the version of Python you have installed:

      Output

      Python 3.8.2

      Next, let’s install pip and venv from the Ubuntu repositories:

      • sudo apt install python3-pip python3-venv

      Now, whenever you start a new project, you can create a virtual environment for it. Start by creating and moving into a new project directory:

      • mkdir ~/newproject
      • cd ~/newproject

      Next, create a virtual environment within the project directory using the python command that’s compatible with your version of Python. We will call our virtual environment my_env, but you should name it something descriptive:

      This will install standalone versions of Python and pip into an isolated directory structure within your project directory. A directory will be created with the name you select, which will hold the file hierarchy where your packages will be installed.

      To install packages into the isolated environment, you must activate it by typing:

      • source my_env/bin/activate

      Your prompt should change to reflect that you are now in your virtual environment. It will look something like (my_env)username@hostname:~/newproject$.

      In your new environment, you can use pip to install Django. Regardless of your Python version, pip should just be called pip when you are in your virtual environment. Also note that you do not need to use sudo since you are installing locally:

      You can verify the installation by typing:

      Output

      3.0.8

      Note that your version may differ from the version shown here.

      To leave your virtual environment, you need to issue the deactivate command from anywhere on the system:

      Your prompt should revert to the conventional display. When you wish to work on your project again, re-activate your virtual environment by moving back into your project directory and activating:

      • cd ~/newproject
      • source my_env/bin/activate

      Development Version Install with Git

      If you need a development version of Django, you can download and install Django from its Git repository. Let’s do this from within a virtual environment.

      First, let’s update the local package index:

      Check the version of Python you have installed:

      Output

      Python 3.8.2

      Next, install pip and venv from the official repositories:

      • sudo apt install python3-pip python3-venv

      The next step is cloning the Django repository. Between releases, this repository will have more up-to-date features and bug fixes at the possible expense of stability. You can clone the repository to a directory called ~/django-dev within your home directory by typing:

      • git clone git://github.com/django/django ~/django-dev

      Change to this directory:

      Create a virtual environment using the python command that’s compatible with your installed version of Python:

      Activate it:

      • source my_env/bin/activate

      Next, you can install the repository using pip. The -e option will install in “editable” mode, which is necessary when installing from version control:

      • pip install -e ~/django-dev

      You can verify that the installation was successful by typing:

      Output

      3.2

      Again, the version you see displayed may not match what is shown here.

      You now have the latest version of Django in your virtual environment.

      Creating a Sample Project

      With Django installed, you can begin building your project. We will go over how to create a project and test it on your development server using a virtual environment.

      First, create a directory for your project and change into it:

      • mkdir ~/django-test
      • cd ~/django-test

      Next, create your virtual environment:

      Activate the environment:

      • source my_env/bin/activate

      Install Django:

      To build your project, you can use django-admin with the startproject command. We will call our project djangoproject, but you can replace this with a different name. startproject will create a directory within your current working directory that includes:

      • A management script, manage.py, which you can use to administer various Django-specific tasks.
      • A directory (with the same name as the project) that includes the actual project code.

      To avoid having too many nested directories, however, let’s tell Django to place the management script and inner directory in the current directory (notice the ending dot):

      • django-admin startproject djangoproject .

      To migrate the database (this example uses SQLite by default), let’s use the migrate command with manage.py. Migrations apply any changes you’ve made to your Django models to your database schema.

      To migrate the database, type:

      You will see output like the following:

      Output

      Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK

      Finally, let’s create an administrative user so that you can use the Djano admin interface. Let’s do this with the createsuperuser command:

      • python manage.py createsuperuser

      You will be prompted for a username, an email address, and a password for your user.

      Modifying ALLOWED_HOSTS in the Django Settings

      To successfully test your application, you will need to modify one of the directives in the Django settings.

      Open the settings file by typing:

      • nano ~/django-test/djangoproject/settings.py

      Inside, locate the ALLOWED_HOSTS directive. This defines a list of addresses or domain names that may be used to connect to the Django instance. An incoming request with a Host header that is not in this list will raise an exception. Django requires that you set this to prevent a certain class of security vulnerability.

      In the square brackets, list the IP addresses or domain names that are associated with your Django server. Each item should be listed in quotations, with separate entries separated by a comma. If you want requests for an entire domain and any subdomains, prepend a period to the beginning of the entry:

      ~/django-test/djangoproject/settings.py

      ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]
      

      When you are finished, save the file and exit your editor.

      Testing the Development Server

      Once you have a user, you can start up the Django development server to see what a fresh Django project looks like. You should only use this for development purposes. When you are ready to deploy, be sure to follow Django’s guidelines on deployment carefully.

      Before you try the development server, make sure you open the appropriate port in your firewall. If you followed the initial server setup guide and are using UFW, you can open port 8000 by typing:

      Start the development server:

      • python manage.py runserver your_server_ip:8000

      Visit your server’s IP address followed by :8000 in your web browser:

      http://your_server_ip:8000
      

      You should see something that looks like this:

      Django public page

      To access the admin interface, add /admin/ to the end of your URL:

      http://your_server_ip:8000/admin/
      

      This will take you to a log in screen:

      Django admin login

      If you enter the admin username and password that you just created, you will have access to the main admin section of the site:

      Django admin page

      For more information about working with the Django admin interface, please see “How To Enable and Connect the Django Admin Interface.”

      When you are finished looking through the default site, you can stop the development server by typing CTRL-C in your terminal.

      The Django project you’ve created provides the structural basis for designing a more complete site. Check out the Django documentation for more information about how to build your applications and customize your site.

      Conclusion

      You should now have Django installed on your Ubuntu 20.04 server, providing the main tools you need to create powerful web applications. You should also know how to start a new project and launch the developer server. Leveraging a complete web framework like Django can help make development faster, allowing you to concentrate only on the unique aspects of your applications.

      If you would like more information about working with Django, including in-depth discussions of things like models and views, please see our Django development series.



      Source link

      Como instalar o Servidor Web Apache no CentOS 8 [Início rápido]


      Introdução

      O servidor HTTP Apache é o servidor Web mais amplamente usado no mundo. Ele fornece muitas características poderosas, incluindo módulos carregáveis dinamicamente, suporte robusto de mídia e uma integração extensa com outros softwares populares.

      Neste guia, você instalará um servidor web Apache com hosts virtuais em seu servidor CentOS 8. Para uma versão mais detalhada deste tutorial, por favor, consulte Como instalar o Servidor Web Apache no CentOS 8.

      Pré-requisitos

      Você precisará do seguinte para completar este guia:

      Passo 1 — Instalando o Apache

      O Apache está disponível dentro dos repositórios de software padrão do CentOS, o que significa que você pode instalá-lo com o gerenciador de pacotes dnf.

      Como o usuário sudo não root configurado nos pré-requisitos, instale o pacote Apache:

      Após confirmar a instalação, o dnf irá instalar o Apache e todas as dependências necessárias.

      Passo 2 — Ajustando o firewall

      Ao completar o Passo 4 do tutorial de Configuração Inicial de Servidor com o CentOS 8 mencionado na seção de pré-requisitos, você já terá instalado o firewalld em seu servidor para exibir solicitações por HTTP.

      Se você também planeja configurar o Apache para fornecer conteúdo por HTTPS, você também irá querer abrir a porta 443 habilitando o serviço https:

      • sudo firewall-cmd --permanent --add-service=https

      Em seguida, recarregue o firewall para colocar essas novas regras em vigor:

      • sudo firewall-cmd --reload

      Após o firewall recarregar, você está pronto para iniciar o serviço e verificar o servidor web.

      Passo 3 — Verificando seu Servidor Web

      O Apache não inicia automaticamente no CentOS assim que a instalação termina. Dessa forma você precisará iniciar o processo Apache manualmente:

      • sudo systemctl start httpd

      Verifique se o serviço está em execução com o seguinte comando:

      • sudo systemctl status httpd

      Você receberá um status active quando o serviço estiver executando:

      Output

      ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...

      Acesse a página de destino padrão do Apache para confirmar que o software está funcionando corretamente através do seu endereço de IP:

      http://your_server_ip
      

      Você verá a página web padrão do Apache no CentOS 8:

      Default Apache page for CentOS 8

      Esta página indica que o Apache está funcionando corretamente. Ela também inclui algumas informações básicas sobre arquivos importantes do Apache e localizações de diretórios importantes.

      Passo 4 — Configurando Hosts Virtuais (Recomendado)

      Ao utilizar o servidor web Apache, você pode usar virtual hosts (se você estiver mais familiarizado com o Nginx, esses são semelhantes aos blocos de servidor) para encapsular detalhes de configuração e hospedar mais de um domínio em um único servidor. Neste passo,vamos configurar um domínio chamado example.com, mas você deve substituí-lo por seu próprio nome de domínio. Se você estiver configurando um nome de domínio com a DigitalOcean, consulte nossa Documentação de Rede.

      Crie o diretório html para o exemplo.com do seguinte modo, usando o sinalizador -p para criar todos os diretórios pais necessários:

      • sudo mkdir -p /var/www/example.com/html

      Crie um diretório adicional para armazenar arquivos de logs para o site:

      • sudo mkdir -p /var/www/example.com/log

      Em seguida, atribua a propriedade do diretório html com a variável de ambiente $USER:

      • sudo chown -R $USER:$USER /var/www/example.com/html

      Certifique-se de que seu web root tenha as permissões padrão configuradas:

      • sudo chmod -R 755 /var/www

      A seguir, crie uma página de exemplo index.html utilizando o nano ou seu editor favorito:

      • sudo vi /var/www/example.com/html/index.html

      Pressione i para mudar para o modo INSERT e adicione o seguinte exemplo HTML ao arquivo:

      /var/www/example.com/html/index.html

      <html>
        <head>
          <title>Welcome to Example.com!</title>
        </head>
        <body>
          <h1>Success! The example.com virtual host is working!</h1>
        </body>
      </html>
      

      Salve e feche o arquivo pressionando ESC, digitando :wq e pressionando ENTER.

      Com seu diretório do site e o arquivo de index prontos, você está quase pronto para criar os arquivos de virtual host. Os arquivos de virtual host especificam a configuração de seus sites separados e informam ao servidor Apache como responder a várias solicitações de domínios.

      Antes de criar seus virtual hosts, você precisará criar um diretório sites-available para armazená-los. Você também criará o diretório sites-enabled que informa ao Apache que um virtual host está pronto para servir aos visitantes. O diretório sites-enabled terá links simbólicos para os virtual hosts que queremos publicar. Crie ambos os diretórios com o seguinte comando:

      • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

      Em seguida, você irá informar ao Apache para procurar virtual hosts no diretório sites-enabled. Para conseguir isso, edite o arquivo de configuração principal do Apache usando o vi ou seu editor de texto favorito e adicione uma linha que declara um diretório opcional para arquivos de configuração adicionais:

      • sudo vi /etc/httpd/conf/httpd.conf

      Pressione o G maiúsculo para navegar até o final do arquivo. Em seguida pressione i para mudar para o modo INSERT e adicione a seguinte linha ao final do arquivo:

      /etc/httpd/conf/httpd.conf

      ...
      # Supplemental configuration
      #
      # Load config files in the "/etc/httpd/conf.d" directory, if any.
      IncludeOptional conf.d/*.conf
      IncludeOptional sites-enabled/*.conf
      

      Salve e feche o arquivo quando terminar de adicionar essa linha. Agora que você tem seus diretórios de virtual host prontos, você criará seu arquivo de virtual host.

      Comece criando um novo arquivo no diretório sites-available:

      • sudo vi /etc/httpd/sites-available/example.com.conf

      Adicione no seguinte bloco de configuração e mude o domínio example.com para o seu nome de domínio:

      /etc/httpd/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerName www.example.com
          ServerAlias example.com
          DocumentRoot /var/www/example.com/html
          ErrorLog /var/www/example.com/log/error.log
          CustomLog /var/www/example.com/log/requests.log combined
      </VirtualHost>
      

      Isso dirá ao Apache onde encontrar o web root diretamente que contém os documentos web publicamente acessíveis. Ele também informa ao Apache onde armazenar erros e logs de solicitações para este site em particular.

      Salve e feche o arquivo quando você terminar.

      Agora que você criou os arquivos de virtual host, você os habilitará para que o Apache saiba como exibi-los aos visitantes. Para fazer isso, crie um link simbólico para cada virtual host no diretório sites-enabled:

      • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

      Agora, seu virtual host está configurado e pronto para servir o conteúdo. Antes de reiniciar o serviço Apache, vamos garantir que o SELinux está com as políticas corretas prontas para seus virtual hosts.

      Passo 5 — Ajustando as Permissões SELinux para Virtual Hosts (Recomendado)

      O SELinux é um módulo de segurança do Kernel Linux, que aumenta a segurança dos sistemas Linux. O CentOS 8 vem equipado com o SELinux configurado para funcionar com a configuração padrão do Apache. Como você alterou a configuração padrão configurando um diretório de log personalizado no arquivo de configuração de virtual hosts, você receberá um erro caso você tentar iniciar o serviço Apache. Para resolver isso, você precisa atualizar as políticas do SELinux para permitir que o Apache escreva nos arquivos necessários.

      Há diferentes maneiras de definir políticas baseadas nas necessidades do seu ambiente, uma vez que o SELinux permite que você personalize seu nível de segurança. Este passo irá abordar dois métodos de ajuste das políticas do Apache: universalmente e em um diretório específico. O ajuste das políticas em diretórios é mais seguro. Portanto, é a abordagem recomendada.

      Ajustando as Políticas do Apache Universalmente

      Definir a política do Apache universalmente irá informar ao SELinux para tratar de todos os processos de Apache de maneira idêntica, utilizando o Booleano httpd_unified. Embora essa abordagem seja mais conveniente, ela não lhe dará o mesmo nível de controle como uma abordagem que se concentra em uma política de arquivos ou diretórios.

      Execute o seguinte comando para definir uma política universal do Apache:

      • sudo setsebool -P httpd_unified 1

      O comando setsebool altera os valores Booleanos do SELinux. A flag -P atualizará o valor de inicialização, fazendo com que essa alteração persista em reinicializações. O httpd_unified é o Booleano que dirá ao SELinux para tratar todos os processos do Apache como sendo do mesmo tipo, então você o habilitou com um valor de 1.

      Ajustando as Políticas do Apache em um Diretório

      Configurando individualmente as permissões do SELinux para o diretório /var/www/example.com/log dará a você mais controle sobre suas políticas do Apache, mas também pode precisar de mais manutenção. Como essa opção não define políticas universalmente, você precisará definir manualmente o tipo de contexto para quaisquer novos diretórios de logs especificados em sua configuração de virtual host.

      Primeiro, verifique o tipo de contexto que o SELinux deu ao diretório /var/www/example.com/log:

      • sudo ls -dlZ /var/www/example.com/log/

      Este comando lista e mostra o contexto SELinux do diretório. Você receberá um resultado similar ao seguinte:

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      O contexto atual é o httpd_sys_content_t, que informa ao SELinux que o processo Apache pode ler apenas os arquivos criados neste diretório. Neste tutorial, você alterará o tipo de contexto do diretório /var/www/example.com/log para httpd_log_t. Este tipo permitirá ao Apache gerar e anexar aos arquivos de log de aplicações web:

      • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

      Em seguida, use o comando restorecon para aplicar essas alterações e persisti-las entre as reinicializações:

      • sudo restorecon -R -v /var/www/example.com/log

      A flag -R executa esse comando de maneira recursiva, o que significa que ele atualizará todos os arquivos existentes para usar o novo contexto. A flag -v exibirá as alterações de contexto que o comando fez. Você receberá a seguinte saída confirmando as alterações:

      Output

      Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0

      Você pode listar os contextos mais uma vez para ver as alterações:

      • sudo ls -dlZ /var/www/example.com/log/

      A saída reflete o tipo de contexto atualizado:

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Agora que o diretório /var/www/example.com/log está usando o tipo httpd_log_t, você está pronto para testar sua configuração de virtual host.

      Passo 6 — Testando o Virtual Host (Recomendado)

      Assim que o contexto SELinux for atualizado com qualquer método, o Apache poderá escrever no diretório /var/www/example.com/log. Agora, você pode reiniciar o serviço Apache com sucesso:

      • sudo systemctl restart httpd

      Liste o conteúdo do diretório /var/www/example.com/log para ver se o Apache criou os arquivos de registro:

      • ls -lZ /var/www/example.com/log

      Você receberá a confirmação de que o Apache foi capaz de criar os arquivos error.log e requests.log especificados na configuração de virtual host:

      Output

      -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

      Agora que você tem seu virtual host configurado e as permissões do SELinux atualizadas, o Apache agora irá servir seu nome de domínio. Você pode testar isso navegando para http://example.com, onde você deve ver algo assim:

      Success! O virtual host example.com está funcionando!

      Isso confirma que seu virtual host está configurado e exibindo conteúdo. Repita os Passos 4 e 5 para criar novos virtual hosts com as permissões SELinux para domínios adicionais.

      Conclusão

      Neste tutorial, você instalou e gerenciou o servidor web Apache. Agora que você tem seu servidor Web instalado, você tem muitas opções para o tipo de conteúdo que você pode oferecer e as tecnologias que você quiser usar para criar uma experiência mais rica.

      Se você quiser construir uma pilha de aplicação mais completa, você pode dar uma olhada neste artigo sobre como configurar uma pilha LAMP no CentOS 8.



      Source link

      Comment installer le serveur Web Apache sur CentOS 8 [Démarrage rapide]


      Introduction

      Le serveur HTTP Apache est le serveur web le plus utilisé au monde. Il offre de nombreuses fonctionnalités puissantes, notamment des modules à chargement dynamique, une prise en charge robuste des médias et une intégration poussée avec d’autres logiciels populaires.

      En suivant ce guide, vous allez installer un serveur web Apache avec des hôtes virtuels sur votre serveur CentOS 8. Pour une version plus détaillée de ce tutoriel, veuillez vous référer à Comment installer le serveur Web Apache sur CentOS 8.

      Conditions préalables

      Vous aurez besoin des éléments suivants pour suivre ce guide :

      Étape 1 — Installation d’Apache

      Apache est disponible dans les référentiels de logiciels par défaut de CentOS, ce qui signifie que vous pouvez l’installer avec le gestionnaire de paquets dnf.

      En tant qu’utilisateur non root sudo configuré dans les conditions préalables, installez le package Apache :

      Après avoir confirmé l’installation, dnf installera Apache et toutes les dépendances requises.

      Étape 2 – Réglage du pare-feu

      En réalisant l’étape 4 du guide Configuration initiale du serveur avec CentOS 8 mentionné dans la section conditions préalables, vous auvez déjà installé firewalld sur votre serveur pour répondre aux demandes sur HTTP.

      Si vous prévoyez également configurer Apache pour présenter du contenu sur HTTPS, vous devez également ouvrir le port 443 en activant le service https :

      • sudo firewall-cmd --permanent --add-service=https

      Ensuite, rechargez le pare-feu pour appliquer ces nouvelles règles :

      • sudo firewall-cmd --reload

      Une fois le pare-feu rechargé, vous êtes prêt à démarrer le service et à vérifier le serveur web.

      Étape 3 – Vérification de votre serveur Web

      Une fois l’installation terminée, Apache ne démarre pas automatiquement sur CentOS. Par conséquent, vous devez démarrer le processus Apache manuellement :

      • sudo systemctl start httpd

      Utilisez la commande suivante pour vérifier si le service s’exécute :

      • sudo systemctl status httpd

      Le statut deviendra active une fois que le service sera en cours d’exécution :

      Output

      ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...

      Accédez à la page d’accueil par défaut d’Apache pour confirmer que le logiciel fonctionne correctement grâce à votre adresse IP :

      http://your_server_ip
      

      Vous verrez la page web Apache par défaut CentOS 8 :

      Page Apache par défaut pour CentOS 8

      Cette page indique qu’Apache fonctionne correctement. Elle contient également des informations de base sur les fichiers Apache et les emplacements de répertoires importants.

      Étape 4 — Configuration des hôtes virtuels (recommandé)

      Lorsque vous utilisez le serveur Web Apache, vous pouvez utiliser des hôtes virtuels (si vous êtes plus habitué à utiliser Nginx, ils sont similaires aux blocs de serveur) pour encapsuler les détails de configuration et héberger plusieurs domaines à partir d’un seul serveur. Au cours de cette étape, nous allons configurer un domaine que l’on nommera example.com, mais vous devez le remplacer par votre propre nom de domaine. Si vous configurez un nom de domaine avec DigitalOcean, veuillez consulter notre Documentation de mise en réseau.

      Créez répertoire html pour<p>example.com<^> comme suit, à l’aide de la balise -p pour créer tout répertoire de parent nécessaire :

      • sudo mkdir -p /var/www/example.com/html

      Créez un répertoire supplémentaire pour stocker des fichiers journaux du site :

      • sudo mkdir -p /var/www/example.com/log

      Ensuite, attribuez la propriété du répertoire html avec la variable d’environnement $USER :

      • sudo chown -R $USER:$USER /var/www/example.com/html

      Assurez-vous que les autorisations par défaut de votre racine Web sont bien configurées :

      • sudo chmod -R 755 /var/www

      Ensuite, créez une page index.html à l’aide de vi ou de votre éditeur favori :

      • sudo vi /var/www/example.com/html/index.html

      Appuyez sur i pour passer en mode INSERT et ajoutez l’exemple de HTML suivant au fichier :

      /var/www/example.com/html/index.html

      <html>
        <head>
          <title>Welcome to Example.com!</title>
        </head>
        <body>
          <h1>Success! The example.com virtual host is working!</h1>
        </body>
      </html>
      

      Sauvegardez et fermez le fichier en appuyant sur ESC, en saisissant :wq et en appuyant sur ENTRÉE.

      Maintenant que le répertoire de votre site et l’exemple de fichier d’index sont en place, vous êtes pratiquement prêt à créer les fichiers d’hôte virtuel. Les fichiers d’hôtes virtuels spécifient la configuration de vos autres sites et indiquent au serveur web Apache comment répondre aux diverses demandes de domaine.

      Avant de créer vos hôtes virtuels, vous devez créer un répertoire sites-available dans lequel les stocker. Vous devez également créer le répertoire sites-enabled, qui indique à Apache qu’un hôte virtuel est prêt à servir votre audience. Le répertoire sites-enabled contiendra des liens symboliques aux hôtes virtuels que nous voulons publier. Créez les deux répertoires avec la commande suivante :

      • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

      Ensuite, vous devez demander à Apache de rechercher des hôtes virtuels dans le répertoire sites-enabled. Pour ce faire, modifiez le fichier de configuration principal d’Apache à l’aide de vi ou de votre éditeur de texte favori, puis ajoutez une ligne indiquant un répertoire facultatif pour les fichiers de configuration supplémentaires :

      • sudo vi /etc/httpd/conf/httpd.conf

      Appuyez sur G majuscule pour aller à la fin du fichier. Appuyez ensuite sur i pour passer en mode INSERT et ajoutez la ligne suivante à la fin du fichier :

      /etc/httpd/conf/httpd.conf

      ...
      # Supplemental configuration
      #
      # Load config files in the "/etc/httpd/conf.d" directory, if any.
      IncludeOptional conf.d/*.conf
      IncludeOptional sites-enabled/*.conf
      

      Sauvegardez et fermez le fichier une fois que vous avez ajouté cette ligne. Maintenant que vos répertoires d’hôte virtuel sont prêts, vous devez créer votre fichier d’hôte virtuel.

      Commencez par créer un nouveau fichier dans le répertoire sites-available :

      • sudo vi /etc/httpd/sites-available/example.com.conf

      Ajoutez-y le bloc de configuration suivant, et remplacez le domaine example.com par votre nom de domaine :

      /etc/httpd/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerName www.example.com
          ServerAlias example.com
          DocumentRoot /var/www/example.com/html
          ErrorLog /var/www/example.com/log/error.log
          CustomLog /var/www/example.com/log/requests.log combined
      </VirtualHost>
      

      Cette opération indiquera directement à Apache où trouver la racine qui contient les documents Web accessibles au public. Elle indique également à quel endroit Apache doit stocker les journaux d’erreurs et de demandes pour le site en question.

      Enregistrez et fermez le fichier lorsque vous avez terminé.

      Maintenant que vous avez créé les fichiers hôtes virtuels, vous devez les activer pour qu’Apache puisse les présenter à votre audience. Pour ce faire, créez une liaison symbolique pour chaque hôte virtuel dans le répertoire sites-enabled :

      • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

      Votre hôte virtuel est maintenant configuré et prêt à fournir du contenu. Avant de redémarrer le service Apache, assurez-vous que SELinux a les bonnes politiques en place pour vos hôtes virtuels.

      Étape 5 — Réglage des autorisations SELinux pour les hôtes virtuels (recommandé)

      SELinux est un module de sécurité du noyau Linux qui apporte une sécurité renforcée aux systèmes Linux. CentOS 8 est équipé de SELinux configuré pour fonctionner avec la configuration Apache par défaut. Puisque vous avez modifié la configuration par défaut en configurant un répertoire de journaux personnalisé dans le fichier de configuration des hôtes virtuels, une erreur apparaîtra si vous essayez de démarrer le service Apache. Pour résoudre ce problème, vous devez mettre à jour les politiques SELinux pour permettre à Apache d’écrire dans les fichiers nécessaires.

      Il existe différentes façons de définir des politiques en fonction des besoins de votre environnement, car SELinux vous permet de personnaliser votre niveau de sécurité. Cette étape couvrira les deux méthodes d’ajustement des politiques Apache : universellement et sur un répertoire spécifique. L’ajustement de politiques sur des répertoires est plus sûr et nous vous recommandons donc d’utiliser cette approche.

      Ajuster des politiques Apache universellement

      La configuration universelle de politique Apache demandera à SELinux de traiter tous les processus Apache de manière identique en utilisant le booléen httpd_unified. Bien que cette approche soit plus pratique, vous n’aurez pas le même niveau de contrôle qu’une approche qui se concentre sur une politique de fichier ou de répertoire.

      Exécutez la commande suivante pour définir une politique Apache universelle :

      • sudo setsebool -P httpd_unified 1

      La commande setsebool modifie les valeurs booléennes de SELinux. L’indicateur -P mettra à jour la valeur de démarrage, ce qui rend cette modification persistante lors des redémarrages. httpd_unified est la valeur booléenne qui indiquera à SELinux de traiter tous les processus Apache comme un seul et même type. Vous l’avez donc activé avec une valeur de 1.

      Ajuster des politiques Apache sur un répertoire

      La configuration individuelle des autorisations SELinux pour le répertoire /var/www/example.com/log vous donnera plus de contrôle sur vos politiques Apache. Cependant, cela nécessitera éventuellement plus de maintenance. Étant donné que cette option ne définit pas universellement les stratégies, vous devrez définir manuellement le type de contexte pour tout nouveau répertoire de journaux spécifié dans vos configurations d’hôte virtuel.

      Tout d’abord, vérifiez le type de contexte que SELinux a donné au répertoire /var/www/example.com/log :

      • sudo ls -dlZ /var/www/example.com/log/

      Cette commande répertorie et imprime le contexte SELinux du répertoire. Vous recevrez un résultat similaire à celui qui suit :

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Le contexte actuel est httpd_sys_content_t, qui indique à SELinux que le processus Apache peut uniquement lire les fichiers créés dans ce répertoire. Dans ce tutoriel, vous allez remplacer le type de contexte du répertoire /var/www/example.com/log par httpd_log_t. Ce type permettra à Apache de générer et d’ajouter des fichiers journaux d’application Web :

      • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

      Ensuite, utilisez la commande restorecon pour appliquer ces modifications et les conserver lors des redémarrages :

      • sudo restorecon -R -v /var/www/example.com/log

      L’indicateur -R exécute cette commande récursivement, ce qui signifie qu’il mettra à jour tous les fichiers existants pour qu’ils utilisent le nouveau contexte. L’indicateur -v affichera les changements de contexte que la commande a effectué. Vous recevrez le résultat suivant, qui confirmera les modifications :

      Output

      Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0

      Vous pouvez lister les contextes une fois de plus pour voir les changements :

      • sudo ls -dlZ /var/www/example.com/log/

      Le résultat reflète le type de contexte mis à jour :

      Output

      drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

      Maintenant que le réportoire /var/www/example.com/log utilise le type httpd_log_t, vous êtes prêt à tester la configuration de votre hôte virtuel.

      Étape 6 — Tester l’hôte virtuel (recommandé)

      Une fois le contexte SELinux mis à jour avec l’une des méthodes, Apache pourra écrire dans le répertoire /var/www/example.com/log. Vous pouvez maintenant redémarrer le service Apache :

      • sudo systemctl restart httpd

      Répertoriez le contenu du répertoire /var/www/example.com/log pour voir si Apache a créé les fichiers journaux :

      • ls -lZ /var/www/example.com/log

      Vous recevrez une confirmation qu’Apache a pu créer les fichiers error.log et requests.log spécifiés dans la configuration de l’hôte virtuel :

      Output

      -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

      Maintenant que vous avez configuré votre hôte virtuel et mis à jour les autorisations SELinux, Apache présentera désormais votre nom de domaine. Vous pouvez le vérifer en allant sur http://example.com où vous devriez voir quelque chose similaire à ceci :

      Bravo! L'hôte virtuel example.com fonctionne !

      Cela confirme que votre hôte virtuel est correctement configuré et présente le contenu. Répétez les étapes 4 et 5 pour créer de nouveaux hôtes virtuels avec des autorisations SELinux pour des domaines supplémentaires.

      Conclusion

      Dans ce tutoriel, vous avez installé et géré le serveur web Apache. Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu que vous voulez présenter et les technologies que vous souhaitez utiliser pour créer une expérience plus riche.

      Si vous souhaitez construire une pile d’applications plus complète, consultez cet article sur la manière de configurer une pile LAMP sur on CentOS 8​​​1​​​.



      Source link