Drupal GitPod 컨테이너 3: 설정 및 구성
처음 두 게시물은 두 개의 큰 파일인 GitPod.Dockerfile 및 .gitpod.yml을 다루었습니다. 이 마지막 게시물은 내가 다른 구성 파일에 적용해야 했던 몇 가지 사소한 변경 사항을 다룰 것입니다.
아파치 회의
기본 Apache 구성 파일에서 한 가지만 변경하면 됩니다. 실제 웹 사이트 콘텐츠에 대해/var/www/html 대신/web을 보도록 지시하는 것입니다. Drupal 프로젝트에는 일반적으로 공개 사이트의 콘텐츠가 있는 폴더 외부에 composer.json 파일, 개인 파일 및 구성 동기화 파일과 같은 사이트의 여러 필수 부분을 포함하는 최상위 수준이 있기 때문입니다.
문서 루트를
"${GITPOD_REPO_ROOT}"
에서 "${GITPOD_REPO_ROOT}/web"
로 변경하면 파일의 관련 섹션이 다음과 같이 표시됩니다.# Directory and files to be served
DirectoryIndex index.html index.htm index.php
DocumentRoot "${GITPOD_REPO_ROOT}/web"
RewriteCond %{REQUEST_FILENAME} !^/$
RewriteCond %{REQUEST_FILENAME} !^/(files|misc|uploads)(/.*)?
RewriteCond %{REQUEST_FILENAME} !\.(php|ico|png|jpg|gif|css|js|html?)(\W.*)?
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
<Directory "${GITPOD_REPO_ROOT}/web">
AllowOverride all
Require all granted
</Directory>
이 conf 파일을 사용하기 위해 전체 파일을 .gitpod 디렉토리에 저장한 다음 GitPod.Dockerfile이 해당 파일을 제자리에 복사하도록 했습니다.
COPY .gitpod/apache2.conf /etc/apache2/apache2.conf
PHP.ini
PHP.ini는 유사하게 기본 우분투에 가깝지만 완전하지는 않습니다. 최소한 몇 가지 확장에 대한 지원을 추가해야 합니다. 이를 수행하는 몇 가지 방법이 있습니다. 한 가지 접근 방식은 다른 것을 건드리지 않고 스크립트가 확장을 활성화하는 줄을 추가하도록 하는 것입니다. 이것의 장점은 다른 모든 것을 기본값으로 유지하는 것인데, 시간이 지남에 따라 GitPod 기본 이미지가 변경되므로 중요할 수 있습니다. 다음과 같이 표시됩니다.
echo "extension=uploadprogress" >> /etc/php/8.0/apache2/php.ini
여기서 수행한 다른 대안은 php.ini 파일을 내 파일로 완전히 덮어쓰는 것입니다. 이 접근 방식의 장점은 메모리 제한과 같은 다른 모든 변수도 제어할 수 있다는 것입니다. 기본값에서 변경하려는 항목이 많을수록 개별 줄을 추가하는 것보다 이 접근 방식이 더 적합합니다. 따라서 이 경우 파일은 .gitpod.yml에서 다음 줄을 사용하여 복사됩니다.
sudo cp /workspace/Drupal-GitPod/.gitpod/conf/php.ini /etc/php/8.0/apache2/php.ini
sed를 사용하여 파일의 줄을 제자리에 교체할 수도 있습니다. 이는 완벽하게 구조화된 파일을 기본값으로 교체하려는 경우 좋습니다. 예를 들어 max_execution_time을 30초에서 300초로 변경하려면 다음과 같이 할 수 있습니다.
RUN sed -i "s/max_execution_time = 30/max_execution_time = 300/g" /etc/php/8.0/apache2/php.ini
드루팔 설정
대부분의 Drupal 설정은 기본값과 유사합니다. 가장 큰 변경 사항은 모든 Drupal 개발자에게 친숙한 데이터베이스 자격 증명 설정입니다. 이것은 정기적으로 즉석에서 생성되고 파괴되는 GitPod 컨테이너이므로 비밀번호 없이 루트 사용자를 사용하여 간단하게 했습니다. 프로덕션 서버에는 다른 사용자와 좋은 암호가 있습니다.
$databases['default']['default'] = array (
'database' => 'drupal',
'username' => 'root',
'password' => '',
'prefix' => '',
'host' => '127.0.0.1',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
그 외에도 GitPod 도메인이 변경된다는 사실과 관련된 몇 가지 조정이 있습니다.
먼저 trusted_host_patterns를 설정합니다. 이 사이트를 검색할 수 있는 유효한 도메인은 gitpod.io의 일부 하위 도메인이거나 localhost입니다.
$settings['trusted_host_patterns'] = [
'^.+\.gitpod\.io$',
'^localhost$'
];
나는 또한 모든 것을 허용하기 위해 cookie_domain을 열었습니다. 이것은 GitPod 하위 도메인의 사이트에 먼저 로그인한 다음 새 컨테이너를 회전시키고 해당 컨테이너로 로그인을 시도하는 것을 반대하지 않기 위한 것입니다.
/**
* Used to track what domains you're logged into
* Set to * to accept any GitPod domain
*/
$cookie_domain = '*';
그게 다야! 지금까지 기능적인 Drupal 친화적인 GitPod 컨테이너에 대해 다루었습니다.
Reference
이 문제에 관하여(Drupal GitPod 컨테이너 3: 설정 및 구성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ryanlrobinson/drupal-gitpod-container-3-settings-and-config-1a3b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)