2017-07-08 2 views
0

Es war ein 3. Tag Ich versuche, eine kleine PHP-App bereitzustellen. Wir bewegen unsere Apps, das sind 3 Rails Apps und 1 PHP auf den gleichen Server. Rails apps funktioniert gut. PHP nicht. Ich habe PHP-App nie wirklich bereitgestellt, also mache ich es durch Führungen. Bis jetzt habe ich folgende Situation: Wenn ich versuche, die PHP-App in einem Browser zu öffnen, sehe ich die Apache-Standardseite. Wenn ich die Seite aktualisiere, wird mir der Inhalt der Datei index.php angezeigt, aber als leerer Text. Aktualisieren Sie erneut - Standard-Apache-Seite und wieder - Inhalt der index.php.PHP App deploy Ubuntu 16.04 nginx Apache Einstellung

Meine Einstellungen:

nginx/sites-available/my.site

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 

root /var/www/my.site/httpdocs; 

# Add index.php to the list if you are using PHP 
index index.php index.html index.htm index.nginx-debian.html; 

server_name my.site www.my.site; 

location/{ 
    proxy_pass http://localhost:8000; 
    include /etc/nginx/proxy_params; 
} 

location ~* \.(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ { 
expires  30d; 
} 

location @proxy { 
    proxy_pass http://127.0.0.1:8000; 
    include /etc/nginx/proxy_params; 
} 
location ~* \.php$ { 
    proxy_pass http://127.0.0.1:8000; 
    include /etc/nginx/proxy_params; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 
} 
} 

apache2/sites-available/my.site

(in sites-enabled freigegeben)

ServerName my.site 
ServerAlias www.my.site 

ServerAdmin [email protected] 
DocumentRoot /var/www/my.site/httpdocs 

ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log combined 

apache2/ports.conf

NameVirtualHost 127.0.0.1:8000 
Listen 8000 

<IfModule ssl_module> 
    Listen 443 
</IfModule> 

<IfModule mod_gnutls.c> 
    Listen 443 
</IfModule> 

Auf der Arbeit in Tag ohne Idee ab, wie der Server zu beheben. Jeder Rat wird geschätzt.

+0

Kann ich wissen, warum Sie nginx als Proxy Apache verwenden? – Albert221

+0

@ Albert221 Ich habe keine richtige Antwort auf Sie. Ich begann gerade Google "Ubuntu PHP Apache deploy" und diese Führer kamen. Können Sie eine bessere Lösung anbieten? – alexxero

+0

Ich denke, dass Sie nicht verstehen, was Sie erreichen wollen.Nginx und Apache sind beide Webserver und PHP ist (sehr allgemein) ein Programm, das PHP-Code interpretiert. Du willst * normalerweise * weder nginx noch apache. Lesen Sie über diese beiden und wählen Sie die, die Ihren Anforderungen besser entspricht: https://www.digitalcean.com/community/tutorials/apache-vs-nginx-practical-considiarations – Albert221

Antwort

1

nginx Config

map $sent_http_content_type $expires { 
    default    off; 
    ~css     max; 
    ~javascript  max; 
    ~image    max; 
    ~font-woff  max; 
    ~video    max; 
    ~zip     max; 
    ~txt     max; 
    } 
expires     $expires; 

server { 
listen 80; 
    server_name exemple.com; 
    root /home/to/exemple.com; 
    index index.php index.html;    

gzip     on; 
gzip_min_length   128; 
gzip_http_version  1.1; 
gzip_buffers   128 32k; 
gzip_types 
    text/css 
    text/javascript 
    text/xml 
    text/plain 
    text/x-component 
    application/javascript 
    application/x-javascript 
    application/json 
    application/xml 
    application/rss+xml 
    application/atom+xml 
    font/truetype 
    font/opentype 
    application/vnd.ms-fontobject 
    image/svg+xml; 
gzip_static on;  
gzip_proxied   expired no-cache no-store private auth; 
gzip_disable   "msie6"; 
gzip_vary    on; 

location/{ 
    proxy_pass http://127.0.0.1:8000; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    } 
} 

Apache Config

php 7 mod

apt install libapache2-mod-php7.0 

php5 mod

apt install libapache2-mod-php 

Fügen Sie zum Beispiel php7.0 mod

a2enmod php7.0 

Virtual Config Apache

<VirtualHost *:8000> 
    ServerName exemple.com 
    DocumentRoot /home/to/exemple.com 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
    RewriteEngine On 
<Directory /home/to/exemple.com/> 
    php_admin_flag engine on 
    Options -ExecCGI -Indexes +FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 
</VirtualHost> 

Namevirtualhost 127.0.0.1:8000 in apache2.conf Paste entfernen Servername 127.0.0.1

systemctl restart apache2 
systemctl restart nginx 

Original-Beitrag apache2+nginx proxy

+0

Vielen Dank! Das hat geholfen – alexxero