php+mysql+apache项目运行所遇到的一系列配置问题

时间:2021-12-15 20:25:50

今天运行一个php项目时,突然发现访问不了了。起因应该是mac系统升级,导致apache配置文件完全恢复到了默认状态,一切归零。作为一个经验尚欠的前端,对这些后台配置完全是一窍不通,赶紧微信联系了小胖。最终经过小胖在远方耐心的帮助和指导下,完美解决了运行项目中所遇到的连环坑,折腾了一下午直到晚上八点多。或许对于后端来说,这完全是小菜一碟,然后对于我这个外行来说简直是个灾难。想想还是事必躬亲的好,之前别人给我配服务器环境的时候从来没记住来龙去脉,经过今天这一番疯狂操作和折腾,想必以后再遇到这种问题就不用去大费周章劳师动众了。

赶紧把今天遇到的连环坑记录下来,以防后患。

就以对话的形式展开吧。

我:小胖,为啥我的所有php项目通过localhost访问页面只显示"it works"。

小胖:没改配置文件的话,localhost只访问默认的目录。it works是服务开启的默认页。你把配置文件发给我看看。文件名为httpd.conf,在/etc/apache2/下边。

我:httpd.conf文件

小胖:从httpd.conf文件看来,项目入口文件目录应该为/Library/WebServer/Documents。DocumentRoot就是设置php项目访问路径,也就是说你应该把项目放在/Library/WebServer/Documents,而且Documents下要有个index.php或index.html文件

php+mysql+apache项目运行所遇到的一系列配置问题

我:可是我之前php默认项目路径一直为/project/rorohtml5/php,怎么发生改了?(突然意识到可能是系统升级,连服务器配置文件也初始化了)是不是我系统升级初始化了配置文件?(一脸懵逼。。)

小胖:/Library/WebServer/Documents肯定是升级后改了吧。

我:那我把httpd.conf中的这两个地方改成/project/rorohtml5/php是不是就ok了?其他地方不用改了?

小胖:恩恩 记得改完了重启下服务器。

我:好的。修改完后,sudo /usr/sbin/apachectl restart这样重启?

小胖:嗯嗯

我:改好了,也重启了,但是好像还是有问题。

页面显示 Forbidden You donnot have permission to access / on this server

小胖:没有权限,文件夹权限。会不会是服务器配置重写没开。去httpd.conf里找到#LoadModule rewrite_module libexec/apache2/mod_rewrite.so,去掉#,再重启服务器。

我:去掉了,好像还是不行。

小胖:我再看看配置文件。那个

<IfModule dir_module>

  DirectoryIndex index.html

</IfModule>

index.html后边加个空格加个index.php

我:直接把源代码输出出来了,没有解析。

php+mysql+apache项目运行所遇到的一系列配置问题

小胖:AddType application/x-httpd-php .php,把这个加到配置文件中吧。

  放在AddType application/x-compress .Z  AddType application/x-gzip .gz .tg下边

我:加在后边了

php+mysql+apache项目运行所遇到的一系列配置问题

似乎还是不行。

小胖:#LoadModule php5_module libexec/apache2/libphp5.so这个#也要去掉。有很多的模块都需要开启。

我:去掉之后,似乎有点效果,但是还有报错。

  1. php+mysql+apache项目运行所遇到的一系列配置问题

小胖:你数据库启动了吗?

我:mysql启动了。

php+mysql+apache项目运行所遇到的一系列配置问题

小胖: 不会php配置也要改吧,你看看etc下的php.ini文件。

我:两个php.ini文件哪个是?

php+mysql+apache项目运行所遇到的一系列配置问题

小胖:你用编辑器打开项目的index.php文件,加echo phpinfo();die;我看看是用的哪个php.ini文件。

我:

  1. php+mysql+apache项目运行所遇到的一系列配置问题

小胖:看到/etc没得,没有加载php配置。php.ini.default这个文件改成php.ini。通过终端进入mysql控制台,输入STATUS;获取UNIX socket的值,把该值赋给php.ini里边的pdo_mysql.default_socket、mysql.default_socket、mysqli.default_socket三个变量即可。

我:mysql -uroot -p不起作用了,切换不到控制台模式?咋回事,之前可以的。(-p后边不需要加内容)

php+mysql+apache项目运行所遇到的一系列配置问题

小胖:mysql没有添加到环境变量中去。终端输入export PATH=${PATH}:/usr/local/mysql/bin指令添加即可。

我:OK。获取到了UNIX socket,三个变量也赋值了,但是仍然有报错。

  1. php+mysql+apache项目运行所遇到的一系列配置问题

小胖:缓存问题。去runtime文件夹里的内容全部清空,然后给runtime设置权限。在APP目录下chmod -R 777 ./Runtime    

我:终于可以访问了。but,又遇到小问题了,只能访问首页 其他页面报错。真是一波刚平,一波又起啊。

php+mysql+apache项目运行所遇到的一系列配置问题

小胖: 这个是重写的问题。把这个里边的 AllowOverride None,none改成all 在重启服务器

<Directory "/project/rorohtml5/php">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options FollowSymLinks Multiviews
MultiviewsMatch Any #
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None #
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

我:哇哦,我的天,终于好了。

付出总会有回报,上天是公平的。

php+mysql+apache项目运行所遇到的一系列配置问题的更多相关文章

  1. linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    一.安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK rpm -qa | grep jdk (2)卸载不需要的JDK yum -y remove 安装包名称 2.下载并解压 ...

  2. Atitit linux获取项目运行环境版本

    Atitit linux获取项目运行环境版本 1.1. Nginx版本1 1.2. Php版本1 1.3. Mysql版本2 1.4. Redis版本2 1.1. Nginx版本 [root@iZ25 ...

  3. 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化

    一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...

  4. 云服务器&plus;tomcat&plus;mysql&plus;web项目搭建部署

    云服务器+tomcat+mysql+web项目搭建部署 1.老样子,开头墨迹两句. 作为我的第二篇文章,有很多感慨,第一篇人气好低啊,有点小丧气,不过相信我还是经验少,分享的都是浅显的,所以大家可能不 ...

  5. 【转载】使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化

    一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...

  6. 使用xampp将angular项目运行在web服务器

    需求 在开发angular项目时,因为需要做自适配以适应不同的屏幕,而我的电脑只有1366的.所以我现在需要在本地将angular项目运行在xampp上,然后用手机开热点,给本机和另一台大屏电脑或手机 ...

  7. Django 使用mysql 创建项目

    一.安装 mysql 和 mysqlclient 1. 安装 mysql ,https://www.jianshu.com/p/07a9826898c0 2. pip3 install mysqlcl ...

  8. MySQL之 InnoDB记录结构&lpar;转自掘金小册 MySQL是怎样运行的,版权归作者所有!&rpar;

    以下内容来自掘金小册 MySQL 是怎样运行的:从根儿上理解 MySQL 版权归原作者所有! 页是MySQL中磁盘和内存交互的基本单位,也是MySQL是管理存储空间的基本单位. 指定和修改行格式的语法 ...

  9. 连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,

    连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的, 2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factor ...

随机推荐

  1. TCP&sol;IP详解学习笔记&lpar;4&rpar;-ICMP协议,ping和Traceroute

    1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...

  2. IIS修改队列长度

    Internet Information Services (IIS) 限制了在任何给定时间可在队列中等待的应用程序池请求的最大数量.如果达到此限制,则所有新请求都将被拒绝,而且用户将收到错误消息“5 ...

  3. 翻译题(map使用)

    What Are You Talking About 点我 Problem Description Ignatius is so lucky that he met a Martian yesterd ...

  4. 1592&colon; &lbrack;Usaco2008 Feb&rsqb;Making the Grade 路面修整

    1592: [Usaco2008 Feb]Making the Grade 路面修整 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 428  Solv ...

  5. iframe 父子页面方法调用

    在写代码的时候经常会用到将一个网页嵌入到另一个网页中,w3c也规定了一个标签<iframe>,这个标签本身就支持跨域,而且所有的浏览器都支持 iframe具有以下属性: 1.framebo ...

  6. Vue&period;js优雅的实现列表清单的操作

        一.Vue.js简要说明 Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与前端框架Angular一样, Vue.js在设计上采用MVVM模式,当Vie ...

  7. CentOS7 下安装 Java 8 &lbrack;wget&rsqb;

    1. 创建一个文件夹 sudo mkdir /usr/local/services/java8 2. 使用 wget 来下载 wget --no-cookies --no-check-certific ...

  8. 【野草】SQL Server之索引解析(二)

    1.堆表 堆表通过IAM连接一起,查询时全表扫描. 1.1 非聚集索引 结构 叶子节点数据结构:行数据结构+Rid(8字节) 中间节点数据结构: (非聚集非唯一索引)行数据结构+Page(4)+2+ ...

  9. Unity2018 Open C&num; Project Error

    错误日志 升级到Unity2018之后,使用 Open C# Project 打开VS工程,出现报错,无法启动VS. 错误日志如下: ArgumentException: Value does not ...

  10. eclipse项目改为maven项目导致svn无法比较历史数据的解决办法

    这个问题没有找到合适的答案,最终自己想出了一个解决方案,在此记录下. 问题描述 在将老的eclipse项目重构为maven项目时,我这边是新建了一个maven项目,然后将对应的数据分别放到相应的位置, ...