{"id":1527,"date":"2022-05-10T01:27:52","date_gmt":"2022-05-09T17:27:52","guid":{"rendered":"https:\/\/fromideatocreation.com\/?p=600"},"modified":"2023-07-02T17:16:47","modified_gmt":"2023-07-02T09:16:47","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-ubuntu-20-04-%e4%b8%8a%e5%ae%89%e8%a3%9d-passenger","status":"publish","type":"post","link":"https:\/\/fromideatocreation.com\/?p=1527","title":{"rendered":"\u5982\u4f55\u5728 Ubuntu 20.04 \u4e0a\u5b89\u88dd Passenger"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u7b2c1\u6b65 \u2013 \u5b89\u88dd Passenger \u5957\u4ef6<\/h2>\n\n\n\n<p>\u9019\u4e9b\u547d\u4ee4\u5c07\u901a\u904e <code>Phusion<\/code> \u7684 <code>APT<\/code> \u5132\u5b58\u5eab\u5b89\u88dd <code>Passenger + Nginx<\/code> \u6a21\u7d44\u3002 \u6b64\u6642\uff0c\u6211\u5011\u5047\u8a2d\u60a8\u5df2\u7d93\u5f9e\u7cfb\u7d71\u5132\u5b58\u5eab\u4e2d\u5b89\u88dd\u4e86 <code>Nginx<\/code>\u3002 \u5982\u679c\u6c92\u6709\uff0c\u60a8\u61c9\u8a72\u5148\u53c3\u8003<a href=\"https:\/\/fromideatocreation.com\/archives\/576\" title=\"\u9019\u7bc7\u6587\u7ae0\u5b89\u88dd Nginx\">\u9019\u7bc7\u6587\u7ae0\u5b89\u88dd Nginx<\/a>\uff0c\u7136\u5f8c\u518d\u7e7c\u7e8c\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"># \u5b89\u88dd PGP \u91d1\u9470\u548c\u5c0d\u65bc AP \u7684 HTTPS\u652f\u63f4\n$ sudo apt-get install -y dirmngr gnupg\n$ sudo apt-key adv --keyserver hkp:\/\/keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7\n$ sudo apt-get install -y apt-transport-https ca-certificates\n\n# \u52a0\u5165 APT \u5132\u5b58\u5eab\n$ sudo sh -c 'echo deb https:\/\/oss-binaries.phusionpassenger.com\/apt\/passenger focal main &gt; \/etc\/apt\/sources.list.d\/passenger.list'\n$ sudo apt-get update\n\n# \u5b89\u88dd Passenger + Nginx \u6a21\u7d44\n$sudo apt-get install -y libnginx-mod-http-passenger<\/code><\/pre>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c2\u6b65 \u2013 \u555f\u7528 Passenger Nginx \u6a21\u7d44\u4e26\u91cd\u555f Nginx<\/h2>\n\n\n\n<p>\u78ba\u4fdd\u8a2d\u5b9a\u6587\u4ef6\u5c31\u5b9a\u4f4d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ if [ ! -f \/etc\/nginx\/modules-enabled\/50-mod-http-passenger.conf ]; then sudo ln -s \/usr\/share\/nginx\/modules-available\/mod-http-passenger.load \/etc\/nginx\/modules-enabled\/50-mod-http-passenger.conf ; fi\n$ sudo ls \/etc\/nginx\/conf.d\/mod-http-passenger.conf<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u5728 <code>\/etc\/nginx\/conf.d\/mod-http-passenger.conf<\/code> \u4e2d\u6c92\u6709\u770b\u5230\u6587\u4ef6\uff1b \u90a3\u9ebc\u60a8\u9700\u8981\u81ea\u5df1\u5efa\u7acb\u5b83\u4e26\u8a2d\u7f6e <code>passenger_ruby<\/code> \u548c <code>passenger_root<\/code> \u3002 \u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre title=\"\/etc\/nginx\/conf.d\/mod-http-passenger.conf\" class=\"wp-block-code\"><code lang=\"nginx\" class=\"language-nginx\">passenger_root \/usr\/lib\/ruby\/vendor_ruby\/phusion_passenger\/locations.ini;\npassenger_ruby \/usr\/bin\/passenger_free_ruby;<\/code><\/pre>\n\n\n\n<p>\u5b8c\u6210\u6b64\u6b65\u9a5f\u5f8c\uff0c\u91cd\u65b0\u555f\u52d5 Nginx\uff1a<\/p>\n\n\n\n<pre title=\"\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo service nginx restart<\/code><\/pre>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c3\u6b65 \u2013 \u78ba\u8a8d\u5b89\u88dd\u6210\u529f<\/h2>\n\n\n\n<p>\u5b89\u88dd\u5f8c\uff0c\u8acb\u57f7\u884c <code>sudo \/usr\/bin\/passenger-config validate-install<\/code> \u4f86\u9a57\u8b49\u5b89\u88dd\u3002 \u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo \/usr\/bin\/passenger-config validate-install\n * Checking whether this Phusion Passenger install is in PATH... \u2713\n * Checking whether there are no other Phusion Passenger installations... \u2713<\/code><\/pre>\n\n\n\n<p>\u6240\u6709\u6aa2\u67e5\u90fd\u61c9\u8a72\u901a\u904e\u3002\u5982\u679c\u6709\u4efb\u4f55\u6aa2\u67e5\u672a\u901a\u904e\uff0c\u8acb\u4f9d\u7167\u87a2\u5e55\u4e0a\u7684\u5efa\u8b70\u9032\u884c\u64cd\u4f5c\u3002<\/p>\n\n\n\n<p>\u6700\u5f8c\uff0c\u6aa2\u67e5 <code>Nginx<\/code> \u662f\u5426\u555f\u52d5\u4e86Passenger\u6838\u5fc3\u9032\u7a0b\u3002 \u904b\u884c <code>sudo \/usr\/sbin\/passenger-memory-stats<\/code>\u3002 \u60a8\u61c9\u8a72\u6703\u770b\u5230 <code>Nginx<\/code> \u8207 <code>Passenger<\/code> \u7a0b\u5e8f\u3002 \u4f8b\u5982<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo \/usr\/sbin\/passenger-memory-stats\nVersion: 5.0.8\nDate   : 2015-05-28 08:46:20 +0200\n...\n\n---------- Nginx processes ----------\nPID    PPID   VMSize   Private  Name\n-------------------------------------\n12443  4814   60.8 MB  0.2 MB   nginx: master process \/usr\/sbin\/nginx\n12538  12443  64.9 MB  5.0 MB   nginx: worker process\n### Processes: 3\n### Total private dirty RSS: 5.56 MB\n\n----- Passenger processes ------\nPID    VMSize    Private   Name\n--------------------------------\n12517  83.2 MB   0.6 MB    PassengerAgent watchdog\n12520  266.0 MB  3.4 MB    PassengerAgent server\n12531  149.5 MB  1.4 MB    PassengerAgent logger\n...<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u60a8\u6c92\u6709\u770b\u5230\u4efb\u4f55 Nginx \u6216Passenger \u7a0b\u5e8f\uff0c\u90a3\u9ebc\u60a8\u53ef\u80fd\u6709\u9047\u5230\u67d0\u7a2e\u5b89\u88dd\u6216\u8a2d\u5b9a\u554f\u984c\u3002 \u8acb\u53c3\u95b1\u5b98\u65b9\u7684<a href=\"https:\/\/www.phusionpassenger.com\/library\/admin\/nginx\/troubleshooting\/ruby\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"\u6545\u969c\u6392\u9664\u6307\u5357\">\u6545\u969c\u6392\u9664\u6307\u5357<\/a>\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e9b\u547d\u4ee4\u5c07\u901a\u904e Phusion \u7684 APT \u5132\u5b58\u5eab\u5b89\u88dd Passenger + Nginx \u6a21\u7d44\u3002 \u6b64\u6642\uff0c\u6211\u5011\u5047\u8a2d\u60a8\u5df2\u7d93\u5f9e\u7cfb\u7d71\u5132\u5b58\u5eab\u4e2d\u5b89\u88dd\u4e86 Nginx\u3002 \u5982\u679c\u6c92\u6709\uff0c\u60a8\u61c9\u8a72\u5148\u53c3\u8003\u9019\u7bc7\u6587\u7ae0\u5b89\u88dd Nginx\uff0c\u7136\u5f8c\u518d\u7e7c\u7e8c\u3002<\/p>\n","protected":false},"author":1,"featured_media":718,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"qubely_global_settings":"","qubely_interactions":"","inline_featured_image":false,"_ti_tpc_template_sync":false,"_ti_tpc_template_id":"","footnotes":""},"categories":[106,95],"tags":[114,115,113],"class_list":["post-1527","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-106","category-programming","tag-passenger","tag-phusion","tag-ubuntu"],"acf":[],"aioseo_notices":[],"qubely_featured_image_url":{"full":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"landscape":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"portraits":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",411,320,false],"thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",150,117,false],"medium":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",300,234,false],"medium_large":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"large":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"1536x1536":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"2048x2048":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"qubely_landscape":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"qubely_portrait":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",411,320,false],"qubely_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",128,100,false],"nazare_single_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_post_card_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",480,374,false],"nazare_widget_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",100,78,false],"nazare_widget_first_thumb":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",265,206,false],"nazare_el_banner_left":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_el_banner_right":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",560,436,false],"nazare_el_post_400x376":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",400,312,false],"nazare_el_post_520x460":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",520,405,false],"nazare_el_post_500x335":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",430,335,false],"nazare_el_post_500x300":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",385,300,false],"nazare_el_post_655x640":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_el_post_500x290":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",372,290,false],"nazare_el_post_416x278":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",357,278,false],"nazare_el_post_480x425":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",480,374,false],"nazare_el_post_635x640":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_el_post_305x177":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",227,177,false],"nazare_el_post_400x400":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",400,312,false],"nazare_el_post_400x360":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",400,312,false],"nazare_el_post_416x416":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",416,324,false],"nazare_el_post_485x430":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",485,378,false],"nazare_el_post_700x467":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_el_post_1000x581":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_post_1320x605":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_post_705x565":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"nazare_post_400x265":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",340,265,false],"nazare_el_post_1248x630":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"woocommerce_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",300,234,false],"woocommerce_single":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"woocommerce_gallery_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",100,78,false],"shop_catalog":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",300,234,false],"shop_single":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",565,440,false],"shop_thumbnail":["https:\/\/fromideatocreation.com\/wp-content\/uploads\/2023\/04\/about6.webp",100,78,false]},"qubely_author":{"display_name":"Wen","author_link":"https:\/\/fromideatocreation.com\/?author=1"},"qubely_comment":0,"qubely_category":"<a href=\"https:\/\/fromideatocreation.com\/?cat=106\" rel=\"category\">\u6559\u5b78<\/a> <a href=\"https:\/\/fromideatocreation.com\/?cat=95\" rel=\"category\">\u7a0b\u5f0f\u958b\u767c<\/a>","qubely_excerpt":"\u4e9b\u547d\u4ee4\u5c07\u901a\u904e Phusion \u7684 APT \u5132\u5b58\u5eab\u5b89\u88dd Passenger + Nginx \u6a21\u7d44\u3002 \u6b64\u6642\uff0c\u6211\u5011\u5047...","_links":{"self":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts\/1527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1527"}],"version-history":[{"count":1,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts\/1527\/revisions"}],"predecessor-version":[{"id":1704,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/posts\/1527\/revisions\/1704"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=\/wp\/v2\/media\/718"}],"wp:attachment":[{"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fromideatocreation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}