OpenBSD에서 Composer가 포함된 Drupal 9
요약
Symfony은 PHP 웹 프레임워크 중 하나이며 내가 가장 좋아하는 프레임워크는 명확하게 분류되고 기능적이며 보안을 염두에 두고 설계되었으며 MakeBundle과 같은 유용한 도우미와 함께 제공되며 훌륭한 공식documentation도 제공합니다. . Drupal 컨텐츠 관리 시스템 중 하나인 CMS는 Symfony를 기반으로 합니다.
웹 서비스를 구축하려고 할 때 일반적으로 좋은 후보입니다. Symfony는 유연한 데이터 구조와 사용자 인터페이스를 생성할 수 있는 원시적인 가능성을 제공합니다. 반대로 Drupal은 인증, 사용자 역할 및 기능 필드를 포함하는 서비스를 구축하기 위한 강력한 구성 요소를 제공합니다.
이번 포스팅은 제가 체험판으로 최신 안정버전인 Drupal 9 서버를 구축한 방법을 소개합니다.
게다가, Drupal Association은 "Why We Use Symfony"에 대해 썼습니다.
환경
지도 시간
데이터 베이스
데이터베이스 서버에 연결합니다.
$ mysql -u root -p
데이터베이스와 사용자를 만듭니다.
CREATE DATABASE <database> \
CHARACTER SET utf8mb4 \
COLLATE utf8mb4_unicode_ci;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES \
ON <database>.* TO \
<dbuser>@'localhost' \
IDENTIFIED BY '<dbpassword>';
FLUSH PRIVILEGES;
앱
환경 준비
Ports 컬렉션에서 PHP를 가져옵니다.
$ doas pkg_add php
$ # choose php-7.4
또한 PHP 확장이 필요합니다.
$ doas pkg_add php-curl php-gd php-intl php-zip php-mysqli php-pdo_mysql # + php-[...] if necessary
$ # choose those of php-7.4
그런 다음 필요한 경우 다른 패키지를 설치하십시오.
$ # install other packages if necessary
$ doas pkg_add unzip composer git
작곡가 작업
먼저 작곡가가 대상 버전인 php 7.4에 바인딩되어 있는지 확인합니다.
$ composer -vvv about
Failed to initialize global composer: Composer could not find the config file: /.../.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Running 2.0.12 (2021-04-01 10:14:59) with PHP 7.4.19 on OpenBSD / 6.9
Failed to initialize global composer: Composer could not find the config file: /.../.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Composer - Dependency Manager for PHP
Composer is a dependency manager tracking local dependencies of your projects and libraries.
See https://getcomposer.org/ for more information.
확인. 출력은 "OpenBSD/6.9에서 PHP 7.4.19로 2.0.12(2021-04-01 10:14:59) 실행 중"입니다.
그런 다음
composer
를 실행하여 Drupal 프로젝트를 생성합니다.$ composer create-project drupal/recommended-project <drupal-dir>
게다가
composer
가 php-7.4에 바인딩되지 않은 경우 composer.phar
를 사용할 수 있습니다.$ # alternatively
$ #php-7.4 /usr/local/libexec/composer.phar create-project drupal/recommended-project <drupal-dir>
결과는 다음과 같습니다(일부 생략).
Creating a "drupal/recommended-project" project at "./drupal"
Installing drupal/recommended-project (9.1.8)
- Downloading drupal/recommended-project (9.1.8)
- Installing drupal/recommended-project (9.1.8): Extracting archive
Created project in /var/www/.../<drupal-dir>
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 61 installs, 0 updates, 0 removals
- Downloading composer/installers (v1.11.0)
- Downloading symfony/...
...
- Downloading pear/archive_tar (1.4.13)
- Downloading drupal/core (9.1.8)
- Installing composer/installers (v1.11.0): Extracting archive
- Installing drupal/core-composer-scaffold (9.1.8): Extracting archive
- Installing drupal/core-project-message (9.1.8): Extracting archive
- Installing typo3/phar-stream-wrapper (v3.1.6): Extracting archive
- Installing symfony/polyfill-mbstring (v1.20.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.20.0): Extracting archive
- Installing twig/twig (v2.14.1): Extracting archive
...
- Installing psr/http-message (1.0.1): Extracting archive
...
- Installing doctrine/annotations (1.11.1): Extracting archive
- Installing doctrine/reflection (1.2.2): Extracting archive
- Installing composer/semver (3.2.2): Extracting archive
- Installing asm89/stack-cors (1.3.0): Extracting archive
- Installing drupal/core (9.1.8): Extracting archive
- Installing drupal/core-recommended (9.1.8)
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Generating autoload files
38 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Scaffolding files for drupal/core:
- Copy [project-root]/.editorconfig from assets/scaffold/files/editorconfig
- Copy [project-root]/.gitattributes from assets/scaffold/files/gitattributes
- Copy [web-root]/.csslintrc from assets/scaffold/files/csslintrc
- Copy [web-root]/.eslintignore from assets/scaffold/files/eslintignore
- Copy [web-root]/.eslintrc.json from assets/scaffold/files/eslintrc.json
- Copy [web-root]/.ht.router.php from assets/scaffold/files/ht.router.php
- Copy [web-root]/.htaccess from assets/scaffold/files/htaccess
- Copy [web-root]/example.gitignore from assets/scaffold/files/example.gitignore
- Copy [web-root]/index.php from assets/scaffold/files/index.php
- Copy [web-root]/INSTALL.txt from assets/scaffold/files/drupal.INSTALL.txt
- Copy [web-root]/README.txt from assets/scaffold/files/drupal.README.txt
- Copy [web-root]/robots.txt from assets/scaffold/files/robots.txt
- Copy [web-root]/update.php from assets/scaffold/files/update.php
- Copy [web-root]/web.config from assets/scaffold/files/web.config
- Copy [web-root]/sites/README.txt from assets/scaffold/files/sites.README.txt
- Copy [web-root]/sites/development.services.yml from assets/scaffold/files/development.services.yml
- Copy [web-root]/sites/example.settings.local.php from assets/scaffold/files/example.settings.local.php
- Copy [web-root]/sites/example.sites.php from assets/scaffold/files/example.sites.php
- Copy [web-root]/sites/default/default.services.yml from assets/scaffold/files/default.services.yml
- Copy [web-root]/sites/default/default.settings.php from assets/scaffold/files/default.settings.php
- Copy [web-root]/modules/README.txt from assets/scaffold/files/modules.README.txt
- Copy [web-root]/profiles/README.txt from assets/scaffold/files/profiles.README.txt
- Copy [web-root]/themes/README.txt from assets/scaffold/files/themes.README.txt
* Homepage: https://www.drupal.org/project/drupal
* Support:
* docs: https://www.drupal.org/docs/user_guide/en/index.html
* chat: https://www.drupal.org/node/314178
Congratulations, you’ve installed the Drupal codebase
from the drupal/recommended-project template!
Next steps:
* Install the site: https://www.drupal.org/docs/8/install
* Read the user guide: https://www.drupal.org/docs/user_guide/en/index.html
* Get support: https://www.drupal.org/support
* Get involved with the Drupal community:
https://www.drupal.org/getting-involved
* Remove the plugin that prints this message:
composer remove drupal/core-project-message
* Homepage: https://www.drupal.org/project/drupal
* Support:
* docs: https://www.drupal.org/docs/user_guide/en/index.html
* chat: https://www.drupal.org/node/314178
디렉터리 및 권한 추가 구성
명령줄에서 조금 더 작업합니다.
$ cd <drupal-dir>
$ doas chown -R www: ./web/{sites/default, modules, themes}
$ mkdir ./config
$ doas chown -R www: ./config
PHP-FPM
php74_fpm
데몬이 실행 중입니까? 그렇지 않은 경우 rcctl enable/start php74_fpm
를 사용하십시오. 내 과거 게시물:OpenBSD 6.4의 PHP-FPM 7.2
Heddi Nabbisen ・ 12월 13일 '18 ・ 2분 읽기
#php
#phpfpm
#httpd
#openbsd
편물
흐름을 활성화하도록 웹 서버를 설정합니다.
Client --(request)--> Web (httpd) --> Gateway (PHP-FPM) --> App = Drupal
OpenBSDhttpd의 구성 파일은 /etc/httpd.conf입니다.
$ doas nvim /etc/httpd.conf
아래 정의를 추가합니다(필요에 따라 추가).
server "<fqdn>" {
listen on $ext_addr tls port 443
tls {
certificate "/etc/ssl/<fqdn>.pem"
key "/etc/ssl/private/<fqdn>.key"
}
log {
access "<fqdn>-access.log"
error "<fqdn>-error.log"
}
root "/<drupal-dir>/web" # (with chroot)
directory index index.php
location "/*.php" {
fastcgi socket "/run/php-fpm.sock"
}
location "/*.php[/?]*" {
fastcgi socket "/run/php-fpm.sock"
}
location match "/[^\.]+/?$" {
fastcgi socket "/run/php-fpm.sock"
request rewrite "/index.php/%1"
}
}
root
는 /web
로 끝나야 합니다.설정을 로드합니다.
$ doas rcctl restart httpd
웹 설치 프로그램
웹 브라우저를 사용하여 https://
아래와 같이 메시지를 따르십시오.
언어
설치 프로필
데이터베이스 구성
사이트 구성
완전한
그 이후로 사이트를 관리하기 위해 시도했습니다. Drupal 9과 잘 어울린다고 생각합니다. 따라서 지금까지는 너무 좋습니다🙂
Reference
이 문제에 관하여(OpenBSD에서 Composer가 포함된 Drupal 9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nabbisen/drupal-9-with-composer-on-openbsd-4lca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)