资讯专栏INFORMATION COLUMN

这个周末上线一个帮朋友做的网站,遇到挺多坑,记录一下

nidaye / 2909人阅读

摘要:因为这次上线的网站没有什么并发量,方式要比的方式快而且消耗资源少,所以我还是采用方式。

上线前准备 购买服务器,目前选择的是阿里云服务器,选择的是入门型1核1G实例

</>复制代码

  1. 目前没什么活动,三年1400软妹币

配置SSH连接

</>复制代码

  1. 增加本机ssh连接配置,一般激活实例后,ssh的22端口是默认开放的,可以直接通过root用户进行登录配置部署环境

  2. 登录到服务器后,将自己的公钥加入到 ~/.ssh/authorized_keys 配置文件中就可直接通过秘钥进行登录

服务器配置

</>复制代码

  1. 服务器系统版本:CentOS Linux release 7.4.1708 (Core)

  2. 内存:1G

  3. CPU:1核

  4. 硬盘:40G

上线流程 - 环境搭建 安装Mysql5.5

因为服务器配置有点低,所以这边选择安装比较低的mysql版本。从CentOS 7.0发布以来,yum源中开始使用mariadb来代替MySQL的安装。即使你输入的是yum install mysql , 显示的也是mariadb的安装内容,因此,如果使用yum安装MySQL的话,就需要去下载官方指定的yum源。
网址: https://dev.mysql.com/downloads/repo/yum/。

先卸载mariadb,查看mariadb是否已经安装

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# yum list installed | grep mariadb
  2. mariadb-libs.x86_64 1:5.5.56-2.el7 @anaconda

进行卸载

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# yum -y remove mariadb*
  2. Loaded plugins: fastestmirror
  3. Resolving Dependencies
  4. ...... **省略过程**
  5. Removed:
  6. mariadb-libs.x86_64 1:5.5.56-2.el7
  7. Dependency Removed:
  8. postfix.x86_64 2:2.10.1-6.el7 redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1
  9. Complete!

获取yum源和数据库安装(官方指南)

</>复制代码

  1. wget http://repo.mysql.com/yum/mysql-5.5-community/el/6/x86_64/mysql-community-release-el6-5.noarch.rpm #MySQL5.5yum源

安装yum源

</>复制代码

  1. rpm -ivh mysql-5.5-community/el/6/x86_64/mysql-community-release-el6-5.noarch.rpm

安装好yum源后,需要修改一下配置文件,文件路径在 /etc/yum.repos.d/mysql-community.repo,要将5.5的enabled改为1,而5.6的enabled改为0

</>复制代码

  1. # Enable to use MySQL 5.5
  2. [mysql55-community]
  3. name=MySQL 5.5 Community Server
  4. baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/6/$basearch/
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  8. # Enable to use MySQL 5.6
  9. [mysql56-community]
  10. name=MySQL 5.6 Community Server
  11. baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
  12. enabled=0
  13. gpgcheck=1
  14. gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  15. # Note: MySQL 5.7 is currently in development. For use at your own risk.
  16. # Please read with sub pages: https://dev.mysql.com/doc/relnotes/mysql/5.7/en/
  17. [mysql57-community-dmr]
  18. name=MySQL 5.7 Community Server Development Milestone Release
  19. baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
  20. enabled=0
  21. gpgcheck=1
  22. gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

修改后保存退出,开始安装MySQL。在安装之前,可以查看下是否已有MySQL可安装文件

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# yum repolist enabled | grep "mysql.*-community.*"
  2. mysql-connectors-community/x86_64 MySQL Connectors Community 49
  3. mysql-tools-community/x86_64 MySQL Tools Community 61
  4. mysql55-community/x86_64 MySQL 5.5 Community Server 449

安装mysql

</>复制代码

  1. # 安装client,devel,server
  2. yum install mysql-community-client mysql-community-devel mysql-community-server

安装完毕后,可以查看下当前mysql版本

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# rpm -qi mysql-community-server
  2. Name : mysql-community-server
  3. Version : 5.5.60
  4. Release : 2.el6
  5. Architecture: x86_64
  6. Install Date: 2018年05月05日 星期六 16:26:00
  7. ......

启动mysql

执行 service mysqld start 启动mysql

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# service mysqld start
  2. Starting mysqld (via systemctl): [ OK ]

ok,mysql安装完毕

</>复制代码

  1. 常用命令:

    systemctl start mysqld #启动mysqld

  2. systemctl stop mysqld #停止mysqld

  3. systemctl restart mysqld #重启mysqld

  4. systemctl enable mysqld #设置开机启动

  5. systemctl status mysqld #查看 MySQL Server 状态

数据库安全设置
设置mysql root账户密码

</>复制代码

  1. # mysqladmin -u root password "new password"

重新登录mysql报如下错误

</>复制代码

  1. ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: YES)

执行如下命令进行解决

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# systemctl stop mysqld **关闭mysql服务**
  2. [root@iZbp17dq2xryqoixibq5u1Z ~]# mysqld --user=root --skip-grant-tables & **关闭skip-grant-tables**
  3. [1] 32163
  4. [root@iZbp17dq2xryqoixibq5u1Z ~]# 180505 16:57:08 [Note] mysqld (mysqld 5.5.60) starting as process 32163 ...
  5. 180505 16:57:08 [Note] Plugin "FEDERATED" is disabled.
  6. 180505 16:57:08 InnoDB: The InnoDB memory heap is disabled
  7. 180505 16:57:08 InnoDB: Mutexes and rw_locks use GCC atomic builtins
  8. 180505 16:57:08 InnoDB: Compressed tables use zlib 1.2.3
  9. 180505 16:57:08 InnoDB: Using Linux native AIO
  10. 180505 16:57:08 InnoDB: Initializing buffer pool, size = 128.0M
  11. 180505 16:57:08 InnoDB: Completed initialization of buffer pool
  12. 180505 16:57:08 InnoDB: highest supported file format is Barracuda.
  13. 180505 16:57:08 InnoDB: Waiting for the background threads to start
  14. 180505 16:57:09 InnoDB: 5.5.60 started; log sequence number 1595675
  15. 180505 16:57:09 [Note] Server hostname (bind-address): "0.0.0.0"; port: 3306
  16. 180505 16:57:09 [Note] - "0.0.0.0" resolves to "0.0.0.0";
  17. 180505 16:57:09 [Note] Server socket created on IP: "0.0.0.0".
  18. 180505 16:57:09 [Note] mysqld: ready for connections.
  19. Version: "5.5.60" socket: "/var/lib/mysql/mysql.sock" port: 3306 MySQL Community Server (GPL)
  20. mysql -u root mysql **空密码登入**
  21. Reading table information for completion of table and column names
  22. You can turn off this feature to get a quicker startup with -A
  23. Welcome to the MySQL monitor. Commands end with ; or g.
  24. Your MySQL connection id is 1
  25. Server version: 5.5.60 MySQL Community Server (GPL)
  26. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  27. Oracle is a registered trademark of Oracle Corporation and/or its
  28. affiliates. Other names may be trademarks of their respective
  29. owners.
  30. Type "help;" or "h" for help. Type "c" to clear the current input statement.
  31. mysql> UPDATE user SET authentication_string=PASSWORD("new password") where USER="root"; **重新设置root密码**
  32. Query OK, 4 rows affected (0.00 sec)
  33. Rows matched: 4 Changed: 4 Warnings: 0
  34. mysql> FLUSH PRIVILEGES; **刷新设置**
  35. Query OK, 0 rows affected (0.00 sec)
  36. mysql> quit
  37. Bye
安装PHP环境

开始安装PHP和PHP-FPM
首先安装EPEL。EPEL即Extra Packages for Enterprise Linux的简称,是为企业级Linux提供的一组高质量的额外软件包

</>复制代码

  1. yum -y install epel-release

安装PHP和PHP-FPM

</>复制代码

  1. yum -y install php php-fpm

查看PHP版本

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# php -v
  2. PHP 5.4.16 (cli) (built: Mar 7 2018 13:34:47)
  3. Copyright (c) 1997-2013 The PHP Group
  4. Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

这时发现PHP版本是5.4的,原因是yum默认的epel-release源太低了,而我需要部署的网站是基于Laravel5.5开发的,环境要求:

</>复制代码

  1. PHP >= 7.0.0 需要重新安装PHP7

  2. PHP OpenSSL 扩展

  3. PHP PDO 扩展

  4. PHP Mbstring 扩展

  5. PHP Tokenizer 扩展

  6. PHP XML 扩展

删除之前安装的PHP版本

</>复制代码

  1. yum remove php* php-common

我们需要更换下rpm源,搜索epel-release源并删除后进行更新

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# rpm -qa | grep epel
  2. epel-release-7-11.noarch
  3. [root@iZbp17dq2xryqoixibq5u1Z ~]# rpm -e epel-release-7-11.noarch
  4. warning: /etc/yum.repos.d/epel.repo saved as /etc/yum.repos.d/epel.repo.rpmsave
  5. [root@iZbp17dq2xryqoixibq5u1Z ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
  6. Retrieving https://mirror.webtatic.com/yum/el7/epel-release.rpm
  7. warning: /var/tmp/rpm-tmp.PHnPwl: Header V4 RSA/SHA1 Signature, key ID 62e74ca5: NOKEY
  8. Preparing... ################################# [100%]
  9. Updating / installing...
  10. 1:epel-release-7-5 ################################# [100%]
  11. [root@iZbp17dq2xryqoixibq5u1Z ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  12. Retrieving https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  13. warning: /var/tmp/rpm-tmp.ohTozh: Header V4 RSA/SHA1 Signature, key ID 62e74ca5: NOKEY
  14. Preparing... ################################# [100%]
  15. Updating / installing...
  16. 1:webtatic-release-7-3 ################################# [100%]

重新安装PHP和一些相关扩展

</>复制代码

  1. yum install php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-pdo.x86_64

安装PHP-FPM

</>复制代码

  1. yum install php72w-fpm

再次查看PHP版本

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# php -v
  2. PHP 7.2.4 (cli) (built: Mar 30 2018 08:49:13) ( NTS )
  3. Copyright (c) 1997-2018 The PHP Group
  4. Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

启动PHP-FPM

</>复制代码

  1. systemctl start php-fpm
  2. systemctl enable php-fpm.service **开机自启动**

常用命令:

</>复制代码

  1. systemctl start php-fpm # 启动

    systemctl stop php-fpm # 停止

  2. systemctl restart php-fpm # 重启

  3. systemctl enable php-fpm #开机自启动

安装Nginx

开始安装Nginx

</>复制代码

  1. yum install nginx

安装完毕后,启动Nginx

</>复制代码

  1. systemctl start nginx
  2. systemctl enable nginx **系统启动时自动启动Nginx**

常用命令:

</>复制代码

  1. fuser -k 80/tcp # 杀死80端口

    nginx -s stop # 停止

  2. nginx -s reopen # 重启

  3. nginx -s reload # 重新载入配置文件

网站部署 生成秘钥

</>复制代码

  1. ssh-keygen -t rsa

提示一直回车就行,将生成的秘钥添加到项目托管的git库网站上,因为我的网站是放在Coding上,我直接添加在了项目部署秘钥

克隆项目

通过 git clone 命令将项目拉取到服务器上,我这边因为是Nginx,所以我拉取到 /var/www/ 目录下,

安装composer

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z project_fjylhjjsyxgs]# curl -sS https://getcomposer.org/installer | php
  2. All settings correct for using Composer
  3. Downloading...
  4. Composer (version 1.6.5) successfully installed to: /var/www/project_fjylhjjsyxgs/composer.phar
  5. Use it: php composer.phar

移动composer.phar文件到/usr/local/bin目录下 ,使命令全局可用,并更换Packagist中国全量镜像

</>复制代码

  1. mv composer.phar /usr/local/bin/composer
  2. composer config -g repo.packagist composer https://packagist.phpcomposer.com

通过composer安装项目依赖,但是出现了报错

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z project_fjylhjjsyxgs]# composer install
  2. Loading composer repositories with package information
  3. Installing dependencies (including require-dev) from lock file
  4. Your requirements could not be resolved to an installable set of packages.
  5. Problem 1
  6. - Installation request for phar-io/manifest 1.0.1 -> satisfiable by phar-io/manifest[1.0.1].
  7. - phar-io/manifest 1.0.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  8. Problem 2
  9. - Installation request for phpunit/php-code-coverage 5.3.0 -> satisfiable by phpunit/php-code-coverage[5.3.0].
  10. - phpunit/php-code-coverage 5.3.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  11. Problem 3
  12. - Installation request for phpunit/phpunit 6.5.7 -> satisfiable by phpunit/phpunit[6.5.7].
  13. - phpunit/phpunit 6.5.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  14. Problem 4
  15. - Installation request for theseer/tokenizer 1.1.0 -> satisfiable by theseer/tokenizer[1.1.0].
  16. - theseer/tokenizer 1.1.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  17. To enable extensions, verify that they are enabled in your .ini files:
  18. - /etc/php.ini
  19. - /etc/php.d/bz2.ini
  20. - /etc/php.d/calendar.ini
  21. - /etc/php.d/ctype.ini
  22. - /etc/php.d/curl.ini
  23. - /etc/php.d/exif.ini
  24. - /etc/php.d/fileinfo.ini
  25. - /etc/php.d/ftp.ini
  26. - /etc/php.d/gd.ini
  27. - /etc/php.d/gettext.ini
  28. - /etc/php.d/gmp.ini
  29. - /etc/php.d/iconv.ini
  30. - /etc/php.d/json.ini
  31. - /etc/php.d/ldap.ini
  32. - /etc/php.d/mbstring.ini
  33. - /etc/php.d/pdo.ini
  34. - /etc/php.d/pdo_sqlite.ini
  35. - /etc/php.d/phar.ini
  36. - /etc/php.d/shmop.ini
  37. - /etc/php.d/simplexml.ini
  38. - /etc/php.d/sockets.ini
  39. - /etc/php.d/sqlite3.ini
  40. - /etc/php.d/tokenizer.ini
  41. - /etc/php.d/xml.ini
  42. - /etc/php.d/zip.ini
  43. You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Google后发现,php-xml扩展有以上需要的相关软件包

</>复制代码

  1. yum install php72w-xml.x86_64

重新执行composer install命令,依赖下载成功

设置Nginx配置文件

我本机homestead中的Nginx是通过 /etc/nginx/sites-available 目录设置对应多域名的nginx配置文件,但是不知道服务器上安装的Nginx,却没有这个目录,所以查看了下Nginx.conf文件,发现http模块中有如下一条配置

</>复制代码

  1. 本机homesteadNginx.conf
  2. ##
  3. # Virtual Host Configs
  4. ##
  5. include /etc/nginx/conf.d/*.conf;
  6. include /etc/nginx/sites-enabled/*;
  7. 服务器上安装的Nginx.conf
  8. # Load modular configuration files from the /etc/nginx/conf.d directory.
  9. # See http://nginx.org/en/docs/ngx_core_module.html#include
  10. # for more information.
  11. include /etc/nginx/conf.d/*.conf;

那好吧,我估计sites-available也是软连接的conf.d或者sites-enabled目录吧,所以我就直接将官方手册中Nginx配置复制了一份到/etc/nginx/conf.d/域名.conf,修改了一些配置

</>复制代码

  1. server {
  2. listen 80;
  3. server_name 域名或公网IP;
  4. root 项目地址指向到public目录;
  5. add_header X-Frame-Options "SAMEORIGIN";
  6. add_header X-XSS-Protection "1; mode=block";
  7. add_header X-Content-Type-Options "nosniff";
  8. index index.html index.htm index.php;
  9. charset utf-8;
  10. location / {
  11. try_files $uri $uri/ /index.php?$query_string;
  12. }
  13. location = /favicon.ico { access_log off; log_not_found off; }
  14. location = /robots.txt { access_log off; log_not_found off; }
  15. error_page 404 /index.php;
  16. location ~ .php$ {
  17. fastcgi_split_path_info ^(.+.php)(/.+)$;
  18. fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; **这里有个坑下面讲**
  19. fastcgi_index index.php;
  20. include fastcgi_params;
  21. }
  22. location ~ /.(?!well-known).* {
  23. deny all;
  24. }
  25. }

配置完毕,保存退出,通过域名访问,发现报502错误,查看下Nginx的错误日志,发现报如下错误

</>复制代码

  1. 2018/05/06 20:17:37 [crit] 5898#0: *66 connect() to unix:/var/run/php/php7.2-fpm.sock failed (2: No such file or directory) while connecting to upstream,

简单的讲下,php-fpm.sock文件就是让Nginx和PHP-FPM的进程间进行通信的文件,具体的含义,这边就不做详细介绍了。进这个目录查看下是否存在这个目录或文件,发现两个问题:

目录错误,不是/var/run/php,而是/var/run/php-fpm

php7.2-fpm.sock这个文件未生成

未生成原因:php5.3之后的版本,php-fpm.conf里的listen的默认配置是127.0.0.1:9000,也就是tcp的方式,不会生成php-fpm.sock。

因为这次上线的网站没有什么并发量,unix socket方式要比tcp的方式快而且消耗资源少,所以我还是采用unix socket方式。定位到问题后,修改下 /etc/php-fpm.d/www.conf,也就是php-fpm的配置文件,关闭原来的listen方式,然后重启下php-fpm

</>复制代码

  1. ;listen = 127.0.0.1:9000
  2. listen = /var/run/php-fpm/php7.2-fpm.sock

这个时候,由于职业习惯,想把Nginx也重启下,然后就又碰到了一个问题

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z project_fjylhjjsyxgs]# nginx -s stop
  2. [root@iZbp17dq2xryqoixibq5u1Z project_fjylhjjsyxgs]# nginx -s reload
  3. nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

这应该是因为把Nginx进程杀死后pid丢失了,下一次再开启nginx -s reload时无法启动。再次面向Google编程,发现还有挺多人碰到这个问题,所以解决方法马上就能搜索到了,执行如下命令

</>复制代码

  1. nginx -c /etc/nginx/nginx.conf
  2. nginx -s reload

ok,接着Navicat远程连接到服务器数据库,source下数据库完毕。现看起来应该是可以跑起网站来了。再次访问域名,发现还是502,再次查看Nginx日志,报如下错误:

</>复制代码

  1. 2018/05/06 20:37:00 [crit] 6078#0: *1 connect() to unix:/var/run/php-fpm/php7.2-fpm.sock failed (13: Permission denied) while connecting to upstream,

和上面报错看起来差不多,但是这次主要问题出在跑Nginx的用户是Nginx,而php-fpm.sock这个文件,监听的Nginx用户没有该权限,导致Nginx无法访问php-fpm.sock这个文件,自然监听就失去了效果,再次修改php-fpm配置文件和重启下php-fpm

</>复制代码

  1. ; Set permissions for unix socket, if one is used. In Linux, read/write
  2. ; permissions must be set in order to allow connections from a web server. Many
  3. ; BSD-derived systems allow connections regardless of permissions.
  4. ; Default Values: user and group are set as the running user
  5. ; mode is set to 0660
  6. listen.owner = nginx
  7. listen.group = nginx
  8. listen.mode = 0660

重新访问下域名,发现访问任何路由都是白屏,这次状态码都是200了,但是没有任何输出,再次面向Google编程……发现问题:

</>复制代码

  1. 由于nginxphp-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 .html 都能正常访问,而 .php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。 简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。 为了解决这个问题,需要改动nginx默认的fastcgiparams配置文件

/etc/nginx/fastcgi_params 文件的最后增加两行:

</>复制代码

  1. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  2. fastcgi_param PATH_INFO $fastcgi_script_name;

再再再次访问域名,终于正常显示了,但是页面上又出现了新的错误:

</>复制代码

  1. could not find driver(select * from users where deleted = 0

任何有sql查询的页面都报如上错误,这个错误多半是因为pdo_mysql未打开或者未安装此模块造成,执行 php -m 发现还真没装,安装php72w-mysql又遇到一个坑

</>复制代码

  1. yum install php72w-mysql

报如下错误,说缺少libmysqlclient.so.18依赖

</>复制代码

  1. ......
  2. error: package: php72w-mysql
  3. requires: libmysqlclient.so.18(libmysqlclient_18)(64bit)
  4. Available: 1:mariadb-libs-5.5.52-1.el7.x86_64 (base)
  5. libmysqlclient.so.18(libmysqlclient_18)(64bit)
  6. ......

这就很奇怪了,查看用户库文件目录内libmysqlclient.so.18已经存在

</>复制代码

  1. [root@iZbp17dq2xryqoixibq5u1Z ~]# ll /usr/lib64/mysql/libmysqlclient.so.18
  2. libmysqlclient.so.18 libmysqlclient.so.18.1.0

这个坑花了一个小时,Google多次尝试无果后,认真思考下可能的原因,想了想可能是mysql版本的问题,修改下 /etc/yum.repos.d/mysql-community.repo 配置文件,将5.6的enabled设为1,5.5设为0,更新Mysql版本后,再次执行 yum install php72w-mysql 安装pdo_mysql模块成功…...

至此,网站访问终于成功!

后续的部署优化,另外开篇记录。

</>复制代码

  1. 原文博客地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40195.html

相关文章

  • 这个周末上线一个朋友做的网站遇到多坑记录一下

    摘要:因为这次上线的网站没有什么并发量,方式要比的方式快而且消耗资源少,所以我还是采用方式。 上线前准备 购买服务器,目前选择的是阿里云服务器,选择的是入门型1核1G实例 目前没什么活动,三年1400软妹币 配置SSH连接 增加本机ssh连接配置,一般激活实例后,ssh的22端口是默认开放的,可以直接通过root用户进行登录配置部署环境 登录到服务器后,将自己的公钥加入到 ~/.ssh/a...

    array_huang 评论0 收藏0
  • 2016年终工作总结

    摘要:由于初版需求及开发工作都没有参与,在接手项目后过了遍前端结构发现所有交互及组件都是现撸,并未使用市面上已有的优秀前端框架从我个人角度理解上出发,后续需求变更中当需要实现某些常用组件样式或交互时,基本上都需要现撸或者寻找合适的组件。 2016悄无声息的过去了,再过不久便是农历新年 这几天相对清闲梳理了一下去年所做的工作,希望在新的一年能发展的更好 今年一共研发或升级了五款产品:合伙人、夺...

    hoohack 评论0 收藏0

发表评论

0条评论

nidaye

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<