在Mac用Docker建置Ubuntu Server #drupal9安裝

先到Docker

Docker程式裝好後,就能使用終端機開始建置環境

# 下載映像檔
docker pull ubuntu

# 建立容器
docker run -d -it --name ubuntu -p 9000:80 ubuntu

# 登入ubuntu
docker exec -it ubuntu bin/bash

# 更新
apt update;apt dist-upgrade

# 安裝 webserver - nginx
apt install nginx
/etc/init.d/nginx start
沒意外打開瀏覽器 http://localhost:9000 就能看到網站,區網也能看到

# 安裝sql mysql
apt install mysql
usermod -d /var/lib/mysql/ mysql
/etc/init.d/mysql start
(如果沒改權限會遇到這個錯誤訊息"su: warning: cannot change directory to /nonexistent: No such file or directory")

# mysql建立密碼
mysql -u root

DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;

exit

# mysql建立資料庫
mysqladmin -u root -p create drupal9

vi ~/.my.cnf

~/.my.cnf
[client]
password = pwd

[client]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

# 安裝php及其他程式
apt install php php-fpm php-curl php-mysql php-mbstring php-gd php-xml php-apcu php-pear php-zip vim curl unzip git

# 清一下套件庫
apt remove apache2;apt autoremove;apt clean

# 安裝composer
curl -sS https://getcomposer.org/installer | php
( mv composer.phar /usr/bin/composer #也可以這樣做就好 )
mv composer.phar composer
mv composer ~/
alias composer='/usr/bin/php ~/composer'
composer self-update --1 (如果要換回去1.x版)

# 設定nginx conf
vi /etc/nginx/sites-enabled/drupal9

nginx的設定值可參考這裡 https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/ ; 路徑(/var/www/drupal9/web ) 及 php7.0-fpm.sock ( php7.4-fpm.sock) 修改成相對應的值
網域名稱則需對應本機的hosts檔加入 127.0.0.1  example.com ( Mac 放在 /etc/hosts ; Windows 放在C:\Windows\System32\drivers\etc\hosts )

# 安裝drupal9
/var/www/
composer create-project drupal/recommended-project drupal9
chown -R www-data:www-data drupal9/web/
打開瀏覽器輸入 http://example.com:9000 沒意外就會看到drupal9的安裝畫面
資料庫: drupal9 帳號: root 密碼: yourpassword

跑完安裝流程,如果不想看到錯誤提示,
vi /var/www/drupal9/web/sites/default/settings.php
$settings['trusted_host_patterns'] = [
  '^example\.com$',
];

# 安裝drush
composer require --dev drush/drush
alias drush='./vendor/bin/drush'
進入 /var/www/drupal9 即可使用 composer 及 drush 管理 drupal9

# 保留映像檔,可跨平台使用

# 目前有發現的問題
效能不好,不知是不是arm架構沒弄好

PS. 這不是正規的作法,簡單的方式直接用nginx php mysql的映像檔製作容器再串聯,不過由於我是要用composer及drush建置drupal9,不知道怎麼入手,所以才用這個笨方法

留言

熱門文章