I am attempting to resolve an issue where a fresh install of Passenger on Ubuntu 26.04 will not launch due to issues with being unable to automatically compile native support.
Apache Version: 2.4.66
Passenger Version: 6.2.0
Ruby Version: 3.4.10
OS: Ubuntu 26.04
Architecture: aarch64 (VirtualBox machine on macOS host)
passenger-config validate-install returns no issues with the install.
The following appears in the Apache error logs when attempting to visit the URL of the Rails application after a fresh install of Passenger:
App 85312 output: [passenger_native_support.so] trying to compile for the current user (vagrant) and Ruby interpreter...
App 85312 output: (set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)
App 85312 output: /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:403:in 'Dir.mkdir': Read-only file system @ dir_s_mkdir - /home/vagrant/.passenger (Errno::EROFS)
App 85312 output: from /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:403:in 'FileUtils.fu_mkdir'
App 85312 output: from /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:381:in 'block (2 levels) in FileUtils.mkdir_p'
App 85312 output: from /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:379:in 'Array#reverse_each'
App 85312 output: from /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:379:in 'block in FileUtils.mkdir_p'
App 85312 output: from /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:371:in 'Array#each'
App 85312 output: from /usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/fileutils.rb:371:in 'FileUtils.mkdir_p'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:299:in 'PhusionPassenger::NativeSupportLoader#mkdir'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:377:in 'block in PhusionPassenger::NativeSupportLoader#try_directories'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:375:in 'Array#each'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:375:in 'Enumerable#each_with_index'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:375:in 'PhusionPassenger::NativeSupportLoader#try_directories'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:333:in 'PhusionPassenger::NativeSupportLoader#compile'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:219:in 'PhusionPassenger::NativeSupportLoader#compile_and_load'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:52:in 'PhusionPassenger::NativeSupportLoader#start'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/native_support.rb:448:in '<top (required)>'
App 85312 output: from <internal:/usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
App 85312 output: from <internal:/usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger.rb:245:in 'PhusionPassenger.require_passenger_lib'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger/preloader_shared_helpers.rb:30:in '<top (required)>'
App 85312 output: from <internal:/usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
App 85312 output: from <internal:/usr/share/rvm/rubies/ruby-3.4.10/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
App 85312 output: from /usr/lib/ruby/vendor_ruby/phusion_passenger.rb:245:in 'PhusionPassenger.require_passenger_lib'
App 85312 output: from /usr/share/passenger/helper-scripts/rack-preloader.rb:60:in 'PhusionPassenger::App.init_passenger'
App 85312 output: from /usr/share/passenger/helper-scripts/rack-preloader.rb:186:in '<module:App>'
App 85312 output: from /usr/share/passenger/helper-scripts/rack-preloader.rb:32:in '<module:PhusionPassenger>'
App 85312 output: from /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in '<main>'
[ E 2026-08-24 10:22:56.6730 84957/Ti age/Cor/App/Implementation.cpp:218 ]: Could not spawn process for application /var/www/data-store26: The application process exited prematurely.
Error ID: 558d6643
Error details saved to: /tmp/passenger-error-VHSuVa.html
[ E 2026-08-24 10:22:56.6735 84957/T9 age/Cor/Con/CheckoutSession.cpp:368 ]: [Client 1-2] Cannot checkout session because a spawning error occurred. The identifier of the error is 558d6643. Please see earlier logs for details about the error.
Of note, the Apache config is set to use the vagrant user with PassengerUserSwitching on:
# Passenger server configuration options
PassengerUserSwitching on
PassengerDefaultUser vagrant
PassengerMaxPoolSize 1
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName 192.168.10.100
# Rails server configuration
RailsEnv development
# Passenger virtual host configuration options
PassengerRuby /usr/share/rvm/rubies/ruby-3.4.10/bin/ruby
# Disable sendfile support because of virtualbox bug.
# See: https://www.vagrantup.com/docs/synced-folders/virtualbox.html
ServerSignature Off
TraceEnable Off
EnableSendfile Off
DocumentRoot /var/www/data-store26/public
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
I tried manually creating the requested resource and it continued to give permission issues for each nested directory and file it needed to create. The /home/vagrant directory has 750 permissions, which the vagrant user should have access to.
I was able to bypass the issue by manually running passenger-config build-native-support:
vagrant@vagrant:~$ passenger-config build-native-support
[passenger_native_support.so] trying to compile for the current user (vagrant) and Ruby interpreter...
(set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)
Compilation successful. The logs are here:
/tmp/passenger_native_support-1o8kax7.log
[passenger_native_support.so] successfully loaded.
This error was then resolved.
So I think there is something going on with permissions during this process that isn't allowing it to generate the necessary files to automate the build, but I'm still coming up short on what exactly it might be.
I am attempting to resolve an issue where a fresh install of Passenger on Ubuntu 26.04 will not launch due to issues with being unable to automatically compile native support.
Apache Version: 2.4.66
Passenger Version: 6.2.0
Ruby Version: 3.4.10
OS: Ubuntu 26.04
Architecture: aarch64 (VirtualBox machine on macOS host)
passenger-config validate-installreturns no issues with the install.The following appears in the Apache error logs when attempting to visit the URL of the Rails application after a fresh install of Passenger:
Of note, the Apache config is set to use the
vagrantuser withPassengerUserSwitching on:I tried manually creating the requested resource and it continued to give permission issues for each nested directory and file it needed to create. The
/home/vagrantdirectory has 750 permissions, which thevagrantuser should have access to.I was able to bypass the issue by manually running
passenger-config build-native-support:This error was then resolved.
So I think there is something going on with permissions during this process that isn't allowing it to generate the necessary files to automate the build, but I'm still coming up short on what exactly it might be.