1. 登陆,升级应用,查询和关闭selinux

    yum update
    getenforce
    setenforce 0
    vi /etc/selinux
  2. 添加非root用户
    adduser deploy
    passwd deploy
    usermod -a -G wheel deploy
    vi /etc/sudoers
    %wheel ALL=(ALL) ALL
  3. ssh配置
    ssh deploy@123.456.78.90
    ssh-keygen
    mkdir ~/.ssh
    scp ~/.ssh/id_rsa.pub deploy@123.456.78.90:
    touch ~/.ssh/authorized_keys
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    chown -R deploy:deploy ~/.ssh
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  4. 禁止密码与root登陆,先确定sudo权限,打开 /etc/ssh/sshd_config,修改 PasswordAuthentication 的值为 no,取消注释。修改PermitRootLogin同上。重启SSHD。
    service sshd restart
  5. PHP、PHP-FPM 安装
    sudo rpm -Uvh  http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm;  
    //32位地址 http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm; sudo yum -y --enablerepo=epel,remi,remi-php56 install php-fpm php-cli php-gd php-mbstring php-mcrypt php-mysqlnd php-opcache php-pdo php-devel;
  6. PHP-FPM配置
    sudo vi /etc/php-fpm.conf
    //修改以下两处,1分钟内子进程失败达到10个就优雅重启
    emergency_restart_threshold = 10
    emergency_restart_interval = 1m

    在配置文件中有 include=/etc/php-fpm.d/*.conf   , 表示池定义 pool definition 在php-fpm.d目录下

    vi /etc/php-fpm.d/www.conf
    //修改用户,尽量每个网站一个用户
    user = deploy
    group = deploy
    //与nginx请求处理的端口
    listen = 127.0.0.1:9000
    //服务器内存除以进程占用内存
    pm.max_children = 50
    //开启服务时自动开启的准备进程数
    pm.start_servers = 3
    //每个池的最大进程数
    pm.max_requests = 1000
    //慢日志
    slowlog = /path/to/slowlog.log
    request_slowlog_timeout = 5s
    //最后重启服务
    sudo service php-fpm restart
    chkconfig php-fpm on
  7. 安装nginx
    sudo yum install nginx;
    sudo systemctl enable nginx.service;
    sudo systemctl start nginx.service;
  8. 建立网站目录与日志目录
    mkdir -p /home/deploy/apps/example.com/current/public
    mkdir -p /home/deploy/apps/logs
    chmod -R +rx /home/deploy

    建立 /etc/nginx/conf.d/example.conf

  9. server
    {
    listen 80;
    server_name example.com;
    index index.php;
    client_max_body_size 50M;
    error_log /home/deploy/apps/logs/example.error.log;
    access_log /home/deploy/apps/logs/example.access.log;
    root /home/deploy/apps/example.com/current/public;
    location /
    {
    try_files $uri $uri/ /index.php$is_args$args;
    }
    location ~ \.php {
    try_files $uri=404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000;
    }
    }
  10. 重启
    sudo systemctl restart nginx.service
    sudo chkconfig nginx on
    //如果权限失败了, 以root权限启动
    sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  11. 检查防火墙,检查端口,检查selinux /getenforce ,最后可以编辑一个phpinfo页面放在网站根目录,在主机设置好hosts映射到虚拟机,终于可以在主机浏览器中输入虚拟机地址,见到php页面了。
  12. 多虚拟机参考http://www.androiddev.net/webserver-apache-to-nginx/
  13. 配置参考  http://huoding.com/2013/10/23/290
    server {
    listen 80;
    server_name foo.com; root /path;
    index index.html index.htm index.php; location / {
    try_files $uri $uri/ /index.php$is_args$args;
    } location ~ \.php$ {
    try_files $uri =404; include fastcgi.conf;
    fastcgi_pass 127.0.0.1:9000;
    }
    }
    fastcgi_pass unix:/dev/shm/php-fpm.sock;

最新文章

  1. shell技巧
  2. JS获取上个月(转)
  3. js confirm函数 删除提示
  4. maven项目如何使用jetty启动?
  5. nhibernat4.0.0.4000 bug
  6. [转]SQLServer2008日志文件无法收缩处理方法
  7. Javascript中prototype属性的详解
  8. hdu 2070
  9. Linux安全攻防笔记
  10. BZOJ 1176 MOKIA
  11. GIT GUI的使用(转)
  12. POJ 3744 Scout YYF I (概率dp+矩阵快速幂)
  13. ajax参数中出现空格
  14. javascript (二) 事件
  15. Easyui 关闭jquery-easui tab标签页前触发事件
  16. LeetCode 31 Next Permutation / 60 Permutation Sequence [Permutation]
  17. C#如何生成JSON字符串提交给接口(服务器)
  18. Python通过简单的文件读写,来实现注册登录
  19. 布思算法——Java实现
  20. [k8s]jenkins部署在k8s集群

热门文章

  1. ELK5.X使用X-Pack配置密码
  2. NUC131的系统管理
  3. 元素设置disabled属性后便无法向后台传值
  4. <转>SVM实现之SMO算法
  5. c++11——可变参数模板
  6. JZOJ.5329【NOIP2017模拟8.22】时间机器
  7. hql 语法与详细解释<转>
  8. Ubuntu16.04安装Nessus和MSF
  9. 9.Node.js 包管理器npm
  10. C++ 初始化函数的实现