Laravel ReST API URL 404 not found on AWS EC2 in A

2019-07-30 12:23发布

问题:

This question is on AWS Laravel Implementation on Apache + mySQL AWS EC2 instance.

After copying the working Laravel folder from xampp/htdocs/my_project_name, migration to create tables in mySQL database and seeder are working. However, I could not connect to my APIs using Postman. (404 not found)

I following these solution links laravel the requested url was not found on this server https://laracasts.com/discuss/channels/general-discussion/laravel-5-the-requested-url-was-not-found-on-this-server

I managed to modify the httpd.conf. However, I could not find file .htaccess (

where .htacces i can find? Sorry for stupid question, but i can't find :) – MilanNz Mar 11 '15 at 12:30 @MilanNz The .htaccess can be found in the public directory of your application. However the code from this answer goes inside a vhost file. The location of that depends on your server. (e.g. for apache2 and unix it's usually at /etc/apache2/sites-available)

)

Also, I was not able to reboot my Apache using "service apache2 restart". So I "sudo reboot"ed the EC2 instance and reconnected using Postman, the API urls were still not found.

There is a possibility that my URL is wrong. So I attach it here: The URL used is http://ec2-??-??-???-??.us-east-2.compute.amazonaws.com/my_project_name/public/api/resultCRUD/list The working xampp URL is http://localhost/my_project_name/public/api/resultCRUD/list

The Laravel project folder is located at /var/www/html/my_project_name on AWS EC2.

http://ec2-??-??-???-??.us-east-2.compute.amazonaws.com/phpinfo.php and http://ec2-??-??-???-??.us-east-2.compute.amazonaws.com/phpMyAdmin/ are working.

Any help is greatly appreciated. Thanks!

回答1:

It's finally working. The reason I was stuck is because most of the answers are for ubuntu while I am using RedHat. For RedHat EC2 instance, need first change the content of /etc/httpd/conf/httpd.conf following https://pinecode.io/article/setting-up-laravel-56-on-aws-linux, In this step, I actually changed all "AllowOverride None"s to "AllowOverride All" instead of only line 151 of httpd.conf.

Then need to restart httpd using sudo service httpd restart following https://gistpages.com/posts/enable_mod_rewrite_in_apache2_on_red_hat_linux

Then it is working all fine.

I didn't restart my apache service after saving changes to httpd.conf when I was asking this question.