centos7 RPM 安装nginx+php7.4+mysql

Linux 收藏 0 3018
苏东旭 VIP 2023-09-26 00:58:32

1.安装nginx


#1.下载rpm包

wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm

#2.安装

rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm

#3.启动

systemctl start nginx

#4.加入开机启动

systemctl enable nginx

#5.查找nginx的路径

find / -name nginx


2.安装php7.4


#1.添加第三方rpm源

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

#2.安装 这里是安装php相关的拓展模块,可以根据自己的需要进行增删,

#下面列出的模块,除了redis和swoole外,其他基本都是必须模块

yum install -y php74-php-fpm php74-php-cli php74-php-bcmath php74-php-gd php74-php-json  php74-php-mbstring php74-php-mcrypt php74-php-mysqlnd php74-php-opcache php74-php-pdo php74-php-pecl-crypto php74-php-pecl-mcrypt php74-php-pecl-geoip php74-php-recode php74-php-snmp php74-php-soap php74-php-xml php74-php-imagick php74-php-pecl-zip  php74-php-redis php74-php-swoole

 

#3.启动

systemctl start php74-php-fpm

#4.添加开机启动

systemctl enable php74-php-fpm

#5.查看版本

cp /usr/bin/php74 /usr/bin/php #如果不复制的话,所有的php 替换成php74

chmod +x /usr/bin/php #文件给与执行权限

php -v

#6.查看已安装模块

php -m

#7.查看配置信息(相当于phpinfo)

php -i

 

#8.编辑php-fpm的配置 一般来说php-fpm的配置文件都是www.conf,如果不知道文件路径,可以find以下

find / -name www.conf

#查找的结果

/etc/opt/remi/php74/php-fpm.d/www.conf

vim /etc/opt/remi/php74/php-fpm.d/www.conf

#查找到user 和 group 修改为 nginx (这里是nginx.conf中的user参数,不知道的话 在/etc/nginx/nginx.conf中找一下)

#也就是说php-fpm的用户和nginx的用户一致

#将listen_mode 取消注释,并将权限修改为0777

#然后保存,重启php-fpm

结果如下

; Per pool prefix

; It only applies on the following directives:

; - 'access.log'

; - 'slowlog'

; - 'listen' (unixsocket)

; - 'chroot'

; - 'chdir'

; - 'php_values'

; - 'php_admin_values'

; When not set, the global prefix (or @php_fpm_prefix@) applies instead.

; Note: This directive can also be relative to the global prefix.

; Default Value: none

;prefix = /path/to/pools/$pool

 

; Unix user/group of processes

; Note: The user is mandatory. If the group is not set, the default user's group

;       will be used.

; RPM: apache user chosen to provide access to the same directories as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx

 

; The address on which to accept FastCGI requests.

; Valid syntaxes are:

;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on

;                            a specific port;

;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on

;                            a specific port;

;   'port'                 - to listen on a TCP socket to all addresses

;                            (IPv6 and IPv4-mapped) on a specific port;

;   '/path/to/unix/socket' - to listen on a unix socket.

; Note: This value is mandatory.

listen = 127.0.0.1:9000

 

; Set listen(2) backlog.

; Default Value: 511

;listen.backlog = 511

 

; Set permissions for unix socket, if one is used. In Linux, read/write

; permissions must be set in order to allow connections from a web server.

; Default Values: user and group are set as the running user

;                 mode is set to 0660

;listen.owner = nobody

;listen.group = nobody

listen.mode = 0777

3.修改nginx的default.conf


vim /etc/nginx/conf.d/default.conf

#修改结果如下

server {

    listen       80;

    server_name  localhost;

     root   /usr/share/nginx/html;

    #access_log  /var/log/nginx/host.access.log  main;

 

    location / {

     

        index  index.php index.html index.htm;

    }

 

    #error_page  404              /404.html;

 

    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }

 

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

    #

    #location ~ \.php$ {

    #    proxy_pass   http://127.0.0.1;

    #}

 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php$ {

    #    root           html;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

 

    # deny access to .htaccess files, if Apache's document root

    # concurs with nginx's one

    #

    #location ~ /\.ht {

    #    deny  all;

    #}

}

 

修改完成后重启nginx,然后在/usr/share/nginx/html下创建一个index.php的文件,里面加入echo phpinfo()的代码,操作如下


 

vim /usr/share/nginx/html/index.php

#输入如下内容

<?php 

echo phpinfo();

然后在浏览器中输入服务器ip,就能查看服务器的php的配置信息。


4.安装mysql


1 、删除 MariaDB

centos7.6自带的 MariaDB(MariaDB是MySQL的一个分支),与要安装的MySQL有冲

突,需要删除。

 

# 查询是否安装了

mariadb rpm -aq | grep mariadb 

# 删除mariadb。-e 删除指定的套件;--nodeps 不验证套件的相互关联性 

rpm -e --nodeps mariadb-libs 12345

2 、安装依赖

yum install perl -y 

yum install net-tools -y 

3、安装MySQL


# 解压缩 

tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

 # 依次运行以下命令

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm 

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm 

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm 

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

 

 

# 启动数据库

systemctl start mysqld

 

#查找root密码

grep password /var/log/mysqld.log

 

 

#修改 root 口令

# 进入MySQL,使用前面查询到的口令

 mysql -u root -p 

# 设置口令强度;将root口令设置为12345678;刷新 

set global validate_password_policy=0; 

set password for 'root'@'localhost' =password('12345678'); 

flush privileges;

 MySQL5.7版本默认设置了 mysql sql_mode = only_full_group_by 属性


  找到 my.cnf文件


find / -name my.cnf

vi /etc/my.cnf

 

 

[mysqld]

sql_mode=


修改之后重新启动mysql即可


 注意:nginx 链接mysql 需要关闭SElinux


通常情况下载安装完CentOS7后,默认情况下SElinux是启用状态。


不关闭会报SQLSTATE[HY000] [2002] Permission denied 错误


[root@eyang02 ~]# sestatus

SELinux status:                 enabled

SELinuxfs mount:                /sys/fs/selinux

SELinux root directory:         /etc/selinux

Loaded policy name:             targeted

Current mode:                   enforcing

Mode from config file:          enforcing

Policy MLS status:              enabled

Policy deny_unknown status:     allowed

Max kernel policy version:      31

 

#如果要临时关闭,可以执行:setenforce 0

 

[root@eyang02 ~]# setenforce 0

[root@eyang02 ~]# sestatus

SELinux status:                 enabled

SELinuxfs mount:                /sys/fs/selinux

SELinux root directory:         /etc/selinux

Loaded policy name:             targeted

Current mode:                   permissive

Mode from config file:          enforcing

Policy MLS status:              enabled

Policy deny_unknown status:     allowed

Max kernel policy version:      31

 

 

#如果要永久关闭,可以修改配置文件/etc/selinux/config,将SELINU置为disabled

 

[root@eyang02 ~]# cat /etc/selinux/config   

  

# This file controls the state of SELinux on the system.  

# SELINUX= can take one of these three values:  

#     enforcing - SELinux security policy is enforced.  

#     permissive - SELinux prints warnings instead of enforcing.  

#     disabled - No SELinux policy is loaded.  

#SELINUX=enforcing  

SELINUX=disabled  

# SELINUXTYPE= can take one of three two values:  

#     targeted - Targeted processes are protected,  

#     minimum - Modification of targeted policy. Only selected processes are protected.   

#     mls - Multi Level Security protection.  

SELINUXTYPE=targeted  

 

 

#修改完成后,保存重启,重启后状态如下

[root@eyang02 ~]# sestatus  

SELinux status:                 disabled  

 

 

/usr/share/nginx/html 目录给了777 权限 


php 代码 is_writable 返回 false 的解决办法:


执行


chcon -R -t httpd_sys_content_rw_t    /usr/share/nginx/html

————————————————

版权声明:本文为CSDN博主「CHENYANG123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/CHENYANG123/article/details/125571816

评论
  • 消灭零回复