Procházet zdrojové kódy

:wrench: add spring setup tools

Jeremy Zheng před 3 roky
rodič
revize
14da1e94db

+ 3 - 1
documents/development/SPRING.md

@@ -8,7 +8,9 @@ ssh -i YOUR_KEY YOUR_ID@YOUR_ID.spring.wikipali.org
 
 ## PHP 开发
 
-- `/workspace/YOUR_ID/info.php` => `https://YOUR_ID@YOUR_ID.spring.wikipali.org/info.php`
+- `~/www/htdocs/info.php` => `https://YOUR_ID.spring.wikipali.org/info.php`
+- 日志文件在 `~/www/logs/`
+- 其余参见[常见 PHP 设置](php/)
 
 ## 常用工具
 

+ 2 - 2
documents/development/php/README.md

@@ -4,9 +4,9 @@
 
 - 修改 `/etc/nginx/sites-enabled/default`, root 改成`/workspace/YOUR_PROJECT`
 
-## 常见 php-web 设置
+## 常见 PHP 设置
 
-- 文件写入权限
+- PHP-WEB 文件写入权限不足
 
 ```bash
 # for folder

+ 65 - 0
scripts/spring/setup.sh

@@ -0,0 +1,65 @@
+#!/bin/bash
+
+set -e
+
+echo 'setup zsh'
+if [ ! -d "$HOME/.oh-my-zsh" ]
+then
+    git clone https://github.com/ohmyzsh/ohmyzsh.git $HOME/.oh-my-zsh
+fi
+if [ ! -f "$HOME/.zshrc" ]
+then
+    cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc
+    echo 'source $HOME/.profile' >> $HOME/.zshrc
+fi
+
+echo 'setup nodejs'
+if [ ! -d "$HOME/.nvm" ]
+then
+    git clone https://github.com/nvm-sh/nvm.git $HOME/.nvm
+
+    cat >> $HOME/.profile <<EOF
+export NVM_DIR="\$HOME/.nvm"
+[ -s "\$NVM_DIR/nvm.sh" ] && \. "\$NVM_DIR/nvm.sh"
+[ -s "\$NVM_DIR/bash_completion" ] && \. "\$NVM_DIR/bash_completion" 
+EOF
+    echo 'export PATH=$HOME/.yarn/bin:$PATH' >> $HOME/.profile
+fi
+
+cd $HOME/.nvm
+git checkout v0.39.1
+. $HOME/.nvm/nvm.sh
+
+if ! [ -x "$(command -v yarn)" ]
+then
+    nvm install node 
+    nvm use node 
+    npm install yarn -g
+fi
+
+echo 'setup php'
+if [ ! -f "$HOME/.local/bin/composer" ]
+then
+    mkdir -p  $HOME/.local/bin
+    wget -O $HOME/.local/bin/composer https://getcomposer.org/installer
+    chmod +x $HOME/.local/bin/composer
+fi
+
+echo 'setup ssh'
+if [ ! -d $HOME/.ssh ]
+then
+    mkdir $HOME/.ssh
+    chmod 700 $HOME/.ssh
+    cat /tmp/$USER.pub > $HOME/.ssh/authorized_keys
+fi
+
+
+echo 'setup workspace'
+if [ ! -L $HOME/www ]
+then
+    ln -sf /workspace/www/$USER $HOME/www
+fi
+
+echo "done."
+
+exit 0

+ 68 - 0
scripts/spring/user.sh

@@ -0,0 +1,68 @@
+#!/bin/bash
+
+set -e
+
+if [ "$#" -ne 1 ]
+then
+    echo "Usage: $0 USER"
+    exit 1
+fi
+
+apt -y install zsh git zip unzip bzip2 curl wget vim pwgen
+
+if id "$1" &>/dev/null
+then
+    echo "user $1 found"
+else
+    echo "create user $1"
+    useradd -m -d /workspace/home/$1 -s /bin/zsh $1
+fi
+
+echo 'reset password'
+passwd -l $1
+echo "$1:$(pwgen 32 1)" | chpasswd
+
+echo 'setup nginx'
+
+if [ ! -d /workspace/www/$1/htdocs ]
+then
+    mkdir -p /workspace/www/$1/htdocs
+    chown $1:$1 /workspace/www/$1/htdocs
+fi
+
+if [ ! -d /workspace/www/$1/logs ]
+then
+    mkdir -p /workspace/www/$1/logs
+    chown www-data:www-data /workspace/www/$1/logs
+fi
+
+if [ ! -f /workspace/www/$1/nginx.conf ]
+then
+    cat > /workspace/www/$1/nginx.conf <<EOF
+server {
+  listen 80;
+  root /workspace/www/$1/htdocs;
+  index index.html index.php;
+  server_name $1.spring.wikipali.org;
+
+  access_log /workspace/www/$1/logs/access.org;
+  error_log /workspace/www/$1/logs/error.log;
+
+  location / {
+    try_files \$uri \$uri/ =404;
+  }
+  
+  location ~ \.php$ {
+    include snippets/fastcgi-php.conf;
+    fastcgi_pass unix:/run/php/php-fpm.sock;
+  }
+}
+EOF
+
+ln -sf /workspace/www/$1/nginx.conf /etc/nginx/sites-enabled/$1.spring.wikipali.org.conf
+
+fi
+
+echo "done($1)."
+
+exit 0