centos7安装nginx+php+mysql

服务器 1095 0 2020-04-09

centos7安装nginx+php+mysql

一、 安装nginx

1、建立nginx源,命令:vi /etc/yum.repos.d/nginx.repo

输入以下内容保存退出:

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

2、安装nginx,命令:yum -y install nginx

3、启动nginx,命令:systemctl start nginx

说明:除了systemctl start nginx之外,常用的相关命令还有systemctl stop nginx、systemctl restart nginx、systemctl status nginx

4、加入开机启动项,命令:systemctl enable nginx

5、开启80端口:命令:firewall-cmd --zone=public --add-port=80/tcp –permanent

说明:--zone #作用域

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

--permanent   #永久生效,没有此参数重启后失效

6、重启防火墙:firewall-cmd –reload

说明:也可以这样重启防火墙

systemctl stop firewalld.service  

systemctl start firewalld.service

7、安装目录详细:

配置文件:/etc/nginx/nginx.conf

默认配置文件:/etc/nginx/conf.d/default.conf

默认网页目录:/usr/share/nginx/html

日记目录:/var/log/nginx/error.log

8、配置Nginx支持PHP解析

  编辑/etc/nginx/nginx.conf,在server里添加蓝色字体处内容,其它默认:


server {

       root         /usr/share/nginx/html;

       index index.php index.html index.htm;


       location ~ \.php$ {

        root /usr/share/nginx/html;

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      include fastcgi_params;

}

}


备注:解决Nginx出现403 forbidden (13: Permission denied)报错的三种办法

(1)缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。

(2)权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决:chmod -R 775 /www

(3)SELinux设置为开启状态(enabled)的原因。

将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

vi /etc/selinux/config


#SELINUX=enforcing

SELINUX=disabled


改完后重启系统:reboot


二、 安装PHP5.6.30

手动编译安装:

https://blog.csdn.net/bigsea622/article/details/83382271

https://blog.csdn.net/hemin1003/article/details/77434862


Yum安装:

https://www.cnblogs.com/shione/p/7492735.html


启动php-fpm:service php-fpm start (service php-fpm reload/service php-fpm stop)

(或是 /usr/local/php56/sbin/php-fpm 来启动)

查看php-fpm启动状态:ps aux | grep php 如出现下面内容说明已经启动

Php-fpm.conf配置文件路径:/usr/local/php56/etc/php-fpm.conf

PHP.ini配置文件路径:/usr/local/php56/etc/php.ini


备注:如果PHP连接不上数据库报错“SQLSTATE[HY000] [2002] No such file or directory”请参考:https://www.phpol.cn/shujuku/168.html


Php-gd库的安装:

下载GD依赖包:jpegsrc、libpng、freetype

wget http://www.ijg.org/files/jpegsrc.v9a.tar.gz

wget http://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.36/libpng-1.6.36.tar.gz

wget http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.9.tar.gz

下载完后解压编译安装,具体参考:

https://www.cnblogs.com/weknow619/p/8126357.html

步骤1、安装libpng

libpng软件包包含libpng库,这些库被可以被其它软件用于处理png后缀的图片文件。执行以下命令下载libpng,如下:

继续执行以下命令进行解压、配置安装:

tar -xf libpng-1.6.36.tar.gz

cd libpng-1.6.36

./configure

Make && make install

步骤2、安装jpegsrc

jpegsrc软件包包含jpeg库,这些库被可以被其它软件用于处理jpg或jpeg后缀的图片文件。如下:

tar -xf jpegsrc.v9a.tar.gz

cd jpeg-9a/

./configure

make && make install

步骤3、安装freetype

freetype库是一个完全免费开源的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType、OpenType、Type1、CID、CFF、Windows FON/FNT、X11 PCF等。

继续执行以下命令进行解压、配置安装:

tar -xf freetype-2.9.tar.gz

cd freetype-2.9

./configure

make && make install

步骤4、安装gd库

下面进行gd库的编译安装,先进入之前下载解压后的php源码包的

cd /usr/local/src/php-5.6.30/ext/gd/  目录下,然后再在该目录下执行:

/usr/local/php56/bin/phpize (phpize是你安装的php位置来决定的)

如遇到上面错误,最简单的解决方法执行下面两句命令:

yum -y install m4

yum -y install autoconf

接着再执行/usr/local/php56/bin/phpize就可以了。

接着执行以下命令配置、安装:

./configure  --with-php-config=/usr/local/php56/bin/php-config

make && make install


gd库安装成功后会在/usr/local/lib/php56/extensions/no-debug-non-zts-20131226目录下生成gd.so文件。

接着修改下配置文件,修改/usr/local/php56/etc/php.ini文件,在该文件的Dynamic Extensions模块下添加一行extension=gd.so,如下:

如果不知道php.ini文件的位置,我们可以通过php --ini命令查看。

然后重启nginx和php-fpm(或是重启服务器),完了打开phpinfo如果看到以下说明安装成功了:


三、 安装mysql

1. 首先进入本机的源文件目录,命令:cd /usr/local/src

2. 使用wget下载官方yum源的rpm包:

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3. 安装rpm包:

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

4. 再次使用yum来安装mysql-server:

yum install mysql-server

5. 安装完成后,启动mysqld服务:systemctl start mysqld

查看是否成功启动:ps aux|grep mysqld

6. 设置mysqld服务开机自启动:systemctl enable mysqld

7. 使用初始密码登录

由于MySQL从5.7开始不允许首次安装后,使用空密码进行登录,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log文件中,使用下面的命令可以查看此密码:vi /var/log/mysqld.log

找到如下信息:

2017-11-12T13:35:37.013617Z 1 [Note] A temporary password is generated for root@localhost: bkv,dy,)o7Ss

最后一行冒号后面的部分bkv,dy,)o7Ss就是初始密码。

使用此密码登录MySQL:mysql -u root –p

8. 更改默认密码

切换数据库:use mysql;

修改root密码:

alter user 'root'@'localhost' identified by 'your_password';

将your_password替换成你自己的密码就可以了,当然,这个密码是强密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上。

9. exit退出重新使用新的密码登录,如果可以正常登录说明你的MySQL已经成功安装在CentOS 7.4上了。

配置文件路径:/etc/my.cnf


四、 端口开放设置

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl mask firewalld.service


2、安装iptables防火墙

yum install iptables-services -y


3.启动设置防火墙

# systemctl enable iptables

# systemctl start iptables


如果出现启动失败,则输入service iptables save命令,iptables启动正常


4.查看防火墙状态

systemctl status iptables


5编辑防火墙,增加端口

vi /etc/sysconfig/iptables #编辑防火墙配置文件

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

:wq! #保存退出


3.重启配置,重启系统

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动


五、 FTP安装与配置

1、 FTP的安装

#安装

yum install -y vsftpd

#设置开机启动

systemctl enable vsftpd.service

#启动

systemctl start vsftpd.service

#停止

systemctl stop vsftpd.service


#查看状态

systemctl status vsftpd.service


2、 配置FTP

#打开配置文件

vim /etc/vsftpd/vsftpd.conf


#显示行号

:set number


#修改配置 12 行

anonymous_enable=NO


#修改配置 33 行

anon_mkdir_write_enable=YES


#修改配置48行

chown_uploads=YES


#修改配置72行

async_abor_enable=YES


#修改配置82行

ascii_upload_enable=YES


#修改配置83行

ascii_download_enable=YES


#修改配置86行

ftpd_banner=Welcome to blah FTP service.


#修改配置100行

chroot_local_user=YES


#添加下列内容到vsftpd.conf末尾

use_localtime=YES

listen_port=21

idle_session_timeout=300

guest_enable=YES

guest_username=vsftpd

user_config_dir=/etc/vsftpd/vconf

data_connection_timeout=1

virtual_use_local_privs=YES

pasv_min_port=40000

pasv_max_port=40010

accept_timeout=5

connect_timeout=1

allow_writeable_chroot=YES


3、 建立用户文件

#创建编辑用户文件

vim /etc/vsftpd/virtusers

#第一行为用户名,第二行为密码。不能使用root作为用户名

leo

12345


4、 生成用户数据文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

chmod 600 /etc/vsftpd/virtusers.db


5、 修改 /etc/pam.d/vsftpd 文件

# 修改前先备份

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

vi /etc/pam.d/vsftpd

#先将配置文件中原有的 auth 及 account 的所有配置行均注释掉,然后尾部添加以下两行:

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

# 如果系统为32位,上面改为lib


6、 新建系统用户vsftpd,用户目录为/home/vsftpd

#用户登录终端设为/bin/false(即:使之不能登录系统)

useradd vsftpd -d /home/vsftpd -s /bin/false

chown -R vsftpd:vsftpd /home/vsftpd


7、 建立虚拟用户个人配置文件

mkdir /etc/vsftpd/vconf

cd /etc/vsftpd/vconf

#这里建立虚拟用户leo配置文件

touch leo

#编辑leo用户配置文件,内容如下,其他用户类似

vi leo


local_root=/home/vsftpd/leo/

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES


#建立leo用户根目录

mkdir -p /home/vsftpd/leo/


8、 防火墙设置

IPtables 的设置方式:

vi /etc/sysconfig/iptables

#编辑iptables文件,添加如下内容,开启21端口

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT


9、 重启vsftpd服务器

systemctl restart vsftpd.service


10、使用ftp工具连接测试

这个时候,使用ftp的工具连接时,我们发现是可以连接的。传输文件的时候,会发现文件上传和下载都会出现500、503 、200等问题。这个时候,可以进行以下操作:

方式一、关闭SELINUX

#打开SELINUX配置文件

vim /etc/selinux/config

#修改配置参数

#注释  

SELINUX=enforcing

#增加  

SELINUX=disabled

#修改完成后,需要重启!reboot

方式二、 SELINUX不对vsftp不做任何限制

setsebool -P ftpd_connect_all_unreserved 1


这个时候再使用工具连接,你发现,就可以正常的上传和下载文件了。

如果还是有问题尝试给我们用户的ftp目录,设置一下操作权限

chmod -R 775 /home/vsftpd/leo


来源链接:https://www.cnblogs.com/leoxuan/p/8329998.html




上一篇:win10 IIS10 下安装 URL Rewrite Module 重写模块 中文版

下一篇:iis7上传文件提示错误:413 Request Entity Too Large 解决方法

讨论数量:0

请先登录再发表讨论。 2024-03-29

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链