点击这里可以领取1000元的阿里云代金券,学生更可以120元/年购买一个学习机器。
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=agxmokh0
一、第一步先将数据盘挂载
默认数据盘我们对于目录放到/data下所以
最后mount到/data目录下
mkfs.ext4 /dev/vdb1
echo /dev/vdb1 /data ext4 defaults 0 0 >> /etc/fstab
mount /dev/vdb1 /data
其他步骤参考阿里云说明
参考地址:https://help.aliyun.com/document_detail/25426.html
二、安装更新和常用工具
yum -y update
yum -y groupinstall Development tools
三、安装nginx+php7.1+mysql5.7+Redis
centos默认自带的版本库比较老,请选择第三方库安装php7.1和mysql5.7
3.1 使用yum安装nginx的最新源
yum localinstall [http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm](http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm)
检查nginx源是否安装成功
yum repolist enabled | grep "nginx*"
安装nginx
yum -y install nginx
启动nginx
service nginx start
设置nginx服务器开机自启动
systemctl enable nginx.service
检查开机自动是否设置成功
systemctl list-dependencies | grep nginx
3.2 安装Mysql的源及安装Mysql
安装5.7.x的mysql源
yum -y localinstall [http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm](http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm)
检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
源设置成功之后, 继续安装mysql 并启动, 加入开机自启动服务,并在命令行验证
安装mysql
yum -y install mysql-community-server install mysql-community-devel
启动mysql
service mysqld start
检查mysql启动是否正常
service mysqld status
或者
ps -ef | grep mysql
设置mysqld服务开机自启动
systemctl enable mysqld.service
检查mysqld开机自启动是否设置成功
systemctl list-dependencies | grep mysqld
这里说明一下mysql5.7以后的争强了安全机制, 所以使用yum安装,启动会系统会自动生成一个随机的密码.
查看mysql的随机密码
grep 'temporary password' /var/log/mysqld.log
使用查询得到的随机密码在终端登录
mysql -u root -p
更改密码(mysql文档规定,密码必须包括大小写字母数字加特殊符号>8位)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你要设置的密码';
退出mysql客户端,用刚才修改的密码登录确保密码修改成功
mysql -uroot -pxxxxx
3.3 安装最新的php71的源并安装对应的扩展支持
安装php71的源
rpm -Uvh [https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm](https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm)
rpm -Uvh [https://mirror.webtatic.com/yum/el7/webtatic-release.rpm](https://mirror.webtatic.com/yum/el7/webtatic-release.rpm)
检查源是否安装成功
yum repolist enabled | grep "webtatic*"
安装php71和对应的扩展
yum -y install php71w php71w-fpm
yum -y install php71w-mbstring php71w-common php71w-gd php71w-mcrypt
yum -y install php71w-mysqlnd php71w-xml php71w-cli php71w-devel
yum -y install php71w-pecl-memcached php71w-pecl-redis php71w-opcache
这里说明下,安装mysql的扩展,不要安装php71w-mysql要安装php71w-mysqlnd
如果用到了phppayment这种扩展需要高精度数据的,需要安装如下扩展
yum -y install php71w-bcmath
验证php7.1.x和扩展是否安装成功
验证php是否安装成功
php -v
验证对应的扩展是否安装成功
php -m
设置php-fpm并检测php-fpm的运行状态
启动php-fpm
service php-fpm start
检查启动是否成功
service php-fpm status
设置开机自启动
systemctl enable php-fpm.service
检查开机自启动是否设置成功
systemctl list-dependencies | grep php-fpm
ps -ef | grep php-fpm
配置nginx和php-fpm
复制default.conf一份为自己网站域名.conf
cd /etc/nginx/conf.d/
cp -p default.conf www.conf
修改对应的虚拟主机配置
重启nginx服务器,查看配置是否成功
service nginx stop && service nginx start
如果上面正常的话,那说明我已经基本大功告成了, 直接通过 http://ip/ 就能访问网站了。也可以解析域名过来,设置server_name为对应的域名使用 http://你的域名/ 访问网站。
在网站根目录下编写一个index.php
3.4 安装redis
yum -y install redis
四、配置各种数据到数据盘
默认数据很多都是在系统盘的,系统盘容量有限,必须将其设置到数据盘
在data目录创建一下目录
www放网址,下属权限全部是nginx.nginx
php下属目录session放php的session,wsdlcache,都设置为权限nginx.nginx
mysql放数据库/var/lib/mysql
tmp放临时文件,目录下有个mysql的临时文件目录,设置权限为mysql.mysql
设置php
vi /etc/php-fpm.d/www.conf
修改
user = nginx
group = nginx
设置session_savepath到/data/php/session下
php_value[session.save_path] = /data/php/session
php_value[soap.wsdl_cache_dir] = /data/php/wsdlcache
设置Mysql数据目录并优化
移动原/var/lib/mysql目录下的内容到/data/mysql
mv /var/lib/mysql /data/mysql
可以直接修改/etc/my.cnf为如下内容
################# my.cnf ##############
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
server-id = 1
datadir = /data/mysql
socket = /var/lib/mysql/mysql.sock
symbolic-links = 0
character_set_server = utf8
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp = true
log-error = /data/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-name-resolve
max_connections = 1000
user = mysql
log-bin=mysql-bin
expire_logs_days = 3
max_binlog_size = 512M
max_heap_table_size = 256M
tmp_table_size = 256M
max_connect_errors = 10
table_open_cache = 12288
slow_query_log
long_query_time = 5
max_allowed_packet = 1073741824
binlog_cache_size = 2M
query_cache_type = 2
query_cache_size = 128M
query_cache_min_res_unit = 1024
read_buffer_size = 2M
read_rnd_buffer_size = 4M
sort_buffer_size = 2M
join_buffer_size = 8M
key_buffer_size = 128M
default-storage-engine = INNODB
innodb_buffer_pool_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_files_in_group = 3
innodb_log_file_size = 512M
# tmp dir settings
tmpdir = /data/tmp/mysql/
slave-load-tmpdir = /data/tmp/mysql/
五、安装配置pure-ftpd
安装pure-ftpd
yum -y install pure-ftpd
设置pure-ftpd使用mysql管理用户名和密码
vi /etc/pure-ftpd/pure-ftpd.conf
取消pureftpd-mysql.conf前的注释
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
注释PAMAuthentication
#PAMAuthentication yes
这样就是使用mysql来设置用户名+密码了
修改MinUID小于nginx用户的ID,要不然ftp没有登录web目录权限
MinUID 900
如果被动模式不能用设置
ForcePassiveIP 你的ip地址
PassivePortRange 30000 50000
修改pureftpd-mysql.conf对应配置
vi /etc/pure-ftpd/pureftpd-mysql.conf
修改用户名、密码,已经ftp的密码是明文还是加密
在mysql里建立数据库pureftpd,并建立用户表users
导入如下sql
CREATE TABLE `users` (
`id` int(10) NOT NULL,
`User` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Password` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`Uid` int(11) NOT NULL DEFAULT '997',
`Gid` int(11) NOT NULL DEFAULT '995',
`Dir` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中Uid和Gid为nginx用户组的id,这样便于nginx虚拟主机目录是nginx用户组的时候,ftp能够有权限上传和下载
查看用户组
cat /etc/passwd
修改阿里云的安全策略组
增加比如8081,30000/50000的(ftp被动模式)端口
至此基本整个CentOS + Nginx +Mysql + php + Redis + ftp都配置完了。
点击这里可以领取1000元的阿里云代金券,学生更可以120元/年购买一个学习机器。
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=agxmokh0