今日做web实验2,要求很简单,使用php接受html数据而已;但是完成过程中踩了不少坑,特此记录下来。
[Problems]
- Apache配置php7错误;
- phpstorm提交相关表单,出现 502 bad gateway;
- phpstorm提交相关表单,出现 404 not found;
- phpstorm提交相关表单,直接显示php源码,未解析;
[Cause]
- Apache的httpd.conf配置文件出错;
- 运行的php文件需要放在apache的网站根目录下,如果运行不在该目录下的文件就会显示502 bad gateway;
- 其次在运行相关表单提交或者php页面跳转时会提示404 not found,即找不到服务器。这是因为phpstorm的页面默认在localhost:63342端口下运行,而我们的apache服务器一般默认为80端口,所以在提交表单到服务器时它会找不到相关php程序,尽管你的路径是正确的,因此需要配置phpstorm的服务器环境;
- 网上查了许久,各种纷杂的原因,我都折腾了一遍,均未解决;以至于最后我解决了404、502的问题后,莫名其妙的可以解析了,所以我也不清楚原因;
[Solutions]
打开terminal,如下操作:
1
2
3
4
5
6cd /etc/apache2
open httpd.conf
sudo vim httpd.conf
然后找到LoadModule php7_module···这条语句
将其修改为你系统内的libphp7.so的路径,我使用了自带的,所以便只是将改语句句首的 # 号去掉,变为:
LoadModule php7_module libexec/apache2/libphp7.so将文件移动到Apache根目录下即可;
配置phpstorm:
preferences -> Build,Excution,Deployment -> Deployment
,选择左上角绿色的“+”按钮新建,起个名字,type选择inplace(本地调试的意思),然后设置web sever root url为:http://localhost
如图:
然后在mappings标签页下填写localpath,即你的apache网站根目录,如图:
网上查找的几个点如:修改
/etc/php.ini.default
为php.ini
、将php.ini
中的short_open_tag = Off
改为short_open_tag = On
,再重启Apache(sudo apachectl restart
)……