【www.bbyears.com--php安全】
添加用户
拿到一台服务器,第一件事是去添加一个平时操作用的用户,最好不要直接使用 root 用户,因为会有安全问题。下面添加一个用户叫 ninghao :
adduser ninghao
设置密码
有了 ninghao 这个用户以后,可以再设置一下他的密码:
passwd ninghao
root 权限
给 ninghao 用户分配可以使用 root 用户的权限,这样需要 root 权限的时候,可以在命令前面添加 sudo:
gpasswd -a ninghao wheel
配置 SSH
平时要 SSH 到服务器,然后去控制服务器,连接的时候有个默认的端口,为了安全,我们可以修改一下这个端口号,比如改成 3333:
vi /etc/ssh/sshd_config # 修改为 Port 3333 PermitRootLogin no # 重载服务 systemctl reload sshd.service
SWAP
内存用完了就会用虚拟内存,SWAP 就是虚拟内存,不得已的时候才会用到。一般虚拟内存的大小是物理内存的两倍,下面的命令会添加一个 4G 的 SWAP:
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'
防火墙
防火墙可以控制进入到服务器或者从服务器出去的数据,CentOS 7 上自带一个 firewalld。
# 开启 firewalld 服务: sudo systemctl start firewalld # 开放 SSH 自定义的端口 sudo firewall-cmd --permanent --add-port=3333/tcp # 开放 HTTP sudo firewall-cmd --permanent --add-service=http # 开放 HTTPS sudo firewall-cmd --permanent --add-service=https # 开放 SMTP sudo firewall-cmd --permanent --add-service=smtp # 查看 sudo firewall-cmd --get-services sudo firewall-cmd --permanent --list-all # 重载服务 sudo firewall-cmd --reload # 开机启动 sudo systemctl enable firewalld
挂载
如果你在阿里云购买的服务器,同时又购买了数据盘,你需要格式化一下,然后把它挂载到系统的某个指定的地方。
sudo fdisk -l # 发现 /dev/xvdb: 32.2 GB sudo fdisk /dev/xvdb # 按键 n, p, 1, enter, enter, n, enter, enter, wq sudo fdisk -l # 发现 /dev/xvdb1 sudo mkfs.ext3 /dev/xvdb1 # 把 /dev/xvdb1 /mnt ext3 defaults 0 0 # 添加到 etc/fstab sudo mount -a
添加仓库
系统自带一些仓库,这些仓库里的软件可能并不是你想要的,有可能版本比较旧。所以你需要安装一些第三方的仓库,这些仓库里会有比较新的软件,比如 ius 仓库。先安装一下 epel 仓库,然后再安装 ius 仓库。下面的 rpm 文件可能会失效,你可以在 IUS 网站的仓库列表里找到最新的下载地址。
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm sudo rpm -Uvh https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm PHP sudo yum install php56u-fpm -y sudo yum install php56u-gd php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-xmlrpc php56u-pecl-jsonc php56u-pecl-memcached -y sudo systemctl start php-fpm sudo systemctl enable php-fpm
配置:
# PHP-FPM vi /etc/php-fpm.d/www.conf # 减小内存占用 pm = dynamic pm.max_children = 10 原:50 pm.start_servers = 3 原:5 pm.min_spare_servers = 1 原 5 pm.max_spare_servers = 5 原 35 pm.max_requests = 0 # php.ini vi /etc/php.ini memory_limit 512M upload_max_filesize 300M post_max_size 300M
NGINX
Web 服务器。
# 安装 sudo yum install nginx -y # 启动 sudo systemctl start nginx # 设置为开机自动启动 sudo systemctl enable nginx 配置: client_max_body_size 256m; fastcgi_read_timeout 600; MariaDB 数据库,可以完全代替 MySQL。 # 删除系统自带的 MariaDB sudo yum remove mariadb-libs # 安装新的 MariaDB sudo yum install mariadb100u mariadb100u-server -y # 启动 sudo systemctl start mariadb # 设置为开机自动启动 sudo systemctl enable mariadb Sendmail 发邮件用的小工具。 # 安装 sudo yum install sendmail -y # 启动 sudo systemctl start sendmail # 设置为开机自动启动 sudo systemctl enable sendmail Composer PHP 包管理工具。 curl -sS https://getcomposer.org/installer | php echo $PATH sudo mv composer.phar /usr/local/bin/composer # 编辑 vi ~/.bash_profile # 添加 export PATH="$HOME/.composer/vendor/bin:$PATH" # 执行 source ~/.bash_profile Git 版本控制工具。 # 安装 sudo yum install git2u -y # 错误 Error: perl-Git2u conflicts with perl-Git-1.8.3.1-4.el7.noarch Error: git2u conflicts with git-1.8.3.1-4.el7.x86_64 # 解决 sudo yum remove perl-Git-1.8.3.1-4.el7.noarch # 配置 git config --global user.email 117663444@qq.com git config --global user.name "wanghao8080" Memcached sudo yum install memcached -y sudo systemctl start memcached sudo systemctl enable memcached Drush
管理 Drupal 网站用的命令行工具。
composer global require "drush/drush": "7.0.0"
WP-CLI
管理 WordPress 网站用的命令行工具。
# 下载 curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar # 添加执行权限 chmod u+x wp-cli.phar # 移动到环境变量目录 sudo mv wp-cli.phar /usr/local/bin/wp # 错误:无法下载
# 解决:手工下载并上传 rsync -a -e 'ssh -p 3333' ~/downloads/wp-cli.phar ninghao@x.x.x.x:~/