阿里云CentOS7.0+nginx+php+mysql+pureftpd配置

点击这里可以领取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

你可能感兴趣的:(阿里云CentOS7.0+nginx+php+mysql+pureftpd配置)