WordPress вместе с приложением Rails с Apache2 и пассажиром
вступление
Этот документ помогает запустить блог WordPress наряду с приложением Rails на одном и том же сервере и сделать его доступным/доступным через приложение Rails. В этом примере мы хотим запустить приложение Rails, которые наплечны через доменное имя www.dhanesh-example.com А также хотите запустить экземпляр WordPress, который доступен через/блог.
- Пользователь доступа к www.dhanesh-example.com или любые пути (кроме/блог/API), он будет ссылаться на приложение Rails
- Пользователь доступа к www.dhanesh-eample.com/blog Или любые пути внутри/Path Path Path его будут ссылаться на WordPress.
Шаги
- Новые или бегущие рельсы Путь проекта/var/www/html/rails_app
- Установите пассажирский драгоценный камень
- Установите Apache2 и пассажирский модуль
- Создать виртуальный хост для приложения Rails
- Скачать, извлекать и переименовать папку WordPress в блог
- Переместите папку блога в/var/www/html/блог и настройте наш экземпляр WordPress
- Создайте базу данных MySQL для нашего экземпляра WordPress
- Установите WP_HOME и WP_SITEURL WordPress Config в http://www.dhanesh-example.com/blog.
- Добавьте Gem ‘Rails-Reverse-Proxy’ на ваш драгоценный и запустить Bundle Установите, совершайте драгоценный и GEMFile.lock.
- Создать контроллер для обработки обратного прокси из рельсов к WordPress
- Создайте новый маршрут, который укажет путь доступа к/блогов на наш обратный прокси-контроллер.
ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ
Настроить рельсы, пассажирские, Apache2
Установите GEM PASSAGER GEM и продолжайте установить пассажирский модуль Apache2, запустив модуль Passenger-install-apache2. Следуйте любым инструкциям из Руководства по установке, пока все требования не соблюдаются.
Примечание. Не забывайте важную роль от руководства по установке, которое попросит вас загрузить пассажирский модуль в файле конфигурации Apache2/etc/apache2/apache2.conf
Создайте новый виртуальный хост, создав новый файл конфигурации в/etc/apache2/sites-available/dhanesh-example.conf папки. Используйте эту конфигурацию для виртуального хоста:
ServerName dhanesh-example.com ServerAlias www.dhanesh-example.com ServerAdmin dhanesh@example.com DocumentRoot /var/www/html/rails_app/current/public RailsEnv production ErrorLog /var/log/apache2/app-name/error.log CustomLog /var/log/apache2/app-name/production.log combined Options FollowSymLinks Require all granted
Конфигурация WordPress
Обновите wp-config.php set wp_home и wp_siteurl в http://www.dhanesh-example.com/blog Отказ
define('WP_SITEURL', 'http://dhanesh-example.com/blog'); define('WP_HOME', 'http://dhanesh-example.com/blog'); define('FS_METHOD', 'direct');
Настройка обратного прокси из рельсов до WordPress
Установить Rails-Reverse-Proxy Gem
Создайте контроллер, который будет обрабатывать обратный прокси из рельсов к WordPress. В моем примере название контроллера является WordPessController со следующими кодами:
# app/controllers/wordpress_controller.rb class WordPressController < ApplicationController include ReverseProxy::Controller def index reverse_proxy "http://dhanesh-example.com:80" do |config| config.on_missing do |code, response| redirect_to root_url and return end end end end
Вы могли бы изменить http://dhanesh-example.com:80 Часть с любым хостом и любым портом, где работает ваш экземпляр WordPress.
Далее необходимо добавить новый маршрут в конфигурацию/Route.rb, который будет указывать на любой запрос на/блог путь в нашем приложении Rails к нашему обратному прокси-контроллеру (WordPessController). Вот мой конфиг/маршруты .rb:
Rails.application.routes.draw do match 'blog' => 'wordpress#index', via: [:get, :post, :put, :patch, :delete] match 'blog/*path' => 'wordpress#index', via: [:get, :post, :put, :patch, :delete] get 'home/index' root to: 'home#index' end
Когда есть запрос к/блогом пути, наше приложение Rails укажет его на сервер Apache и ищут папку с именем Blog, поэтому нам нужно переименовать нашу папку WordPress в блоге.
Настройте виртуальный хост для WordPress
Отредактируйте ранее созданный файл конфигурации в папке dhanesh-example.conf. Добавьте следующие конфигурации к виртуальному хосту:
Alias /blog /var/www/html/blogAllow From all Options +Indexes AllowOverride all PassengerEnabled off
Перезапустите сервер Apache еще раз.
Контрольная работа
Dhanesh-example.com он будет отображать страницу Rails и попытаться получить доступ к Dhanesh-example.com/blog, он укажет блог WordPress
Пример Вход Vhost.
RailsEnv production ServerName dhanesh-example.com #ServerAlias www.dhanesh-example.com DocumentRoot "/var/www/html/rails_app/current/public" PassengerRuby /home/dhanesh/.rvm/gems/ruby-2.6.3/wrappers/ruby #DocumentRoot "/var/www/html" ErrorLog "/var/log/apache2/example.com/error.log" CustomLog "/var/log/apache2/example.com/access.log" common # Options All #DirectoryIndex maintenance.html AllowOverride All Order allow,deny Allow from all Alias /blog /var/www/html/blogOptions FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Order allow,deny Allow from all Options FollowSymLinks Order allow,deny Allow from all PassengerEnabled off #RewriteEngine on #RewriteRule index\.html index.php [NC,R] # Remove the www #RewriteCond %{HTTP_HOST} ^www.URL$ [NC] #RewriteRule ^(.*)$ http://URL/ [R=301,L] Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/dhanesh-example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/dhanesh-example.com/privkey.pem
Спасибо
Оригинал: «https://dev.to/dhanupreeth/wordpress-along-with-rails-app-with-apache2-and-passenger-1egd»