<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>shrekuu (Bond)</title>
    <link>https://ruby-china.org/shrekuu</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Rails 从入门到入门</title>
      <description>&lt;p&gt;手痒痒，入门一点点 rails. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;最终代码放这 &lt;a href="https://github.com/shrekuu/try-ruby-on-rails" rel="nofollow" target="_blank"&gt;https://github.com/shrekuu/try-ruby-on-rails&lt;/a&gt; 改天继续耍 &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong style="color:red;"&gt;应是未能一开始就使用 RVM, 才导致后面有更多问题，大家不要学我，一定要直接使用 RVM, 就像用 Node.js 时一定要使用 NVM 一样重要，切记切记！&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="安装 Rails"&gt;安装 Rails&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;ruby &lt;span class="nt"&gt;--version&lt;/span&gt;

ruby 2.6.10p210 &lt;span class="o"&gt;(&lt;/span&gt;2022-04-12 revision 67958&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;universal.arm64e-darwin22]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;嚯有旧的，装个新的吧。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew update
brew &lt;span class="nb"&gt;install &lt;/span&gt;ruby
ruby &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改源&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.zshrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看看版本&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ruby &lt;span class="nt"&gt;--version&lt;/span&gt;

ruby 3.2.2 &lt;span class="o"&gt;(&lt;/span&gt;2023-03-30 revision e51014f9c0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;arm64-darwin22]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;嚯
看看官方文档，&lt;a href="https://guides.rubyonrails.org/getting_started.html" rel="nofollow" target="_blank"&gt;https://guides.rubyonrails.org/getting_started.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;装 rails&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;rails
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;咋卡住不动，换源，还有个 bundle 啥一起换了，&lt;a href="https://mirrors.tuna.tsinghua.edu.cn/help/rubygems/" rel="nofollow" target="_blank"&gt;https://mirrors.tuna.tsinghua.edu.cn/help/rubygems/&lt;/a&gt;&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem sources &lt;span class="nt"&gt;--add&lt;/span&gt; https://mirrors.tuna.tsinghua.edu.cn/rubygems/ &lt;span class="nt"&gt;--remove&lt;/span&gt; https://rubygems.org/
gem sources &lt;span class="nt"&gt;-l&lt;/span&gt;
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;rails

Fetching webrick-1.8.1.gem
Fetching nokogiri-1.16.0-arm64-darwin.gem
Fetching zeitwerk-2.6.12.gem
Fetching racc-1.7.3.gem
Fetching rack-3.0.8.gem
...
41 gems installed

A new release of RubyGems is available: 3.4.10 → 3.5.3!
Run &lt;span class="sb"&gt;`&lt;/span&gt;gem update &lt;span class="nt"&gt;--system&lt;/span&gt; 3.5.3&lt;span class="sb"&gt;`&lt;/span&gt; to update your installation.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;装好了，巴适，看看版本，gem 太旧了，更新一下&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem update &lt;span class="nt"&gt;--system&lt;/span&gt; 3.5.3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看看 rails 版本&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rails &lt;span class="nt"&gt;--version&lt;/span&gt;

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin22/rbconfig.rb:21: warning: Insecure world writable &lt;span class="nb"&gt;dir&lt;/span&gt; /Users/bond/.composer &lt;span class="k"&gt;in &lt;/span&gt;PATH, mode 040777
Rails is not currently installed on this system. To get the latest version, simply &lt;span class="nb"&gt;type&lt;/span&gt;:

    &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;rails

You can &lt;span class="k"&gt;then &lt;/span&gt;rerun your &lt;span class="s2"&gt;"rails"&lt;/span&gt; command.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;咦，逗我玩？你管别的目录干啥？闲得慌？算了还是收拾一下&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;go-w ~/.composer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再看一下版本&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh
rails --version
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;过份了啊，你都知道你装了你咋还骗人呢，真是，查半天说要重启终端，嗐，哪有这道理。咋写的代码这是。&lt;/p&gt;

&lt;p&gt;好，可以正常看处版本了&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rails &lt;span class="nt"&gt;--version&lt;/span&gt;
Rails 7.1.2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;好，我已经精通了 Ruby/Rails 在 Mac 上的安装了。&lt;/p&gt;
&lt;h2 id="创建一个新的 rails 项目"&gt;创建一个新的 rails 项目&lt;/h2&gt;
&lt;p&gt;建！嚯，报一推错&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rails new blog

...
         run  bundle binstubs bundler
/opt/homebrew/opt/ruby/bin/ruby: No such file or directory &lt;span class="nt"&gt;--&lt;/span&gt; /opt/homebrew/Cellar/ruby/3.2.2_1/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/exe/bundle &lt;span class="o"&gt;(&lt;/span&gt;LoadError&lt;span class="o"&gt;)&lt;/span&gt;
       rails  importmap:install
Could not find gem &lt;span class="s1"&gt;'sprockets-rails'&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;locally installed gems.
Run &lt;span class="sb"&gt;`&lt;/span&gt;bundle &lt;span class="nb"&gt;install&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt; to &lt;span class="nb"&gt;install &lt;/span&gt;missing gems.
       rails  turbo:install stimulus:install
Could not find gem &lt;span class="s1"&gt;'sprockets-rails'&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;locally installed gems.
Run &lt;span class="sb"&gt;`&lt;/span&gt;bundle &lt;span class="nb"&gt;install&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt; to &lt;span class="nb"&gt;install &lt;/span&gt;missing gems.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;是要拿 gem 再安装一下 bundler? 整&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;bundler

Fetching bundler-2.5.3.gem
Successfully installed bundler-2.5.3
Parsing documentation &lt;span class="k"&gt;for &lt;/span&gt;bundler-2.5.3
Installing ri documentation &lt;span class="k"&gt;for &lt;/span&gt;bundler-2.5.3
Done installing documentation &lt;span class="k"&gt;for &lt;/span&gt;bundler after 0 seconds
1 gem installed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;好了，删了刚创建的半截项目，重新建&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rails new blog

create
create  README.md
create  Rakefile
create  .ruby-vers
      ...
run  bundle &lt;span class="nb"&gt;install
&lt;/span&gt;Fetching &lt;span class="nb"&gt;source &lt;/span&gt;index from https://mirrors.tuna.tsinghua.edu.cn/rubygems/
Resolving dependencies...
...卡半天中, 卡了有 3 分钟以上罢...

Bundle &lt;span class="nb"&gt;complete&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt; 15 Gemfile dependencies, 84 gems now installed.
Use &lt;span class="sb"&gt;`&lt;/span&gt;bundle info &lt;span class="o"&gt;[&lt;/span&gt;gemname]&lt;span class="sb"&gt;`&lt;/span&gt; to see where a bundled gem is installed.
         run  bundle lock &lt;span class="nt"&gt;--add-platform&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;x86_64-linux
Writing lockfile to /Users/bond/repos/blog/Gemfile.lock
         run  bundle lock &lt;span class="nt"&gt;--add-platform&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;aarch64-linux
Writing lockfile to /Users/bond/repos/blog/Gemfile.lock
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;装好了，耶~ 跑一下看&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;blog
rails server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问一下，&lt;a href="http://127.0.0.1:3000/" rel="nofollow" target="_blank"&gt;http://127.0.0.1:3000/&lt;/a&gt;  耶~&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/shrekuu/057170af-5113-4fbd-aec8-560e3e93740a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;用 &lt;a href="https://github.com/wg/wrk" rel="nofollow" target="_blank" title=""&gt;wrk&lt;/a&gt; 跑个分~&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wrk &lt;span class="nt"&gt;-d10s&lt;/span&gt; http://127.0.0.1:3000/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/shrekuu/50ede480-6604-4414-93bc-a630a338f2b5.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;不会吧，我电脑 M1 Pro 嘛，赶紧启动个 Laravel 项目看看那个状态，&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer create-project laravel/laravel try-laravel-10
...
wrk &lt;span class="nt"&gt;-d10s&lt;/span&gt; http://try-laravel-10.test
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;怎么肥四，没 Laravel 快？
&lt;img src="https://l.ruby-china.com/photo/shrekuu/3dcd24bb-b24b-43c2-9eeb-097a6eb6366a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;还是也配置到 Nginx 上来吧，看来要装个 passenger
看来一开始应先装 rvm, [摔]&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="se"&gt;\c&lt;/span&gt;url &lt;span class="nt"&gt;-sSL&lt;/span&gt; https://get.rvm.io | bash
rvm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"ruby-3.2.2"&lt;/span&gt; &lt;span class="nt"&gt;--with-openssl-dir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;brew &lt;span class="nt"&gt;--prefix&lt;/span&gt; openssl&lt;span class="sb"&gt;`&lt;/span&gt;

Required ruby-3.2.2 is not installed.
To &lt;span class="nb"&gt;install &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;: &lt;span class="s1"&gt;'rvm install "ruby-3.2.2"'&lt;/span&gt;
Checking requirements &lt;span class="k"&gt;for &lt;/span&gt;osx.
Certificates bundle &lt;span class="s1"&gt;'/opt/homebrew/etc/openssl@1.1/cert.pem'&lt;/span&gt; is already up to date.
Requirements installation successful.
Installing Ruby from &lt;span class="nb"&gt;source &lt;/span&gt;to: /Users/bond/.rvm/rubies/ruby-3.2.2, this may take a &lt;span class="k"&gt;while &lt;/span&gt;depending on your cpu&lt;span class="o"&gt;(&lt;/span&gt;s&lt;span class="o"&gt;)&lt;/span&gt;...
ruby-3.2.2 - &lt;span class="c"&gt;#downloading ruby-3.2.2, this may take a while depending on your connection...&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#extracting ruby-3.2.2 to /Users/bond/.rvm/src/ruby-3.2.2.....&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#autogen.sh.&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#configuring....................................................................&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#post-configuration.&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#compiling....................................................................................................&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#installing...............&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#making binaries executable...&lt;/span&gt;
Installed rubygems 3.4.10 is newer than 3.0.9 provided with installed ruby, skipping installation, use &lt;span class="nt"&gt;--force&lt;/span&gt; to force installation.
ruby-3.2.2 - &lt;span class="c"&gt;#gemset created /Users/bond/.rvm/gems/ruby-3.2.2@global&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#importing gemset /Users/bond/.rvm/gemsets/global.gems................................................................&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#generating global wrappers........&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#gemset created /Users/bond/.rvm/gems/ruby-3.2.2&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#importing gemsetfile /Users/bond/.rvm/gemsets/default.gems evaluated to empty gem list&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#generating default wrappers........&lt;/span&gt;
ruby-3.2.2 - &lt;span class="c"&gt;#adjusting #shebangs for (gem irb erb ri rdoc testrb rake).&lt;/span&gt;
Install of ruby-3.2.2 - &lt;span class="c"&gt;#complete&lt;/span&gt;
Ruby was built without documentation, to build it run: rvm docs generate-ri
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;慢死了，终于装好了，切换过来，从 ~/.zshrc 注释掉刚加到 homebrew 装的 ruby 别名&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rvm &lt;span class="nt"&gt;--default&lt;/span&gt; use 3.2.2
ruby &lt;span class="nt"&gt;--version&lt;/span&gt;

ruby 3.2.2 &lt;span class="o"&gt;(&lt;/span&gt;2023-03-30 revision e51014f9c0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;arm64-darwin22]

which ruby

/Users/bond/.rvm/rubies/ruby-3.2.2/bin/ruby
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;shufule~ 装 passenger, 不知道干啥的，可能像 php-fpm 一样？&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;passenger

Fetching rack-3.0.8.gem
Fetching passenger-6.0.19.gem
Successfully installed rack-3.0.8
Building native extensions. This could take a &lt;span class="k"&gt;while&lt;/span&gt;...
Successfully installed passenger-6.0.19
Parsing documentation &lt;span class="k"&gt;for &lt;/span&gt;rack-3.0.8
Installing ri documentation &lt;span class="k"&gt;for &lt;/span&gt;rack-3.0.8
Parsing documentation &lt;span class="k"&gt;for &lt;/span&gt;passenger-6.0.19
Installing ri documentation &lt;span class="k"&gt;for &lt;/span&gt;passenger-6.0.19
Done installing documentation &lt;span class="k"&gt;for &lt;/span&gt;rack, passenger after 24 seconds
2 gems installed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;装好了，大约用了一万年，再重装下 nginx&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;nginx &lt;span class="nt"&gt;--with-passenger&lt;/span&gt;

Error: invalid option: &lt;span class="nt"&gt;--with-passenger&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;好家伙你几个意思，好吧，你改了。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;passenger
brew info passenger

...
To activate Phusion Passenger &lt;span class="k"&gt;for &lt;/span&gt;Nginx, run:
  brew &lt;span class="nb"&gt;install &lt;/span&gt;nginx
And add the following to /opt/homebrew/etc/nginx/nginx.conf at the top scope &lt;span class="o"&gt;(&lt;/span&gt;outside http&lt;span class="o"&gt;{})&lt;/span&gt;:
  load_module /opt/homebrew/opt/passenger/libexec/modules/ngx_http_passenger_module.so&lt;span class="p"&gt;;&lt;/span&gt;
And add the following to /opt/homebrew/etc/nginx/nginx.conf &lt;span class="k"&gt;in &lt;/span&gt;the http scope:
  passenger_root /opt/homebrew/opt/passenger/libexec/src/ruby_supportlib/phusion_passenger/locations.ini&lt;span class="p"&gt;;&lt;/span&gt;
  passenger_ruby /usr/bin/ruby&lt;span class="p"&gt;;&lt;/span&gt;

To activate Phusion Passenger &lt;span class="k"&gt;for &lt;/span&gt;Apache, create /etc/apache2/other/passenger.conf:
  LoadModule passenger_module /opt/homebrew/opt/passenger/libexec/buildout/apache2/mod_passenger.so
  PassengerRoot /opt/homebrew/opt/passenger/libexec/src/ruby_supportlib/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby
&lt;span class="o"&gt;==&amp;gt;&lt;/span&gt; Analytics
&lt;span class="nb"&gt;install&lt;/span&gt;: 108 &lt;span class="o"&gt;(&lt;/span&gt;30 days&lt;span class="o"&gt;)&lt;/span&gt;, 434 &lt;span class="o"&gt;(&lt;/span&gt;90 days&lt;span class="o"&gt;)&lt;/span&gt;, 1,532 &lt;span class="o"&gt;(&lt;/span&gt;365 days&lt;span class="o"&gt;)&lt;/span&gt;
install-on-request: 106 &lt;span class="o"&gt;(&lt;/span&gt;30 days&lt;span class="o"&gt;)&lt;/span&gt;, 426 &lt;span class="o"&gt;(&lt;/span&gt;90 days&lt;span class="o"&gt;)&lt;/span&gt;, 1,497 &lt;span class="o"&gt;(&lt;/span&gt;365 days&lt;span class="o"&gt;)&lt;/span&gt;
build-error: 0 &lt;span class="o"&gt;(&lt;/span&gt;30 days&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;仔细查看上面的 info, 按说明，开始配置 nginx.&lt;/p&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="c1"&gt;#user  nobody;&lt;/span&gt;
&lt;span class="k"&gt;user&lt;/span&gt; &lt;span class="s"&gt;bond&lt;/span&gt; &lt;span class="s"&gt;staff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;worker_processes&lt;/span&gt;  &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;#error_log  logs/error.log;&lt;/span&gt;
&lt;span class="c1"&gt;#error_log  logs/error.log  notice;&lt;/span&gt;
&lt;span class="c1"&gt;#error_log  logs/error.log  info;&lt;/span&gt;

&lt;span class="c1"&gt;#pid        logs/nginx.pid;&lt;/span&gt;

&lt;span class="c1"&gt;# 看这里&lt;/span&gt;
&lt;span class="k"&gt;load_module&lt;/span&gt; &lt;span class="n"&gt;/opt/homebrew/opt/passenger/libexec/modules/ngx_http_passenger_module.so&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;events&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;worker_connections&lt;/span&gt;  &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;http&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;//&lt;/span&gt; &lt;span class="s"&gt;...&lt;/span&gt;

    &lt;span class="c1"&gt;# 看这里&lt;/span&gt;
    &lt;span class="s"&gt;passenger_root&lt;/span&gt; &lt;span class="n"&gt;/opt/homebrew/opt/passenger/libexec/src/ruby_supportlib/phusion_passenger/locations.ini&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;passenger_ruby&lt;/span&gt; &lt;span class="n"&gt;/usr/bin/ruby&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;include&lt;/span&gt; &lt;span class="s"&gt;servers/*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后是加个 vhost 文件，例如叫 `try-rails-7.conf&lt;/p&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 这是无效配置, 不要参考&lt;/span&gt;
&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;http2&lt;/span&gt; &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;try-rails-7.test&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;index&lt;/span&gt; &lt;span class="s"&gt;index.html&lt;/span&gt; &lt;span class="s"&gt;index.htm&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/Users/bond/repos/try-rails-7/public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;try_files&lt;/span&gt; &lt;span class="nv"&gt;$uri&lt;/span&gt; &lt;span class="nv"&gt;$uri&lt;/span&gt;&lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="n"&gt;/index.html?&lt;/span&gt;&lt;span class="nv"&gt;$query_string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kn"&gt;passenger_enabled&lt;/span&gt; &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;passenger_ruby&lt;/span&gt; &lt;span class="n"&gt;/Users/bond/.rvm/gems/ruby-3.2.2/wrappers/ruby&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/shrekuu/59102a69-3aa5-409c-8b0a-822777b3914a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;苍天哪，你给点面子吧，这都是些啥？这是你为了避免小白入门设的门槛吗？我******&lt;/p&gt;

&lt;p&gt;罢了，看看日志&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;App 58748 output: Error: The application encountered the following error: Could not find rails-7.1.2, sprockets-rails-3.4.2, sqlite3-1.7.0-
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那我重装下依赖？&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bundle &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;嚯，还自动给我跳到 https, 我本地可没配，搜索一番，还是在项目里关 (这个配置在 production.rb 里，目测根据后面 nginx 里配置应就指定使用 development.rb 配置了，这个应仅用于生产环境即可，本地开发不用改为 false)&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;force_ssl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打开页面还显示
&lt;code&gt;The page you were looking for doesn't exist.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Fine, 我创建个页面&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rails generate controller Greetings index --skip-routes
      create  app/controllers/greetings_controller.rb
      invoke  erb
      create    app/views/greetings
      create    app/views/greetings/index.html.erb
      invoke  test_unit
      create    test/cont   ollers/greetings_controller_test.rb
      invoke  helper
      create    app/helpers/greetings_helper.rb
      invoke    test_unit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Blocked hosts: try-rails-7.test&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;额，我要吐血了，把下面这行加到 development.rb 里 &lt;code&gt;Rails.application.configure do&lt;/code&gt; 下。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hosts&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;"try-rails-7.test"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/shrekuu/f82dcc17-be68-4d77-a706-adddad5e82e0.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;试试 hello world 页&lt;/p&gt;

&lt;p&gt;404? 蛤？404?&lt;/p&gt;

&lt;p&gt;一通捣鼓，最终看来还是 nginx 配置没写对，让 AI 帮写下配置&lt;/p&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;http2&lt;/span&gt; &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;try-rails-7.test&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;index&lt;/span&gt; &lt;span class="s"&gt;index.html&lt;/span&gt; &lt;span class="s"&gt;index.htm&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/Users/bond/repos/try-rails-7/public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;try_files&lt;/span&gt; &lt;span class="nv"&gt;$uri&lt;/span&gt; &lt;span class="s"&gt;@passenger&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="s"&gt;@passenger&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;passenger_enabled&lt;/span&gt; &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;passenger_app_env&lt;/span&gt; &lt;span class="s"&gt;development&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;passenger_ruby&lt;/span&gt; &lt;span class="n"&gt;/Users/bond/.rvm/gems/ruby-3.2.2/wrappers/ruby&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/shrekuu/6bcece1d-fcf8-4cff-9a6c-d51560c398bd.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;我心如止水。跑个分。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/shrekuu/65a13170-9901-4fb0-a85a-55804892b940.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="Troubleshooting"&gt;Troubleshooting&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/6192003/insecure-world-writable-dir-users-username-in-path-mode-040777-when-running-ru" rel="nofollow" target="_blank" title=""&gt;Insecure world writable dir /Users/username in PATH, mode 040777&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/19061774/cannot-load-such-file-bundler-setup-loaderror" rel="nofollow" target="_blank" title=""&gt;cannot load such file -- bundler/setup (LoadError)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/22174813/rails-application-localhost-automatically-redirecting-to-https" rel="nofollow" target="_blank" title=""&gt;Rails application (localhost) automatically redirecting to HTTPS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/53878453/upgraded-rails-to-6-getting-blocked-host-error" rel="nofollow" target="_blank" title=""&gt;Blocked hosts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考文档"&gt;参考文档&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官网 getting started 文档 &lt;a href="https://guides.rubyonrails.org/getting_started.html" rel="nofollow" target="_blank"&gt;https://guides.rubyonrails.org/getting_started.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;rubygem 源 &lt;a href="https://mirrors.tuna.tsinghua.edu.cn/help/rubygems/" rel="nofollow" target="_blank"&gt;https://mirrors.tuna.tsinghua.edu.cn/help/rubygems/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;nginx 配置

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codewithjason.com/add-rails-application-nginx-server/" rel="nofollow" target="_blank"&gt;https://www.codewithjason.com/add-rails-application-nginx-server/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.phusionpassenger.com/library/install/nginx/install/oss/osx/" rel="nofollow" target="_blank"&gt;https://www.phusionpassenger.com/library/install/nginx/install/oss/osx/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bacancytechnology.com/blog/deploy-ror-app-using-nginx" rel="nofollow" target="_blank"&gt;https://www.bacancytechnology.com/blog/deploy-ror-app-using-nginx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ruby 版本管理器 RVM

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://rvm.io/rvm/install" rel="nofollow" target="_blank"&gt;https://rvm.io/rvm/install&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rvm.io/rubies/default" rel="nofollow" target="_blank"&gt;https://rvm.io/rubies/default&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>shrekuu</author>
      <pubDate>Sat, 30 Dec 2023 22:41:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/43530</link>
      <guid>https://ruby-china.org/topics/43530</guid>
    </item>
  </channel>
</rss>
