Error with apache virtual host configuration for symfony project - apache2

I created the project using Symfony framework, and when I am runing build in server in prod or dev env runs ok, But now I move project to debian server, install apache and create virtual host. It shows only directory list and not starts the app. I think that is something wrong with my virual host configuration. I am using Apache/2.4.10 (Debian) Server, PHP 5.6.19-0+deb8u1 (cli).
Here is the code for virtual host:
<VirtualHost *:80>
ServerName mose
ServerAlias 10.5.0.62
DocumentRoot /var/www/mose/web
<Directory /var/www/mose/web/>
AllowOverride None
Require all granted
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeScript assets
# <Directory /var/www/mose>
# Options FollowSymlinks
# </Directory>
# optionally disable the RewriteEngine for the asset directories
# which will allow apache to simply reply with a 404 when files are
# not found instead of passing the request into the full symfony stack
<Directory /var/www/mose/web/bundles>
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
</Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>

The right answer was AllowOverride All from Dawid Sajdak. Tnx for help

Related

403 error through Apache2.4 Directory Alias: what's wrong?

I ask for some help to keep hairs on my head :D
More seriously, I tried a lot "solutions" found on different posts on different forums, without any result so I need a clean and fresh point of view...
So : I run a JEE application with Apache 2.4 and Tomcat 9 with mod_jk.
To avoid to store heavy content like video in my JEE webapp I created a directory on my server dedicated to some static content.
To do that I try to set a directory alias in my apache vhost, but I get 403 error.
You will find my vhost below, with an alias from /video to /etc/mondir/video (I tried with or without ending /)
I tried a lot of Directory directives without result
Apache2 owned the targeted directory trough www-data user
I also tried to declare the directory alias in etc/apache2/mods-available/alias.conf : not better.
I have no more idea and find no mode idea on the Internet.
Could you please give me some clue? help? advise?
Thank a lot !
<VirtualHost *:443>
ServerName mondomaine.com
ServerAlias www.mondomaine.com
ServerAdmin webmaster#localhost
#DocumentRoot /var/www
DocumentRoot /etc/mondir/
<Directory /etc/mondir/>
Options FollowSymLinks
AllowOverride None
</Directory>
#Add acces to static ressource in /etc/mondir
Alias "/video" "/etc/mondir/video"
Alias "/moncontext/video" "/etc/mondir/video"
<Directory "/etc/mondir/video">
#Options Indexes MultiViews FollowSymLinks
#AllowOverride None
#Order allow,deny
#Allow from all
#Options FollowSymlinks
#AllowOverride None
#Require all granted
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.mondomaine\.com
RewriteRule ^video/(.*) /video/$1 [L,QSA]
RewriteRule ^video(.*) /video/$1 [L,QSA]
RewriteRule ^moncontext/(.*) /moncontext/$1 [L,QSA]
RewriteRule ^moncontext(.*) /moncontext/$1 [L,QSA]
RewriteRule ^(.*) /moncontext/$1 [L,QSA]
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mondomaine.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mondomaine.com/privkey.pem
JkMount /moncontext/* ajp13_worker
</VirtualHost>
The good directive is "Require all granted"
But, above all, the problem and the solution is on mod_rewrite side.
By default, the rewrite doesnt reach the filesystem, only URI.
Rewrite rule must have the Pass Through option (PT flag) to be seen by the Dir Alias.
More information on mod_rewrite documentation : it's written and simple if you know where to read.
Thank all,

React application deployment with Laravel API in Apache Centos

I have a react js application with connecting API in Laravel. Everything is working fine in localhost. When I'm trying to host this application in my apache server I'm facing a problem.
Trying to achieve the below configuration:
My domain for react application is www.example.com
My domain for Laravel application is www.example.com/api
For this above URL set up
document root folder : /var/www/html
react folder : /var/www/html/react/build
laravel folder : /var/www/html/app/
My virtual host configuration is
<VirtualHost *:443>
# Client React application
DocumentRoot "/var/www/html/react/build"
ServerName example.com
SSLEngine on
# Server Laravel 7 API application
Alias /api /var/www/html/app/public/
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
# Rewrite all requests in /api to server index.php
<Location /api>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /api/index.php [L]
</Location>
<Directory "/var/www/html/app/public/">
AllowOverride All
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
<virtualhost *:80>
DocumentRoot /var/www/html
</virtualhost>
Created .htaccess in /var/www/html/.htaccess
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
I'm getting error like 'The requested URL was not found on this server.'
Please help me. what I'm doing wrong in this configuration.
The same configuration is working for angular.

Virtual host for angular 2 application in apache 2 not working

I need to create a virtual host or domain for my angular 2 application.
In brief, i had followed the below steps:
1) Created virtual host file for my site (From: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts)
2) build the project in prod mode: ng build --prod (got dist folder)
These are my settings files from the above tutorial link that i had made in my server:
etc\apache2\sites-available\mydomain.com.conf
ServerName mydomain.com
ServerAdmin webmaster#localhost
DocumentRoot /var/www/html/Angular2/path_to_my_app
<Directory /var/www/html/Angular2/path_to_my_app>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
In my windows host file added an entry to my site to map the ip
C:\Windows\System32\drivers\etc\hosts
10.*.*.* mydomain.com
In my server etc/host added an entry
etc\hosts
127.0.0.1 mydomain.com
In my angular 2 application's src folder (where index.html resides)
<IfModule mod_rewrite.c>
Options Indexes FollowSymLinks
RewriteEngine On
RewriteBase /var/www/html/Angular2/path_to_my_app
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
And in the same folders index.html:
<base href="/var/www/html/Angular2/path_to_my_app">
My package.json has:
"start": "ng serve --host mydomain.com"
The created domain seems to load (hopefully, assuming deep links works), but when i hit mydomain.com, i get the angular2's folder structure view in my browser, not my site loaded
Where is my configuration incorrect.
Do i need to configure any other file in angular 2. If so which?
ServerName mydomain.com
ServerAdmin webmaster#localhost
DocumentRoot /var/www/html/Angular2/path_to_my_app/src
in etc\apache2\sites-available\mydomain.com.conf, append /src to DocumentRoot

zend 2 not loading with apache on my computer

Trying to setup zend with apache on my latop running linux mint 16. I'm not sure what I could have missed in the setup, but when I navigate to localhost I just get a blank page.
Install apaache,php, enabled mod_rewrite:
apt-get install apache2
apt-get install php5
apt-get install libapache2-mod-php5
a2enmod rewrite
Copied my zend app (built with the skeleton) to /var/www/t1 (t1 is the app's folder)
Edited: /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster#localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
DocumentRoot /var/www/t1/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/t1/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
RewriteEngine off
<Location />
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
</Location>
LogLevel warn
</VirtualHost>
Restarted apache
service apache2 stop
service apache2 start
When I browse to http://localhost I just get a blank page.
edit: After turning on error reporting I found the error was:
Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in /var/www/t1/config/autoload/global.php on line 19
This was because I forgot to install the mysql module so after doing that it solved the issue.
sudo apt-get install php5-mysql
You probably need to add ini_set('display_errors', 1') and ini_set('error_reporting', E_ALL) at the top of your public/index.php, or do that in your php.ini. You are probably having an exception which is happening before ZF2 can catch it (setup related).
That will in first place allow you to see what the error is, and then it is usually trivial to fix it and move on.

apache2 vhost redirection

I have defined differents hosts in my windows host file, one for every project release (rc1, rc2 etc..)
I would like to create one vhost per release so I can redirect directly to its subdir, for example :
pp15.mv => http://localhost/mv/pp15/.....
pp16.mv => http://localhost/mv/pp16/.....
moreover, I need to redirect the host ppX.mv to an autologin url, something looks like /mv_dbname.php?login=testlogin&mdp=202cb962ac59075b964b07152d234b70
so, finally, I want to type this in my urlbar :
http://pp15.mv
and get redirected to
http://pp15.mv/mv_dbname.php?login=testlogin&mdp=202cb962ac59075b964b07152d234b70
In my virtual host file I have something like this :
<VirtualHost *:80>
ServerName pp15.mv
DocumentRoot "D:\apache\htdocs\mv\pp15"
<Directory "D:\apache\htdocs\mv\pp15">
AllowOverride All
Allow from All
</Directory>
RewriteEngine On
RewriteRule ^/index.php /myvisitv3_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
RewriteRule ^(/)?$ /myvisitv3_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
</VirtualHost>
The first redirection works great, but if i try to redirect directly the host, I get a redirection error (too many redirections occured)
Do someone have an idea ?
Thank you previously.
ok, finally here what I did :
<VirtualHost *:80>
ServerName pp16.mv
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pp16\.mv$
RewriteRule ^(/)?$ /mv/pp16/xxx/xxx_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
</VirtualHost>
no [L] on redirection because app have internal redirection, and no document root because php won't be able to read $_SERVER['REQUESTED_URI'] var correctly, so I could have did this (I prefer)
<VirtualHost *:80>
ServerName pp16.mv
DocumentRoot "D:\apache\htdocs\mv\pp16\xxx"
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pp16\.mv$
RewriteRule ^(/)?$ /xxx_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
</VirtualHost>
but php would have misread the app path (/ instead of /mv/pp16/xxx/)

Resources