问题描述:由于删除了/private/var/log下面的日志,导致重启电脑后apache无法正常工作。
删除log的初衷是:当系统用久了,日志文件占据了几十个G的硬盘容量。
造成的后果:重启电脑后apache无法正常运行,访问localhost或127.0.0.1都会无法找到服务器。
探索:问题出现后,由于$ sudo apachectl start不会报任何错,但是访问localhost或127.0.0.1始终失败。
可能情况1: 没有监听80端口
排除可能1:我的apache,我很清楚我监听了80端口的。
可能情况2:hosts文件配置有问题
排除可能2:localhost以前就没问题,而且没改过,排除。
怀疑点:80端口被占用
排除怀疑点:终端运行$ sudo lsof -iTCP:80 -sTCP:LISTEN,没有发现其他程序占用,排除这个疑点。
这就奇怪了!于是。。。(终端$ sudo /usr/sbin/httpd -k start)问题出现了:No such file or directory: httpd: could not open error log file /private/var/log/apache2/error_log.
想起来昨天删除了log下的所有日志文件,*后创建文件夹apache2,就ok了。
解决方法是:在log目录下,新建一个名为apache2的文件夹(终端$ sudo mkdir /private/var/log/apache2),然后重启apache(终端$ sudo apachectl restart),会自动在apache2里面重新生成apache需要的日志,便可正常访问和使用apache服务了。
在重装完电脑有时候localhost找不到时,需要我们手动去配置一下
// 进入hosts
sudo vi /etc/hosts
// 添加下面两行
127.0.0.1 localhost
::1 localhost
保存退出,大功告成
Mac OS系统下经常遇NTFS格式硬盘无法写入的问题。NTFS 是 Windows环境的文件系统格式,因为竞品和专利等原因,Mac OS上的NTFS读写功能被隐藏了。只要通以下方法设置,就可以完美支持NTFS格式读写。
一.插上硬盘,通过命令行查看磁盘的Volume Name
在命令终端里输入命令行:
diskutil list
可以看到这里有两个NTFS硬盘。Volume Name是Windows_NTFS后面的硬盘名称 XXX。如果发现没有名称,那么需要重新设置硬盘名称,不然无法识别到需要修改的硬盘。
二.更新 /etc/fstab文件
sudo vim /etc/fstab
编辑文件把下面内容写入文件(xxxx 为Volume Name)。
LABEL=xxxxx none ntfs rw,auto,nobrowse
三.修复硬盘不显示问题
按以上方法编辑好之后,重新插入硬盘,发现硬盘在Finder里无法显示了。可以通过命令行访问,不过这种方法太麻烦了。
还有一个简单的解决方法:
sudo ln -s /Volumes ~/Desktop/Volumes
通过命令行设置快捷方式。
*近在使用Mac apache 时候发现localhost无法访问服务器,但是$ sudo apachectl start不会报任何错。
于是查了下问题原因发现问题是:由于删除了/private/var/log/apache2文件夹,导致重启电脑后apache无法正常工作。
解决方法是:创建apache2的文件夹(终端$ sudo mkdir /private/var/log/apache2),然后重启apache(终端$ sudo apachectl restart),会自动在apache2里面重新生成apache需要的日志,便可正常访问和使用apache服务了。
IOS技术栈总结
前言
技术栈
一.语法
1.Objective-C
2.swift
3.C语言
二.UI
1.页面绘制
2.动画
3.图像处理
4.音频视频
三.网络
1.通讯协议
2.断点下载
3.断点上传
4.网络异常(弱网)处理
四.存储
1.文件系统与沙盒机制
2.NSUserDefaults存储
3.文件读写
4.数据流读写
5.数据库
五.线程
1.线程类型
2.线程通讯
3.线程锁
六.内存
1.内存管理机制ARC/MRC
2.内存泄露原理
3.缓存管理
七.架构
1.设计模式
2.路由
3.Native与Web混合开发架构
八.系统
1.RunLoop
2.RunTime
九.安全
1.应用安全防护
2.沙盒
3.网络安全
十.数据加解密
1.对称加密
2.非对称加密
3.报文加解密优化
十一.代码管理
1.SVN
1.git
十二.证书与发布管理
1.签名原理
2.证书签发流程
3.上架流程
4.审核问题处理
十三.开发工具
1.快捷键
2.插件
3.调试与性能测试工具
总结
前言
技术栈就是在某一个领域(项目或工程)所需要的一堆技能,整理起来的技术链。作为一个程序猿有必要整理一下自己的技能树方便查缺补漏,所以整理了一下这几年做IOS开发接触或使用到的技能树。这份整理的技能树带有很大的个人技能倾向性。
技术栈
一.语法
1.Objective-C
基础语法
对象模型
动态特效
2.swift
基础语法
3.C语言
基础语法
面向对象
数据结构与算法
常用网络协议
二.UI
1.页面绘制
UIkit
Core Animation
Core Text
2.动画
Core Graphics
Quartz 2D
3.图像处理
openGL ES
GLKit
SpriteKit
SceneKit
4.音频视频
AudioToolbox
AVAudioPlayer
三.网络
1.通讯协议
TCP/UDP
Http/Https
2.断点下载
3.断点上传
4.网络异常(弱网)处理
四.存储
1.文件系统与沙盒机制
2.NSUserDefaults存储
3.文件读写
4.数据流读写
5.数据库
五.线程
1.线程类型
GCD
NSHread
NSOperationQueue
2.线程通讯
3.线程锁
六.内存
1.内存管理机制ARC/MRC
2.内存泄露原理
3.缓存管理
七.架构
1.设计模式
MVC
MVVM
KVO
KVC
2.路由
3.Native与Web混合开发架构
JSBridge
UIWebView/WKWebView
八.系统
1.RunLoop
2.RunTime
九.安全
1.应用安全防护
加固
完整性校验
签名校验
放动态调试
越狱检测
越狱
2.沙盒
3.网络安全
通讯加密
https ssl证书校验
十.数据加解密
1.对称加密
2.非对称加密
3.报文加解密优化
十一.代码管理
1.SVN
1.git
十二.证书与发布管理
1.签名原理
2.证书签发流程
3.上架流程
4.审核问题处理
十三.开发工具
1.快捷键
2.插件
3.调试与性能测试工具
总结
以上技术栈是根据个人开发经验所整理的,也是对自己IOS技能的一个总结。会有些遗漏或者不完全合理的地方,在不断学习中会继续添加修改。