Deploy Angular 2 to Apache Server

后端 未结 8 1980
半阙折子戏
半阙折子戏 2020-12-07 16:47

I want to deploy an Angular 2 application on an Apache server. I\'ve read various guides like this and this but none of them is working. I have npm and ng

相关标签:
8条回答
  • 2020-12-07 17:50

    1) Change base tag in index.html file

    <base href="./">
    

    2) Build Project:

    ng build --prod --base-href /myproject/
    

    3) Add your dist files in "/usr/local/apache2/htdocs/myproject/"

    4)On Apache Server 2.4 (httpd) In File: /usr/local/apache2/conf/httpd.conf setup "FallbackResource"

    <Directory "/usr/local/apache2/htdocs">
       ...
       FallbackResource /myproject/index.html
    </Directory>
    

    full file "/usr/local/apache2/conf/httpd.conf":

    ServerRoot "/usr/local/apache2"
    
    Listen 80
    
    LoadModule mpm_event_module modules/mod_mpm_event.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authn_core_module modules/mod_authn_core.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule authz_core_module modules/mod_authz_core.so
    LoadModule access_compat_module modules/mod_access_compat.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule reqtimeout_module modules/mod_reqtimeout.so
    LoadModule filter_module modules/mod_filter.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule env_module modules/mod_env.so
    LoadModule headers_module modules/mod_headers.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule version_module modules/mod_version.so
    
    LoadModule unixd_module modules/mod_unixd.so
    LoadModule status_module modules/mod_status.so
    LoadModule autoindex_module modules/mod_autoindex.so
    
    <IfModule !mpm_prefork_module>
        #LoadModule cgid_module modules/mod_cgid.so
    </IfModule>
    <IfModule mpm_prefork_module>
        #LoadModule cgi_module modules/mod_cgi.so
    </IfModule>
    
    LoadModule dir_module modules/mod_dir.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule rewrite_module modules/mod_rewrite.so
    
    <IfModule unixd_module>
    User daemon
    Group daemon
    
    </IfModule>
    ServerAdmin you@example.com
    
    <Directory />
        AllowOverride none
        Require all denied
    </Directory>
    
    DocumentRoot "/usr/local/apache2/htdocs"
    <Directory "/usr/local/apache2/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        FallbackResource /myproject/index.html
    </Directory>
    
    <IfModule dir_module>
        DirectoryIndex index.html
    </IfModule>
    
    <Files ".ht*">
        Require all denied
    </Files>
    
    ErrorLog /proc/self/fd/2
    
    LogLevel warn
    
    <IfModule log_config_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
    
        <IfModule logio_module>
          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
        </IfModule>
    
        CustomLog /proc/self/fd/1 common
    
    </IfModule>
    
    <IfModule alias_module>
    
        ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
    
    </IfModule>
    
    <IfModule cgid_module>
    </IfModule>
    
    
    <Directory "/usr/local/apache2/cgi-bin">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
    
    <IfModule headers_module>
        RequestHeader unset Proxy early
    </IfModule>
    
    <IfModule mime_module>
        TypesConfig conf/mime.types
    
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
    
    </IfModule>
    
    <IfModule proxy_html_module>
    Include conf/extra/proxy-html.conf
    </IfModule>
    
    <IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    </IfModule>
    
    0 讨论(0)
  • 2020-12-07 17:51

    I have create distribution directory as public. I have changed only virtual host setting of apache.

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName frontend.loc
        DocumentRoot /var/www/frontend/public
        <Directory "/var/www/frontend/public/">
            Options FollowSymLinks
            Allow from all
            AllowOverride All
            <IfModule mod_rewrite.c>
                    RewriteEngine on
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteRule ^(.*)$ index.html
            </IfModule>
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    </VirtualHost>
    

    ~

    0 讨论(0)
提交回复
热议问题