前序
Apache服务器启动 : 在终端输入 sudo apachectl start
回车即可
mac本身安装了ssh服务,默认情况下不会开机自启
- 启动sshd服务:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
- 启动sshd服务:
- 停止sshd服务:
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
- 停止sshd服务:
- 查看是否启动:
sudo launchctl list | grep ssh
- 查看是否启动:
如果看到下面的输出表示成功启动了: - 0 com.openssh.sshd
Apache自定义配置
1. 根目录路径配置
首先,Apache默认的根目录在“/Library/WebServer/Documents/”下。
我们可以将服务器根目录配置到我们自己的文件夹下:
例如 : 在/users/user
中创建一个"ApacheFIle"
的文件夹,
- 1.1、切换工作目录下:
cd /etc/apache2
- 1.2、首先备份文件,只需要执行一次:
sudo cp httpd.conf httpd.conf.bak
(目的是在操作出现错误时可以使用命令,恢复备份的 httpd.conf 文件:sudo cp httpd.conf.bak httpd.conf
) - 1.3、用vim编辑httpd.conf文件,httpd.conf文件时Apache的配置文件:sudo vim httpd.conf
这时候需要输入密码来获取权限,输入密码后会出现httpd.conf的编辑界面,按下键盘i
键即可进入编辑状态。
在文本中找到DocumentRoot
及Directory
,将后边路径替换为刚才自己创建的文件夹路径。
修改前:
#
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
#
修改后
/users/user/ApacheFile
DocumentRoot "/users/user/ApacheFIle"
<Directory "/users/user/ApacheFIle>
1.4 之后找到Options FollowSymLinks Multiviews:修改为Options Indexes FollowSymLinks Multiviews,在单词间添加一个
Indexes
单词。1.5 接下来查找php,:/php,定位到图中位置:(下边的第三行)
LoadModule alias_module libexec/apache2/mod_alias.so
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#LoadModule php7_module libexec/apache2/libphp7.so
#LoadModule perl_module libexec/apache2/mod_perl.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so
将 LoadModule php7_module
前的#
号删除
- 1.6 最后
Esc
退出编辑,输入:wq
保存并退出。 - 1.7 切换工作目录:
cd /etc
拷贝php.ini文件:sudo cp php.ini.default php.ini
- 1.8 重新启动apache服务器,在终端输入:
sudo apachectl -k restart
然后在浏览器中输入127.0.0.1
或者本机IP地址
回车即可查看服务器根目录(自定义根目录)
注:
我们不止可以用ip地址访问我们的Apache服务器也可以自定义一个假域名啥的
操作 : 可以在httpd.conf 中添加ServerName 为自定义字段,同网络下可以用自己的自定义字段访问服务器 :
例如 : 在httpd.conf 中找到#ServerName www.example.com:80
在这句话下边加一句ServerName wodedizhi.local
重启后生效,可能需要先通过IP访问一次才可以,感觉不稳定
2 同局域网内其他电脑登录本机服务器设置
-
2.1 需要开启本机的远程登录功能
系统偏好设置 -> 共享 ->远程登录
如下图:
-
2.2 远端登录直接在终端输入
ssh 用户名@Ip地址
- 用户名可以输入
root
也可以在服务器电脑直接查看(见上图 - 右侧中间部分)
- 用户名可以输入
3 免密码登录
方法一:
- 3.1 切换目录至ssh,终端输入
cd ~/.ssh
- 3.2 输入命令
ssh-keygen
或ssh-keygen -t rsa
(若已有公私钥跳过)- 会有如下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
输入id_rsa
后回车即可,之后会有更多提示操作根据提示直接按enter
回车按钮。
最后会出现The key's randomart image
- 会有如下提示:
+--[ RSA 2048]----+
| ..o o=.|
| + o o..o|
| . = = + o|
| . * O . |
| S . O |
| . o |
| .|
| . |
| E|
+-----------------+
之后再终端输入 ls
查看文件命令,会发现文件夹下多出id_rsa
id_rsa.pub
两个文件。
id_rsa
私钥,id_rsa.pub
公钥,采用RSA加密
形式。我们只要把 id_rsa.pub
改为 anthorized_keys
并上传到服务器你的主目录下的.ssh
下即可,
操作方法:( 终端输入命令如下)
-
cp id_rsa.pub authorized_keys
(回见id_rsa.pub赋值为authorized_keys)
-
-
scp authorized_keys username@服务器ip地址:~/.ssh
注:若是提示 .ssh文件夹不存在或.ssh:not a directory 自己创建一个就可以了
-
方法二
执行步骤3.1 、 3.2(若已有公钥私钥直接跳过)
执行命令 ssh-copy-id -i id_rsa.pub username@服务器ip地址
方法三
打开终端,然后点击左上角shell--->新建远程链接---->选择安全Shell(ssh)---->右边添加+号--->然后输入服务器的ip地址---->在下面输入用户名--->点击连接,然后在终端输入密码即可,这一部免去了输入服务器IP地址的问题。
有时候链接服务器会出现这个错误:
- 解决办法:
① 先cat一下家目录的.ssh/know_hosts
② 删除对应ip地址的的相关rsa的信息即可.
补充
Mac OSX Terminal ssh 命令连接服务器之后,如果一段时间不操作,就会退出登录并出现如下错误提示:Write failed: Broken pipe
,只能重新用 ssh 命令进行连接。
解决方法:
- 方法一:$ ssh -o ServerAliveInterval=60 user@IP
- 方法二:只需在服务器的 /etc/ssh/sshd_config 中添加如下的配置:
添加或者修改ClientAliveInterval为“ClientAliveInterval 60”。这个参数的是意思是每1分钟,服务器向客户端发一个消息,用于保持连接。保存后记得重启ssh服务。
报错解决 执行命令 sudo apachectl -k restart
时遇到报错
AH00557: httpd: apr_sockaddr_info_get() failed for bogon
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
在httpd.conf 中找到ServerName www.example.com:80
下边加一行
ServerName 127.0.0.1:80
,再次重启就可以了