Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
基本命令
- 启动
sudo apachectl -k start
- 重新启动
sudo apachectl -k restart
默认文件目录: /Library/WebServer 默认配置文件目录: /etc/apache2/httpd.conf
无法访问本地服务: 报forbidden的错误
按如下方式修改:
1 |
|
修改默认文件目录会报错:权限相关的错误
一般来说这个错误都是httpd.conf中的目录访问权限(此处的权限并非文件访问权限(可以通过chmod修改),而是apache服务中的目录访问权限)配置错误导致的, 你可以很简单的验证这一点:
在默认文件目录中添加名为index.html的文件,然后重启apache, 那么此时如果localhost能打开,不再出现403错误, 那么可以肯定就是目录访问权限导致的, 只需做如下修改,其中把 "/Users/longhe/Documents/WebServer"
替换为自己想要的目录即可
1 |
|
apache + php 实现文件上传
第一步: Apache环境中的档案上传大小控制(可以修改为你想要的任何值) 修改位于Apahce目录下的httpd.conf 添加下面内容 LimitRequestBody 10485760 即10M=1010241024,有的文章中提到应改为 600000000 重新启动apache,就可以在设置里看到你要的大小
提示:需要保持 memory_limit > post_max_size > upload_max_filesize
Windows 环境下的修改方法
第二步:修改在php5下POST文件大小的限制 1.编修php.ini 找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为: max_execution_time = 150 找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为: max_input_time = 300 找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为: memory_limit = 256M 找到:post_max_size = 8M,表单提交最大数据为 8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为: post_max_size = 20M 找到:upload_max_filesize = 2M ,上载文件的最大许可大小 ,修改为: upload_max_filesize = 10M
Linux 环境下的修改方法
修改etc/php.ini 找到 File Uploadsh区域修改以下几个参数: file_uploads = on ;是否允许通过HTTP上传文件的开关。 默认为ON即是开 upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改) upload_max_filesize = 8m ;允许上传文件大小的最大值. 找到 Data Handling区域,修改 post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。 默认为8M
设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数: 在Resource Limits 区域: max_execution_time = 600 ; 每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600 ; 每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m ; 每个PHP页面所吃掉的最大内存,默认8M
==注意:== macos下可能找不到php.ini, 只能找到php.ini.default, 可以修改php.ini.default之后复制一份,重命名为 php.ini
1 |
|
修改httpd.conf配置
编辑httpd.conf
,取消下面一行的注释符号#:
LoadModule php7_module libexec/apache2/libphp7.so
php和html代码如下
index.html代码如下:
1 |
|
upload.php代码如下:
1 |
|
==注意:== index.html 和 upload.php 必须在同一文件夹, 下载文件的目录放在 同级目录的uploads文件夹中
如何给某个目录添加密码保护
1.修改http.conf文件设置指定目录的配置,例如设定test目录的配置,增加验证。
1 |
|
2.在指定目录下增加.htaccess文件
文件内容如下:
1 |
|
第一行,验证提示信息。 第二行,验证类别。 第三行,密码文件所在路径,绝对路径。 第四行,告诉服务器哪些用户可以进入。require valid-user是指只要是.htpasswd中的任何一个都可以进入。也可以指定名单上的某人或某几人可以通过,使用require user username或require user username1 username2 username3。还可以指定某组人可以通过,使用require group groupname。
注意: 密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。
3.创建用户密码
就是创建apache的验证用户
htpasswd -c /var/www/test/.htpasswd 用户名
第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
1 |
|
==注意:== 重启服务之后, 你可以看到在目录中找不到你添加保护的目录, 只有在地址栏手动输入目录才行. 例如, apache
的文件目录为 ` xx/abc, 添加验证的目录为
xx/abc/test ,那么你在输入
localhost 之后无法看到
test 这个目录, 只有在输入
localhost/test `才会弹出密码框进行密码验证.
1 |
|