尝试使用Apache 2(修复Apache乱码问题)
这之前的续篇
继续尝试使用Apache
本题
通过参考Mac上的Apache启动本地Web服务器,使用VScode创建Desktop/page/index.html并进行编辑,尝试使用sudo cp -rf Desktop/page /Users/用户名/Sites命令来更新Sites/index.html时出现了以下错误:
(如果只复制index.html文件,请这样操作:
cp -rf Desktop/page/index.html /Users/[用户名]/Sites)
cp: /Sites: 只读文件系统
cp: Desktop/page: 无法将扩展属性复制到 /Sites: 只读文件系统
cp: /Sites/index.html: 没有此文件或目录
看来Sites是只读文件系统。
将权限改为755并重新执行。
成功复制了,但仍然面临着乱码的问题。
我认为问题是由于字符编码引起的。
Web浏览器是根据哪些标准来判断字符编码的呢?
根据我了解,问题很多时候是由于HTTP的Content-Type信息中缺少charset参数引起的,实际上我自己也遇到过这个问题。
可以通过检查HTTP头部来确认(在Chrome中可以通过按照Google Chrome的说明查看HTTP头部信息的方法来确认,也可以通过curl命令在终端中查看HTTP头部的方法来确认)。
参考.htaccess文件处理乱码问题,我在.htaccess文件中使用AddType声明,写上AddType “text/html;charset=UTF-8″,这次这样写了。
虽然也可以写在httpd.conf文件中,但是httpd.conf是Apache的整体配置,而.htaccess是每个目录的配置(如果没错的话),所以我认为最好不要修改整体配置,选择了.htaccess。
然后乱码问题成功解决了。
记事
・由于Apache不会自动更新显示内容,因此需要使用sudo apachectl restart进行更新。
・权限设置可以使用chmod命令进行,大多数权限问题可以通过chmod 755 [目录或文件名称]来解决。
・.so是共享文件,.conf是Unix系中惯例使用的配置文件。
・错误日志可以在httpd.conf文件中通过ErrorLog来搜索位置。在我的情况下,位置是/private/var/log/apache2/error_log。
想法或感受
除了乱码之外,我还遇到了各种问题……
对于这种完全是第一次尝试的事情,我考虑在阅读完书之后再去做。
请参考
・在Mac上使用Apache启动本地Web服务器
・关于权限
・so文件的扩展名是什么意思
・什么是conf文件
・Web浏览器如何判断字符编码?
・添加MIME类型(AddType)
・如何在Google Chrome中查看HTTP头信息
・Apache Web服务器配置备忘录
・使用curl命令处理HTTP头的方法
・什么是.htaccess?它可以设置什么并且有关写法和设置位置
・【touch】在Linux中创建新文件的命令
・通过.htaccess进行乱码对策