1. 首次登录
    在本地设备中打开终端,执行ssh命令,登陆服务器。
    ssh root@139.196.222.22
    输入根用户密码,按回车确认。

  2. 升级软件
    为了确保操作系统中的默认的软件安装了最新的更新和补丁,我们需要升级系统软件。在终端中输入:
    apt-get update
    apt-get upgrade

  3. 安装PHP
    #确保操作系统中有add-apt-repository,这个命令会安装包含add-apt-repository二进制文件的software-properties-common包。现在可以添加自定义的PPA了。
    sudo apt-get install software-properties-common

    #添加ppa:ondrej/php5-5.6 PPA
    sudo add-apt-repository ppa:ondrej/php5-5.6

    #ubuntu会缓存所有可用的软件,因此添加新软件源后,要刷新这个缓存
    sudo apt-get update

    #安装PHP
    sudo apt-get install php5

    #安装apache2
    sudo apt-get install apache2

    #libapache2-mod-php5目的是为了让apache支持php5
    sudo apt-get install libapache2-mod-php5

    #可选,开启GD库支持, 例如wordpress上传图片需要GD库.
    sudo apt-get install php5-gd

    #enable rewrite module
    sudo a2enmod rewrite

    #重启apache2
    sudo service apache2 restart

  4. 配置Apache (仅开启HTTPS)

    • 将www.test.com.crt证书复制到/etc/ssl/certs/文件夹下

    • 将密钥www.test.com.key复制到/etc/ssl/private/文件夹下

    • 将root_bundle.crt复制到/etc/ssl/certs/文件夹下

    #在sites-available文件夹下创建test-ssl.config文件
    cd /etc/apache2/sites-available
    touch test-ssl.config

    复制下述内容到test-ssl.config文件中。
    <VirtualHost *:443>
    ServerAdmin www.test.com
    ServerName www.test.com
    DocumentRoot /var/www/test
    ErrorLog /var/www/logs/error.log
    CustomLog /var/www/logs/access.log
    combined
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
    SSLCertificateFile /etc/ssl/certs/www.test.com.crt
    SSLCertificateKeyFile /etc/ssl/private/www.test.com.key
    SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt
    </VirtualHost>

    如果只是开启HTTP,可以将文件命名为test.config,端口改成80或其他需要的端口,config文件中不需要SSLEngine on以下的设置。

    #重启apache2
    sudo service apache2 restart

  5. 非根用户
    我们需要创建非根用户以加强服务器的安全性。我们应该尽量让别人不能使用根用户访问服务器,因为根用户在服务器中拥有超级权限,可以执行任何命令。
    #创建非根用户
    adduser deploy
    #把deploy用户加入sudo用户组,让deploy用户拥有sudo权限,这样通过密码认证后可以执行需要特殊权限的#任务。
    usermod –a –G sudo deploy

  6. SSH密钥对认证
    在本地设备执行可以执行下述命令,以非根用户登陆服务器:
    ssh deploy@139.196.222.22
    这个命令会要求你输入deploy用户的密码,然后登陆服务器。由于密码认证会受到暴力攻击,使用ssh登陆服务器应该使用ssh密钥对认证。
    在本地设备中执行下述命令生成~/.ssh/id_rsa.pub(公钥)和~/.ssh/id_rsa(私钥)。
    ssh-keygen
    私钥保存在本地,公钥复制到服务器上:
    #注意,最后的冒号一定要有
    scp ~/.ssh/id_rsa.pub deploy@139.196.222.22:
    登录服务器,确保~/.ssh文件夹存在,如果不存在,执行下述命令创建~/.ssh文件夹。
    mkdir ~/.ssh
    #创建authorized_keys文件
    touch ~/.ssh/authorized_keys
    #该文件的内容是一系列登录这台远程服务器的公钥,执行下述命令,把刚上传的公钥添加到该文件
    cat ~/id_rsa.pub>> ~/.ssh/authorized_keys

  7. 禁用密码,禁止根用户登录
    在文本编辑器中打开/etc/ssh/sshd_config文件,找到PermitRootLogin设置,将其值改为no。找PasswordAuthentication设置,将其值改为no。在终端窗口输入下述命令使改动生效:
    sudo service ssh restart

最新文章

  1. SDL 截图、录像、录像播放
  2. 关于oracle中创建新表时将我们要用的表的结构和数据都复制过去
  3. ServiceStack.Text 更快的序列化
  4. dynamic_cast用法
  5. VBA开发经验总结之二:灵活运用工作表属性
  6. bt5全称是Back Track five,是继BT3,BT4之后的最新版,这是一个linux环境的便携系统,可以放到U盘或者硬盘中启动,对本身硬盘没有影响,无需在本地安装。
  7. 怪兽z主机 驱动集
  8. page分页
  9. JSONP跨域的原理解析[转]
  10. 【转】sublime text 3 显示空格和Tab
  11. 机器学习中应用到的各种距离介绍(附上Matlab代码)
  12. windows平台 python生成 pyd文件
  13. 手动搭建Docker本地私有镜像仓库
  14. MS SQL Server 增删改查
  15. Docker permission denied while trying to connect to the Docker daemon socket
  16. Software development skills for data scientists
  17. SDK Manager的使用
  18. JAVA程序员常用英语
  19. 排序算法(3)--Insert Sorting--插入排序[3]--Shell Sort--希尔排序
  20. 20172325 2018-2019-2 《Java程序设计》第三周学习总结

热门文章

  1. mysql: see all open connections to a given database?
  2. Python语言and-or的用法
  3. java 内部类 *** 最爱那水货
  4. PHP内核探索之变量(2)-理解引用
  5. Bash中的任务(job)管理
  6. Uploadify 上传插件引起Chrome崩溃解决方法
  7. js的querySelector跟querySelectorAll
  8. display---我的第一篇博客
  9. 如何理解javascript closure ?
  10. ClockPicker – 时钟风格 Bootstrap 时间选择器