返回首页
当前位置: 主页 > 精通Office > Ubuntu教程 >

Ubuntu 从搭建到优化

时间:2018-10-30 14:12来源:知行网www.zhixing123.cn 编辑:麦田守望者

起步

修改主机名

配置文件 : /etc/hostname

修改服务器端口

为了服务器安全, 可修改登录服务器的端口, 端口默认是 22, 配置文件 vim /etc/ssh/sshd_config 找到 Port 22 修改

修改完之后, 执行 reboot 重启服务器.

软件安装方法

Ubuntu 安装软件非常简单 apt-get install, 不过安装之前先更新源, apt-get update, 衍生命令 apt-get dist-upgrade 这是更新系统中所有的软件, 在执行这个命令之前要 apt-get update 更新源更新之后再更新软件.

起步软件安装

  • apt-get install curl
  • apt-get install wget
  • apt-get install mcrypt
  • apt-get install openssl
  • 安装

    安装 Nginx 服务器

    执行 apt-get install nginx, Nginx 的默认安装目录是 /etc/nginx

    Nginx 配置文件

    主配置文件 /etc/nginx/nginx.conf, 不过 Ubuntu 系统自动为我们的 Nginx 配置文件做了分片, 这样方便我们阅读, 编辑主配置文件.

    vim /etc/nginx/nginx.conf  
    

    主配置放置一些配置信息, 新手暂时不用理会, 在配置文件 70 行有如下配置

    include /etc/nginx/conf.d/*.conf;  
    include /etc/nginx/sites-enabled/*;  
    

    /etc/nginx/conf.d/*.conf

    这里值得注意的是 conf.d 目录下放的也是 Nginx 的配置, 在加载顺序上 conf.d 里面的配置在最下面, 它会覆盖原有配置文件里面的配置, 如果我们需要去修改配置, 要在 conf.d 里面修改, 而不是直接修改主配置文件, 这样就算改错了也能恢复.

    /etc/nginx/sites-enabled/*

    sites-enabled 是虚拟机主机配置文件, 我们去添加一个站点的不会再 nginx.conf 里面进行修改, 当然也不会再 sites-enabled 里面, 而是在 sites-available 文件夹里面, 从两个文件夹的字面意思也能知道 sites-available 是可用站点, sites-enabled 是已用站点.

    现在通过 IP 就能访问到我们默认的 Nginx 服务器.

    安装 PHP

    执行命令 apt-get install php5, apt-get install php5-fpm

    安装完 PHP 之后暂时是不能执行 PHP 文件的, 因为 Nginx 还没有配置'识别' PHP 文件

    配置 Nginx '识别' PHP

    打开 Nginx 站点默认配置文件 vim /etc/nginx/sites-available/default 开始配置

    server {  
            listen 80 default_server; // 监听80端口, 默认站点
            listen [::]:80 default_server ipv6only=on; // IPV6 开启
    
            root /usr/share/nginx/html; // 网站站点目录
    
            index index.php index.html index.htm; // 默认首页, 这里添加 index.php
    
            server_name localhost; // 域名
    
            location / {
                    try_files $uri $uri/ =404; // 首页访问规则
            }
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            // 开启这块的注释
            location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
            #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    
                    // 两种方式 : 1.监听 9000 端口, 2.sock 链接, 推荐使用 1
                    fastcgi_pass 127.0.0.1:9000;
            #       fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }
    }
    

    如果是设置的 fastcgi_pass unix:/var/run/php5-fpm.sock fpm 配置文件不需要修改, 如果是监听 9000 端口就需要修改 fpm 配置文件 vim /etc/php5/fpm/pool.d/www.conf.

    // 注释掉 sock 添加监听 9000 端口
    ;listen = /var/run/php5-fpm.sock
    listen = 127.0.0.1:9000  
    

    fpm 配置文件修改之后, 需要重启 fpm 才能生效 service php5-fpm start, 如果想要检测 9000 端口是否开启成功运行 netstat -tln

    运行 PHP 文件

    Nginx 的站点默认目录 /usr/share/nginx/html/

    // 进入站点目录
    cd /usr/share/nginx/html  
    // 编辑一个 PHP 文件
    vim index.php
    
    // 内容如下
    <?php  
        phpinfo();
    ?>
    

    优化

    php-fpm 优化

    php-fpm 配置文件在 /etc/php5/fpm/pool.d/www.conf

    php-fpm.conf 重要优化参数详解

    // 查看配置文件
    cat /etc/php5/fpm/pool.d/www.conf  
    

    pm = dynamic

    pm 参数指定了进程管理方式, 有两种可供选择: static 或 dynamic, 分别为静态或动态方式.

  • static 静态方式: 在php-fpm 启动的时候就创建了指定数目的进程, 在运行过程中不会再有变化 (并不是真的就永远不变)
  • dynamic 动态方式: 在运行过程中动态调整, 当然并不是无限制的创建新进程, 受 pm.max_spare_servers 参数影响, 动态适合小内存机器, 灵活分配进程,省内存. 静态适用于大内存机器, 动态创建回收进程对服务器资源也是一种消耗.
  • pm.max_children = 24

    static 模式下创建的子进程数或 dynamic 模式下同一时刻允许最大的 php-fpm 子进程数量.

    pm.start_servers = 16

    动态方式下的起始 php-fpm 进程数量

    pm.minspareservers = 12

    动态方式下服务器空闲时最小 php-fpm 进程数量

    pm.maxspareservers = 24

    动态方式下服务器空闲时最大 php-fpm 进程数量

    一般 php-fpm 进程占用 20~30m 左右的内存就按 30m 算. 如果单独跑 php-fpm, 动态方式起始值可设置物理内存 Mem/30M, 由于大家一般 NginxMySQL 都在一台机器上, 于是预留一半给它们, 即 php-fpm 进程数为 $Mem/2/30。

    // LNMP在一台机器上参数(仅供参考,建议压力测试得出)
    Mem=`free -m | awk '/Mem:/{print $2}'` #这台机器内存是 987M  
    sed -i "s@^pm.max_children.*@pm.max_children = $(($Mem/2/20))@" $php_install_dir/etc/php-fpm.conf  
    sed -i "s@^pm.start_servers.*@pm.start_servers = $(($Mem/2/30))@" $php_install_dir/etc/php-fpm.conf  
    sed -i "s@^pm.min_spare_servers.*@pm.min_spare_servers = $(($Mem/2/40))@" $php_install_dir/etc/php-fpm.conf  
    sed -i "s@^pm.max_spare_servers.*@pm.max_spare_servers = $(($Mem/2/20))@" $php_install_dir/etc/php-fpm.conf
    
    // 987M 内存:
    pm = dynamic  
    pm.max_children = 24  
    pm.start_servers = 16  
    pm.min_spare_servers = 12  
    pm.max_spare_servers = 24  
    

    上面代码块是一个自动计算的脚本 $php_install_dir/etc/php-fpm.conf 这里替换为你 php-fpm.conf 的路径, 或者带有有上述参数的配置文件, 然后就会自动替换参数, 下面还有更简单的办法.

    家目录生成一个文件

    cd /root  
    vim 1.conf  
    

    添加一下内容

    pm = dynamic  
    // 以下的参数随意填写, 后面会计算出来.
    pm.max_children = 24  
    pm.start_servers = 16  
    pm.min_spare_servers = 12  
    pm.max_spare_servers = 24
    

    自动计算最优参数

    // 以下代码一行一行复制至命令行执行
    Mem=`free -m | awk '/Mem:/{print $2}'`  
    sed -i "s@^pm.max_children.*@pm.max_children = $(($Mem/2/20))@" /root/1.conf  
    sed -i "s@^pm.start_servers.*@pm.start_servers = $(($Mem/2/30))@" /root/1.conf  
    sed -i "s@^pm.min_spare_servers.*@pm.min_spare_servers = $(($Mem/2/40))@" /root/1.conf  
    sed -i "s@^pm.max_spare_servers.*@pm.max_spare_servers = $(($Mem/2/20))@" /root/1.conf  
    

    执行完成之后 1.conf 文件的内容会根据当前服务器配置, 自动计算出最佳参数, cat 1.conf 查看文件, 按照里面的参数填写到你的 fpm 配置文件当中. 值得一提的是如果你的服务器内存是 1G 计算出的结果不会改变. (这里指上面 1.conf 的参数)

    这是我机器计算出来的结果

    // 当前机器内存为 : 1984M
    pm = dynamic  
    pm.max_children = 49  
    pm.start_servers = 33  
    pm.min_spare_servers = 24  
    pm.max_spare_servers = 49  
    
    ------分隔线----------------------------
    标签(Tag):Ubuntu Ubuntu从搭建到优化
    ------分隔线----------------------------
    推荐内容
  • 折腾之安装 Ubuntu 系统

    昨天中午突然心血来潮想装个 linux 系统玩玩,在听取别人的意见后装了 Ubuntu,163镜...

  • Ubuntu 环境下 MySQL 安装与安全优化

    安装 sudo apt- get updatesudo apt- get install mysql-server mysql-client # 设置r...

  • TortoiseGit安装教程及在windows下提交代码到github

    TortoiseGit 是Windows下的可视化Git界面.在windows下使用git最好的软件就是TortoiseG...

  • xshell的使用技巧

    一、帐号密码保存 可以保存多个vps登陆信息,免去每次输入的烦恼。 二、数字小键盘输...

  • kipmi0进程占用cpu高的问题及处理办法

    近期有同事反馈部分机器中kipmi0 占用cpu100%的情况,整理了以下相关资料共大家参考 i...

  • Ubuntu 18.04如何在不重启的情况下安装内核更新

    使用 Ubuntu 18.04 LTS 将使得 Linux 内核实时修补功能变得非常容易,实时修补(Live p...

  • 猜你感兴趣
  • 教育技术学动态
  • 教育技术学论文
  • 理论研究
  • 应用研究
  • 资源收藏
  • 百家观点
  • 英文文献
  • 中国电化教育
  • 电化教育研究
  • 中国远程教育
  • 开放教育研究
  • 现代教育技术
  • 远程教育杂志
  • 现代远距离教育
  • 中国教育信息化
  • 中国信息技术教育
  • 中小学信息技术
  • Flash龙8国际平台入口
  • Photoshop龙8国际平台入口
  • 3DMAX龙8国际平台入口
  • AutoCAD龙8国际平台入口
  • CorelDRAW龙8国际平台入口
  • Matlab龙8国际平台入口
  • 其他龙8国际平台入口
  • .Net龙8国际平台入口
  • Asp龙8国际平台入口
  • Php龙8国际平台入口
  • Jsp龙8国际平台入口
  • Ajax龙8国际平台入口
  • Android教程
  • 其他龙8国际平台入口
  • Word教程
  • Excel教程
  • PowerPoint教程
  • Ubuntu教程
  • 其他教程
  • 课件下载
  • 软件下载
  • 视频教程下载
  • 其他下载
  • 教案大全
  • 试题大全
  • 课件大全
  • 其他大全
  • 人像摄影
  • 风光摄影