服务器初始化配置过程:
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 服务器包
mariadb mysql分支,完全兼容mysql
mariadb-libs MariaDB/MySQL客户端必须的共享库文件
- 使用
yum search httpd > httpd-rpm
搜索yum库的httpd相关包,并且把结果存到httpd-rpm里面,在结果中大概先查看一下自己需要的东西
httpd httpd主程序
httpd-manual httpd帮助文件,可不安装
yum info installed | grep Name
列出所有已经安装的软件
使用yum search php > php-extern
搜索yum库的php相关包,并且把结果存到php-extern里面,在结果中大概先查看一下自己需要的东西
php php主程序包 php-common php通用程序包 php-devel 添加php扩展的时候需要的文件 php-fpm PHP FastCGI进程管理器(必须安装的),在5.3.3之后就集成到php里面了 php-gd 使php支持gd库的一个扩展模块 php-mcrypt 提供mcrypt库支持的标准php模块 php-mysql 使php支持mysql(MariaDB) php-pdo php连接数据库方法 php-odbc 使php支持ODBC数据库 php-snmp 查询SNMP-managed设备支持模块 libjpeg* jpeg支持 php-ldap php-pear php-xml 使php支持xml php-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 Version Repository Size ============================================================================================================ Installing: httpd x86_64 2.4.6-40.el7.centos os 2.7 M Installing for dependencies: apr x86_64 1.4.8-3.el7 os 103 k apr-util x86_64 1.5.2-6.el7 os 92 k httpd-tools x86_64 2.4.6-40.el7.centos os 82 k mailcap noarch 2.1.41-2.el7 os 31 k
可以看到httpd需要有四个依赖文件,yum会自动先安装依赖文件,输入y进行安装
Is this ok [y/d/N]: y
systemctl start httpd.service //启动apache,也可以使用apachectl start进行启动 netstat -anp | grep httpd //在网络接口查看是否有httpd,可以看到使用80端口 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29478/httpd unix 3 [ ] STREAM CONNECTED 481766 29478/httpd
出现上面信息说明测试成功
4.3 安装MariaDB
4.3.1 安装主程序
- yum install mariadb mariadb-server
============================================================================================================ Package Arch Version Repository Size =========================================================================================================== Installing: mariadb x86_64 1:5.5.44-2.el7.centos os 8.9 M mariadb-server x86_64 1:5.5.44-2.el7.centos os 11 M Installing for dependencies: perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 os 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 os 57 k perl-DBD-MySQL x86_64 4.023-5.el7 os 140 k perl-DBI x86_64 1.627-4.el7 os 802 k perl-Data-Dumper x86_64 2.145-3.el7 os 47 k perl-IO-Compress noarch 2.061-2.el7 os 260 k perl-Net-Daemon noarch 0.48-5.el7 os 51 k perl-PlRPC noarch 0.2020-14.el7 os 36 k Updating for dependencies: mariadb-libs x86_64 1:5.5.44-2.el7.centos os 754 k Transaction 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/
更新my.cnf文件
复制并且覆盖my.cnf文件
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
进入编辑my.cnf文件
[client]标签改为
#socket = /var/lib/mysql/mysql.sock socket = /data/mysql/mysql.sock[mysqld]标签改为
#socket = /var/lib/mysql/mysql.sock socket = /data/mysql/mysql.sock datadir = /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 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5348/mysqld find -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, 2015, 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 M Installing for dependencies: libzip x86_64 0.10.1-8.el7 os 48 k php-cli x86_64 5.4.16-36.el7_1 os 2.7 M php-common x86_64 5.4.16-36.el7_1 os 563 k Transaction 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.confls /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 www.example.com: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.so
extension=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
进行启动