ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### 介绍 walle:简单说明一下,是一个项目部署系统,非常方便,基本是一键上线,回滚,可以去官网详细了解,[官网](http://www.walle-web.io/)。 ### 安装([官网详细安装教程](http://www.walle-web.io/docs/installation.html)) #### 1.代码检出 ~~~ mkdir -p /data/www/walle-web && cd /data/www/walle-web # 新建目录 git clone git@github.com:meolu/walle-web.git # 代码检出 ~~~ #### 2.设置mysql连接 ~~~ vi config/local.php +14 'db' => [ 'dsn' => 'mysql:host=127.0.0.1;dbname=walle', # 新建数据库walle 'username' => 'username', # 连接的用户名 'password' => 'password', # 连接的密码 ], ~~~ #### 3.安装composer,如果已安装跳过 ~~~ curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer # PATH目录 ~~~ #### 4.安装vendor ~~~ cd walle-web composer install --prefer-dist --no-dev --optimize-autoloader -vvvv ~~~ 安装速度慢或失败,可直接下载vendor([链接](https://pan.baidu.com/s/1kU6gdZD))解压到项目根目录 #### 5.初始化项目 ~~~ cd walle-web ./yii walle/setup # 需要你的yes ~~~ #### 6.配置nginx **凡是在第7步刷新页面看到50x均是前5步安装不完整,自行检查 凡是在第7步刷新页面看到404均是nginx配置不当,自行检查** 官网说的50X 404 这个地方最好还是去看看访问日志,我搭建系统的时候一切都没有问题,好像是PHP配置有错,所以最好去看看nginx的访问日志 *** 配置nginx/apache的webroot指向walle-web/web ~~~ server { listen 80; server_name walle.compony.com; # 改你的host root /the/dir/of/walle-web/web; # 根目录为web index index.php; # 建议放内网 # allow 192.168.0.0/24; # deny all; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ~~~ 安装完成!!! ### 配置宿主机和目标机(重点) 先放一个原著者回答的知乎([链接](https://www.zhihu.com/question/37879752/answer/87865519)) #### 相关概念 *** **宿主机**:walle服务安装所在的机器 **目标机**:代码要分发到的机群 **ssh-key信任**:可免密码登录,一个机器的一个用户与一个机器的一个用户 *** #### 建立ssh-key登陆 ##### 1.查找php进程用户 通过ssh-key来建立信任(一般为RSA) 确认宿主机的php进程用户: ~~~ vi php-fpm.conf user = php-user # 看下用的是哪个用户 ps aux|grep php-fpm # 也是可以的 ~~~ ##### 2.获取宿主机的php进程用户php-user的ssh-key ~~~ su - php-user cat ~/.ssh/id_rsa.pub ~~~ 可能会出现的问题: ###### 1.su - php-user的时候可能会出现拒绝登陆 ![](https://box.kancloud.cn/fb69a74fe375ab1b87c2fbd79ff008bf_331x25.png) 需要修改 /etc/passwd文件中对应用户的登陆改为下图 ![](https://box.kancloud.cn/1a45bd0e6faf82ea6c91e7377ba10622_457x50.png) ###### 2.可能没有id_rsa.pub,所以需要创建 `ssh-keygen -t rsa ` Note: -t 的意思是选择kye的type。分别有 RSA 和 DSA 两种。具体请自行百度 直接一直回车 最后你的私钥被放在了~/.ssh/id_rsa 这个文件里,而公钥被放在~/.ssh/id_rsa.pub 这个文件里。 ##### 2.添加ssh-key到目标机器和git私钥中 把 id_rsa.pub 中的ssh-key复制,粘贴到gitlab的ssh-key列表中,并且加入所有目标机群指定用户(题主的为:ubuntu,假定默认为www)的~/.ssh/authorized_keys中 ##### 3.最重要的,最重要,最重要的事来了 出现这两种问题的原因是:~.ssh文件夹所给的权限太大 ![](https://box.kancloud.cn/090b8fa30d3dd5fcf249b21e3224e050_504x150.png) ![](https://box.kancloud.cn/a25643f4bddfd50a4cf9eaec98a53849_441x33.png) 在服务器上更改权限(必须) chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ##### 4. 自行测试3是否完成通过 git clone ssh-git-url # 测试宿主机与gitlab是否添加信任 ssh www@12.34.56.78 # 测试宿主机与目标机12.34.56.78是否添加信任 上面1-4如无问题,即可快速配置一个项目,并检测项目可用性。如果出现以下问题则可能是因为ssh-key信任没添加好。