英文:
Set up the Laravel and Vue JS in same apache
问题
我想在同一个 Apache 服务器上托管 Laravel 和 VueJs。它们是两个独立的项目,其中 Laravel 用于 API,VueJs 用于 CMS。现在我可以成功运行 VueJS,但我不知道如何运行 Laravel。以下是 000-default.config 配置:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/vue_project/dist
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/vue_project/dist>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
allow from all
</Directory>
</VirtualHost>
我如何在这个 000-default.conf 中添加 Laravel 项目?我需要创建另一个 site-available 的配置文件吗?感谢大家。
英文:
I would like to host a Laravel and VueJs in the same apache. They are separate project which Laravel is for API and VueJs is for CMS. Now I can run the VueJS perfectly. But I do not know how to run the Laravel too. Here is the 000-default.config:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/vue_project/dist
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/vue_project/dist>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
allow from all
</Directory>
</VirtualHost>
How can I add the laravel project in this 000-default.conf? How do I need to create another site-available conf file? Thanks for all of you.
答案1
得分: 0
您已经快完成了,创建另一个文件,例如 001-laravel.conf
,并使用以下内容:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/laravel_project/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这样应该足够让它工作。当然,要使用正确的路径作为 DocumentRoot
,它必须指向 public
文件夹。
完成后,如果您在Linux上,运行 sudo a2ensite 001-laravel
,然后运行 sudo service apache2 restart
以加载新的配置页面。
但请注意,您需要添加类似 ServerName your-test-page.local
的内容,这样当您访问 your-test-page.local
时,Apache能够正确解析到Laravel而不是VueJS。
然后,您还需要编辑您的 hosts
文件,并将该别名添加到 127.0.0.1
... 搜索如何执行此操作的教程,因为关于这方面的信息有很多...
英文:
You are nearly there, create another file, for example 001-laravel.conf
with this content:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/laravel_project/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
And that should be enough for it to work. Of course use the right path on DocumentRoot
, it must point to the public
folder.
Once you have done this, if you are on linux, run sudo a2ensite 001-laravel
, and then sudo service apache2 restart
so it loads the new config page.
But have in mind that you need to add ServerName your-test-page.local
or something like that, so you can specify that, when you access your-test-page.local
, Apache correctly resolves it to Laravel and not VueJS.
You also then need to edit your hosts
file, and add that alias to 127.0.0.1
... Look for a tutorial on how to do this, as there is plenty of information about this...
答案2
得分: 0
Finally, I found that I can use the Alias
to solve this problem. Here is my 000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/vue_project/dist
Alias /apis /var/www/html/laravel_project/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/vue_project/dist>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
allow from all
</Directory>
<Directory /var/www/html/laravel_project>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
allow from all
</Directory>
</VirtualHost>
First add the Alias
of the laravel. Remember to include the public folder.
Second add the directory of the laravel. Do not add public folder in the directory.
Once the config is done. Run sudo systemctl restart apache2
or sudo service apache2 restart
. Then refresh the page and we can use alias to get into laravel project with same domain.
英文:
Finally, I found that I can use the Alias
to solve this problem. Here is my 000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/vue_project/dist
Alias /apis /var/www/html/laravel_project/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/vue_project/dist>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
allow from all
</Directory>
<Directory /var/www/html/laravel_project>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
Order allow,deny
allow from all
</Directory>
</VirtualHost>
First add the Alias
of the laravel. Remember to include the public folder.
Second add the directory of the laravel. Do not add public folder in the directory.
Once the config is done. Run sudo systemctl restart apache2
or sudo service apache2 restart
. Then refresh the page and we can use alias to get into laravel project with same domain.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论