服务器初始化配置过程1创建新的用户2配置用户的ssh秘钥SecureCRT的几种登录方法 1 使用密码通过ssh登陆11 在ssh的配置文件中找到12 加入登陆限制13 然后在etcsshsshd-users里面加入想要从外界登录进来的用户不必重启ssh即可使用 2 通过rsa公钥的方式登录21 创建秘钥22 登录另外密码限制登录用户与公私钥登录用户不冲突 3将数据盘挂载到根文件系统上面制作过程若开始没有lv与vg需要建立lv与vg 4安装php数据库mariadbapache1安装前的准备2 安装apache21 安装httpd 3 安装MariaDB31 安装主程序32 配置mysql33 测试登入MariaDB数据库安装完成 4 安装php以及其扩展组件41 安装php主程序42 测试php主程序是否安装成功43 安装php扩展 5配置php数据库mariadbapache1 配置apache2配置php 6联合测试1 测试php对mysql的支持 7安装phpMyAdmin8安装vsftp
服务器初始化配置过程:
1、创建新的用户
useradd bym //添加一个用户passwd bym //为用户创建密码Changing password for user bym.New password: Retype new password: passwd: all authentication tokens updated successfully.
2、配置用户的ssh秘钥
mkdir /home/bym/.ssh //在要创建ssh秘钥的用户家目录下创建.ssh目录cp authorized_keys /home/bym/.ssh/ //这个秘钥是在服务器管理平台创建并且绑定到root用户的,把此公钥文件拷贝到bym家目录下的.ssh文件中vim authorized_keys //删除原有的rsa,在服务器管理平台创建并下载秘钥公钥到客户机,复制公钥内容到此文件中在客户机的securecrt中创建ssh登录点,并且选择publickey登录,选择下载到的公钥文件(.pub文件)。SecureCRT的几种登录方法
2.1 使用密码通过ssh登陆
2.1.1 在ssh的配置文件中找到
#PasswordAuthentication no
改为
PasswordAuthentication yes
此时允许ssh使用密码进行登录,但是不够安全,可以在pam模块中加入登陆限制
2.1.2 加入登陆限制
在/etc/pam.d/sshd中加入
auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sshd-users
其中最后的那个路径代表你的用户限制名单所在的文件,如果没有的话需要自己修改目录或者是创建与上述路径相符的目录以及文件
sense=allow代表文件里面写的是允许登陆的用户名单,如果改为deny那就是拒绝登陆的用户名单,建议还是使用allow选项
2.1.3 然后在/etc/ssh/sshd-users里面加入想要从外界登录进来的用户,不必重启ssh即可使用
2.2 通过rsa公钥的方式登录
2.2.1 创建秘钥
在客户端创建rsa公钥与私钥,然后保存公钥与私钥到同一个目录下面,并且要求公钥和私钥的名字是相同的,以供securecrt登录然后把创建完成的公钥拷贝到服务器端的想要登录的用户的家目录下面的.ssh文件夹下,并且把该公钥名字改为authorized_keys以后再对同一用户添加ssh公钥的时候直接在authorized_keys文件末尾键入公钥内容即可2.2.2 登录
在客户端机器上面使用securecrt进行登录,选择创建的ssh连接登录方式为Publickey,把其他的都去掉,然后单击Publickey选择Properties之后选定创建的公钥路径,之后就可以进行登录了,为避免登录失败,要将服务器端的ssh服务重启一遍,在7.0系统里面使用systemctl restart sshd.service进行重启
另外:密码限制登录用户与公私钥登录用户不冲突
3、将数据盘挂载到根文件系统上面
我制作了一个磁盘阵列,可以随时往/data里面添加容量
制作过程:
LV > VG > PV
首先用fdisk /dev/sda
进行磁盘的新增,并通过t选项设置新增的partion为PV格式,即8epvcreate /dev/sda9
将刚刚制作出来的PVpartion添加入PV去,用pvdisplay进行查看vgextend /dev/sda9
把PV添加到VG里面lvresize -L +4G /dev/server/myhome
把制作出来的VG添加到LV磁盘阵列里面去resize2fs /dev/server/myhome
将容量确实的增加(若已经挂载)
若开始没有lv与vg,需要建立lv与vg
vgcreate vg_name /dev/sda
lvcreate -L 4G -n lv_name vg_name
在/etc/fstab里面添加/dev/web-var/lvweb-var /data ext4 defaults 0 0
4、安装php,数据库mariadb,apache
写在前面,使用yum安装千万不要更改mysql/mariadb的默认mysql.sock文件的位置,改了后面会费很大劲的,我是改完才知道的,下面依然是改过路径的安装方法,希望读者遇到改socket路径的直接跳过
4.1安装前的准备
使用yum search mariadb > mariadb
搜索yum库的mariadb相关包,并且把结果存到mariadb里面,在结果中大概先查看一下自己需要的东西使用mariadb-server 服务器包
mariadbmysql分支,完全兼容mysql
mariadb-libsMariaDB/MySQL客户端必须的共享库文件
yum search httpd > httpd-rpm
搜索yum库的httpd相关包,并且把结果存到httpd-rpm里面,在结果中大概先查看一下自己需要的东西httpdhttpd主程序
httpd-manualhttpd帮助文件,可不安装
yum info installed | grep Name
列出所有已经安装的软件
使用yum search php > php-extern
搜索yum库的php相关包,并且把结果存到php-extern里面,在结果中大概先查看一下自己需要的东西
phpphp主程序包php-common php通用程序包php-devel 添加php扩展的时候需要的文件php-fpmPHP FastCGI进程管理器(必须安装的),在5.3.3之后就集成到php里面了php-gd 使php支持gd库的一个扩展模块php-mcrypt 提供mcrypt库支持的标准php模块php-mysql 使php支持mysql(MariaDB)php-pdophp连接数据库方法php-odbc使php支持ODBC数据库php-snmp查询SNMP-managed设备支持模块libjpeg*jpeg支持php-ldap php-pearphp-xml使php支持xmlphp-xmlrpc 使php支持xml-rpc机制php-mbstring php-soap使php支持soap机制curl curl-devel
4.2 安装apache
4.2.1 安装httpd
yum install httpd
============================================================================================================Package Arch VersionRepository Size============================================================================================================Installing:httpd x86_642.4.6-40.el7.centos os2.7 MInstalling for dependencies:apr x86_641.4.8-3.el7os103 kapr-util x86_641.5.2-6.el7os92 khttpd-toolsx86_642.4.6-40.el7.centos os82 kmailcap noarch2.1.41-2.el7os31 k
可以看到httpd需要有四个依赖文件,yum会自动先安装依赖文件,输入y进行安装
Is this ok [y/d/N]: y
###4.2.2 启动并且测试apache
systemctl start httpd.service //启动apache,也可以使用apachectl start进行启动netstat -anp | grep httpd//在网络接口查看是否有httpd,可以看到使用80端口tcp 00 0.0.0.0:80 0.0.0.0:*LISTEN29478/httpd unix 3[ ] STREAMCONNECTED481766 29478/httpd
出现上面信息说明测试成功
4.3 安装MariaDB
4.3.1 安装主程序
yum install mariadb mariadb-server============================================================================================================Package Arch Version RepositorySize===========================================================================================================Installing:mariadb x86_64 1:5.5.44-2.el7.centos os 8.9 Mmariadb-server x86_64 1:5.5.44-2.el7.centos os 11 MInstalling for dependencies:perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 os 32 kperl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 os 57 kperl-DBD-MySQL x86_64 4.023-5.el7 os 140 kperl-DBI x86_64 1.627-4.el7 os 802 kperl-Data-Dumper x86_64 2.145-3.el7 os 47 kperl-IO-Compress noarch 2.061-2.el7 os 260 kperl-Net-Daemonnoarch 0.48-5.el7 os 51 kperl-PlRPCnoarch 0.-14.el7 os 36 kUpdating for dependencies:mariadb-libs x86_64 1:5.5.44-2.el7.centos os 754 kTransaction Summary============================================================================================================
Is this ok [y/d/N]: y
4.3.2 配置mysql
cat /etc/passwd
可以看到有mysql用户
cat /etc/group
可以看到有mysql用户组mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
由于我不想数据库文件存放在系统盘,所以想更改一下mysql数据库文件的存放位置
groupadd -r mysql -g 27
创建用户组,名字为mysql,组号为27
useradd -m -r -g mysql -d /data/mysql -s /sbin/nologin -c "MariaDB server" -u 27 mysql
创建用户mysql:x:27:27:MariaDB server:/data/mysql:/sbin/nologin
修改mysql家目录权限:
chown -R mysql:mysql mysql/
更新f文件
复制并且覆盖f文件
cp /usr/share/mysql/my-f /etc/f
进入编辑f文件
[client]标签改为
#socket = /var/lib/mysql/mysql.socksocket= /data/mysql/mysql.sock
[mysqld]标签改为
#socket = /var/lib/mysql/mysql.socksocket= /data/mysql/mysql.sockdatadir = /data/mysql/datadir
在/data/mysql下创建datadir目录
mkdir datadir
chown -R mysql:mysql datadir/
为mysql创建密码
在执行此步之前一定要先执行
systemctl start mariadb.service //这里会创建mysql.sock到上述指定的文件目录下netstat -anp | grep 3306 //查看是否启动mysqld,启动的话会出现下面信息tcp 00 0.0.0.0:3306 0.0.0.0:*LISTEN5348/mysqldfind -name mysql.sock//出现 /data/mysql/mysql.sock
出现上述信息说明已经成功启动,然后往下执行
mysql_secure_installation
出现ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)错误,明明已经修改了路径,怎么还是/var/lib/mysql/mysql.sock,查看mysql_secure_installation脚本文件,
:/Enter current password for root
查找得到get_root_password()里面有一个make_config函数,进入在echo “password=$esc_pass” >> $config下增加
echo “socket=/data/mysql/mysql.sock” >> $config
继续执行mysql_secure_installation
按enter,Set root password? [Y/n] :输入y
输入密码,确认密码
Remove anonymous users? [Y/n] :输入y,移除匿名用户,保证数据库安全性
Disallow root login remotely? [Y/n] :输入n,允许root用户远程登录,否则作为远端服务器是没有办法从localhost域在网页中登录的,这样就不利于使用phpMyadmin管理数据库了
往下一路输入y,最后出现
Thanks for using MariaDB!,配置成功
重启数据库
systemctl restart mariadb.service
4.3.3 测试登入MariaDB
mysql -u root -p
输入密码登陆之后出现下面信息,说明登录成功
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.44-MariaDB-log MariaDB Server
Copyright (c) 2000, , Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]>
键入show databases;
然后enter出现类似下面的表,说明成功操作数据库
+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema |+--------------------+
键入use mysql; show tables;
然后enter出现类似下面的表,说明成功操作数据库
+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv || db || event || func || general_log|| help_category || help_keyword || help_relation || help_topic|| host || ndb_binlog_index|| plugin|| proc || procs_priv|| proxies_priv || servers || slow_log || tables_priv|| time_zone || time_zone_leap_second|| time_zone_name || time_zone_transition|| time_zone_transition_type || user |+---------------------------+
较为重要的是user这张表,里面记录了可登入的用户以及密码等等。
数据库安装完成
4.4 安装php以及其扩展组件
4.4.1 安装php主程序
yum install php============================================================================================================Installing:php x86_64 5.4.16-36.el7_1 os 1.4 MInstalling for dependencies:libzip x86_64 0.10.1-8.el7os 48 kphp-clix86_64 5.4.16-36.el7_1 os 2.7 Mphp-common x86_64 5.4.16-36.el7_1 os 563 kTransaction Summary============================================================================================================
Is this ok [y/d/N]: y
rpm -qc php
查看php的配置文件得到
/etc/httpd/conf.d/php.conf
/etc/httpd/conf.modules.d/10-php.conf
ls /etc/httpd/conf.d/
可以看到有php.conf配置文件,此文件会决定可以让apache对.php文件进行解析
查看配置文件可以看到有
<FilesMatch \.php$>SetHandler application/x-httpd-php</FilesMatch>
ls /etc/httpd/conf.modules.d/
会看到有10-php.conf,此文件可以让apache加载php模块对.php内部的php语句进行解析
<IfModule prefork.c>LoadModule php5_module modules/libphp5.so</IfModule>
模块在/etc/httpd/modules/libphp5.so下面,ls即可看到
4.4.2 测试php主程序是否安装成功
echo "<?php phpinfo(); ?>" >> index.php`systemctl restart httpd.service//重启**apache**服务
在浏览器中输入IP地址访问,看是否有以下图片信息
4.4.3 安装php扩展
yum install php-common php-devel php-fpm php-gd php-mcrypt php-mysql php-pdo php-odbc php-snmp libjpeg* php-ldap php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel gd
5、配置php,数据库mariadb,apache
5.1 配置apache
ServerName :80
将此行的注释去掉,改为自己的域名,如果没有域名就是用IP地址
<IfModule dir_module>DirectoryIndex index.html //在这里添加index.php</IfModule>
AddDefaultCharset UTF-8改为
AddDefaultCharset GB-2312
我这里替换所有的var到我自己的网页存放目录
:g/var/s//data/g
5.2、配置php
vim /etc/php.ini:/default_charset //在vim编辑器里查找
在;default_charset = “UTF-8”下面添加
default_charset = “gb2312”
:/extension
; extension=msql.so,在下面添加
extension=mysql.soextension=mysqli.so
/* 经由测试其实不用添加,在php安装的时候已经写死了 */
6、联合测试
6.1 测试php对mysql的支持
进入数据库管理CREATE USER 'bym'@'%' IDENTIFIED BY '123456'; //为mysql创建一个新的用户create database bym; //创建一个新的数据库use bym //切换数据库CREATE TABLE testable (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20)); //创建一个表insert into testable values('mark', '1', '1995-11-13', 'new york');//插入一条数据select * from testable //查看表数据grant all privileges on bym.* to 'bym'@'%' identified by '123456';//为用户分配权限
重启apache服务,systemctl restart httpd.service
在index.php测试文件里面加入
<?php$link = mysql_connect("localhost", "bym", "b1y9m5");if (!$link) {echo "Error: Unable to connect to MySQL.";echo "Debugging error: " . mysql_error();}?>
出现Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
在/etc/php.ini文件里面
;;;;;;;;;;;;;;;;;;;; Module Settings ;;;;;;;;;;;;;;;;;;;;#下面两行是新加入的[mysql]mysql.default_socket = "/data/mysql/mysql.sock"
发现还是不行,原来在php中把此文件路径写死了,必须去/var/lib/mysql下面去找,解决办法有两个1、在PHP的mysql_connect中加入:/data/mysql/mysql.sock
,如下面的php语句块所示,指定文件位置.
2、还有是在/var/lib/mysql下面建立一个连接文件到/data/mysql/mysql.sock如下面所示
ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
ls -l /var/lib/mysql/mysql.sock
lrwxrwxrwx 1 root root 22 Apr 4 14:16 /var/lib/mysql/mysql.sock -> /data/mysql/mysql.sock
修改/data/mysql/mysql.sock路径所有文件的权限,全部修改为可读可执行,再次运行上面的测试,成功连接
数据库读写测试,运行下面的.php文件之后在服务器端登录查看数据库表,看到表中数据的确增加了,说明php与mysql成功建立联系
<?php$link = mysql_connect("localhost:/data/mysql/mysql.sock", "root", "r1o,o8t");if (!$link) {echo "Error: Unable to connect to MySQL.";echo "Debugging error: " . mysql_error();}//echo "Success: A proper connection to MySQL was made! The my_db database is great.";//echo "Host information: " . mysql_get_host_info($link);if(!mysql_query("use bym", $link)) {echo "select error : " . mysql_error();}if(!($res = mysql_query("insert into testable values('mark', '0', '1997-2-23', 'china')", $link))) {echo "query error : " . mysql_error();}echo "" . $res;mysql_close($link);?>
7、安装phpMyAdmin
yum install phpMyAdmin
//此软件是一个数据库管理软件,可用于数据库的图像化管理
cp -a /usr/share/phpMyAdmin/ /data/www/html/
后面是我的网页存放目录
浏览器中输入http://你的ip地址/phpMyAdmin/可以访问到phpmyadmin的页面
vim /etc/httpd/conf.d/phpMyAdmin.conf
//注释掉下面这段话,不然的话在浏览器里面输入的时候会访问/usr/share目录
#Alias /phpMyAdmin /usr/share/phpMyAdmin#Alias /phpmyadmin /usr/share/phpMyAdmin
vim /etc/phpMyAdmin/config.inc.php
$cfg['Servers'][$i]['socket'] = '/data/mysql/mysql.sock';// Path to the socket - leave blank for default socket$cfg['Servers'][$i]['auth_type']= 'cookie';改为$cfg['Servers'][$i]['auth_type']= 'http'; //浏览器输入登录,不断地失败$cfg['Servers'][$i]['auth_type']= 'http';改为$cfg['Servers'][$i]['auth_type']= 'config'; //浏览器登录,不断地失败
再次vim /etc/phpMyAdmin/config.inc.php
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’; // How to connect to MySQL server (‘tcp’ or ‘socket’)
我好像看到什么不得了的东西:‘tcp’,这什么东西,tcp还需要指定mysql.sock路径吗,看后面的注释,(‘tcp’ or ‘socket’),此处改为socket,再次运行,不行重启apache,终于登录成功。
最后更改登录方式为下面,更安全一点
$cfg['Servers'][$i]['auth_type']= 'http'; // Authentication method (config, http or cookie based)?$cfg['Servers'][$i]['user']= 'user';// MySQL user$cfg['Servers'][$i]['password']= '123456';// MySQL password (only needed when the 'auth_type' set to 'config'
8、安装vsftp
vsftpd用来进行文件传输,可以在客户机上面进行网站文件编写,完成之后进行上传(必须的软件)
直接yum install vsftpd
即可。安装完成后要用systemctl start vsftpd.service
进行启动