MY HAOSE BLOG!!!

centos8 全新安装 LNMP php7.4 phpmyadmin

设root密码
sudo passwd root
防止不必要的麻烦关闭 Selinux

setenforce 0
永久关闭,可以修改配置文件/etc/selinux/config,将SELINU置为disabled


root 帐号通过 SSH   登录
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
AllowUsers root

systemctl restart sshd.service

将/dev/sdb1分区改成swap 分区:

fdisk /dev/sdb

--格式化swap分区:

mkswap /dev/sdb2

格式化其他分区
mkfs.xfs /dev/sdb1
使用blkid 查看类型已经变成了swap:

这里的类型已经改变,我们可以尝试手工的启动swap:

[root@rhce ~]# swapon /dev/sdb2

[root@rhce ~]# swapon -s

我们这里把/dev/dbb1和/dev/sdc1都添加/etc/fstab 文件,在重启一下看看。 添加内容如下:

UUID=ebd65f59-1b3b-478e-8879-b194781d9589 swap                    swap    defaults        0 0
UUID=6f1a9246-3ba9-4c28-9b0c-f81d51c89775 /data                    xfs    defaults        0 0




yum install -y wget lrzsz
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
rpm -ivh epel-release-latest-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
yum clean all
yum makecache

yum -y install samba samba-client samba-common

smbpasswd -a root

1,命令模式
systemctl set-default multi-user.target


2,图形模式
systemctl set-default graphical.target



1、关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2、安装iptables防火墙

yum install iptables-services -y #安装

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

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

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

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

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

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

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

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

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

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

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

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

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


安装webmin
yum -y install openssl perl perl-Encode-Detect perl-Net-SSLeay perl-IO-Tty

删除perl模块时先用如下命令查看perl的文件夹,然后直接删除文件或文件夹:
perl -e 'print join "\n",@INC'

测试perl模块是是否安装成功,用下面命令,无提示表示成功:
perl -e 'use Net::SSLeay'

wget https://prdownloads.sourceforge.net/webadmin/webmin-1.941-1.noarch.rpm
rpm -ivh webmin-1.941-1.noarch.rpm


安装mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

安装mariadb,大小59 M。

yum install mariadb-server mariadb -y

mariadb数据库的相关命令是:

systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动

所以先启动数据库

[root@yl-web yl]# systemctl start mariadb

然后就可以正常使用mysql了
复制代码

[root@yl-web yl]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)


设置密码

mysql> set password for 'root'@'localhost' =password('password');
Query OK, 0 rows affected (0.00 sec)

mysql>

不需要重启数据库即可生效。




三、配置mysql
1、编码

mysql配置文件
vim /etc/my.cnf

最后加上编码配置

[mysql]
default-character-set =utf8

这里的字符编码必须和/usr/share/mysql/charsets/Index.xml中一致。

2、远程连接设置

把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。

mysql> grant all privileges on *.* to root@'%'identified by 'password';

如果是新用户而不是root,则要先新建用户

mysql>create user 'extmail'@'localhost' identified by 'password';
mysql> set password for 'extmail'@'localhost' =password('123456');

此时就可以进行远程连接了。




CentOS 7 默认是firewall
添加防火墙规则如下:
# firewall-cmd --add-port=80/tcp          //http协议基于TCP传输协议,放行80端口

如果添加以上的命令还不行,那么就关闭firewalld
停止
# systemctl stop firewalld.service
禁止开机启动
# systemctl disable firewalld.service

配置
默认的配置文件在 /etc/nginx 路径下,使用该配置已经可以正确地运行nginx;
如需要自定义,修改其下的 nginx.conf 或conf.d/default.conf等文件即可。

测试
在浏览器地址栏中输入部署nginx环境的机器的IP,如果一切正常,应该能看到如下字样的内容。


Nginx 安装
1:下载nginx最新稳定版本:nginx-1.14.0.tar.gz,下载地址
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2:执行
tar -zxvf nginx-1.18.0.tar.gz

yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel

./configure --prefix=/etc/nginx --with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre

make && make install


useradd -s /sbin/nologin -M nginx
id nginx

执行
/etc/nginx/sbin/nginx -c /etc/nginx/conf/nginx.conf


vi /etc/rc.local

/data/php7/sbin/php-fpm -c /data/php7/etc/php.ini -y /data/php7/etc/php-fpm.conf

/etc/nginx/sbin/nginx -c /etc/nginx/conf/nginx.conf

给权限
chmod +x /etc/rc.d/rc.local

重启
/etc/nginx/sbin/nginx -s reload
停止:
/etc/nginx/sbin/nginx -s stop
检测配置文件是否正常:
/etc/nginx/sbin/nginx -t


vi /etc/crypto-policies/back-ends/opensslcnf.config
TLSv1.2改为TLSv1

或者源码安装PHP

1、从官网下载PHP源码包

2、安装依赖包

yum install  -y gcc gcc-c++ libxml2-devel libxml2 openssl openssl-devel curl curl-devel libjpeg-devel libpng-devel freetype-devel icu libicu libicu-devel libmcrypt libmcrypt-devel libxslt libxslt-devel sqlite-devel oniguruma oniguruma-devel



编译安装php7

wget https://www.php.net/distributions/php-7.4.5.tar.gz

tar -xzvf php-7.4.5.tar.gz

cd php-7.4.5


./configure --prefix=/data/php7 --with-config-file-path=/data/php7/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-mysql --with-mysqli --with-pdo-mysql --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --enable-gd --with-freetype-dir  --with-jpeg-dir --with-png-dir

make && make install

安装成功的打印信息:



安装成功之后进入/usr/local/php/bin目录查看php版本



    [root@docker bin]# php -v  
    PHP 5.5.38 (cli) (built: Feb 28 2017 20:24:05)   
    Copyright (c) 1997-2015 The PHP Group  
    Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies  

4、移动配置文件

$ cp php.ini-production /data/php7/etc/php.ini //将源码文件中的php.ini-production移动到php配置文件夹下作为php的配置文件

$ cp /data/php7/etc/php-fpm.conf.default /data/php7/etc/php-fpm.conf


然后设置php.ini,使用: vim /data/php7/lib/php.ini 打开php配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0
php_value[session.save_path]    = "/tmp/php725"
date.timezone = PRC

cp /data/php7/etc/php-fpm.d/www.conf.default /data/php7/etc/php-fpm.d/www.conf
vim /data/php7/etc/php-fpm.d/www.conf
 
    
打开:vi /etc/php-fpm.d/www.conf
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
;listen = 127.0.0.1:9000
改为
listen = /data/php7/run/socket

listen.owner = nginx
listen.group = nginx
listen.mode = 0660
;php_value[session.save_path]    = /var/lib/php/session
启动

/data/php7/sbin/php-fpm -c /data/php7/etc/php.ini -y /data/php7/etc/php-fpm.conf


# chmod 0660 /data/php7/run/socket
# chown nginx:nginx /data/php7/run/socket





-这里有一个地方需要注意,如果你在重启nginx的时候,出现无法识别$document_root,你需要将你的 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;里面的$document_root换成你项目入口文件位置,我就在这个地方纠结了好久,弄半天才整出来,这个解析规则基本能满足大部分php项目解析


cd ~

wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip
yum install -y unzip zip
unzip phpMyAdmin-5.0.2-all-languages.zip

mv phpMyAdmin-4.8.0.1-all-languages /var/www/phpmyadmin

mv /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

打开编辑config.inc.php
找到:
$cfg['Servers'][$i]['host'] = 'localhost';
改成:
$cfg['Servers'][$i]['host'] = '127.0.0.1';

现在,打开浏览器,输入为 nginx 服务器绑定的主机名,后面加上 phpMyAdmin 所在的目录名,http://127.0.0.1/phpmyadmin 。显示了一个错误:
session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)

引起这个错误的原因是 php 没有权限把 session 写到指定的目录里,这些 session 文件保存的位置是在 php 的配置文件里定义的,用我们前面测试 php 创建的 phpinfo.php 可以查看这个目录的位置,在浏览器里打开这个文件,搜索 session.save_path:

phpmyadmin/libraries/session.inc.php

session.save_path    /var/lib/php-fpm/session

这个 /var/lib/php-fpm/session 是保存 session 用的目录,这个目录现在属于 root 这个用户,我们的 php-fpm 是用 vagrant 用户运行的,所以,你可以把这个目录的拥有者改成 vagrant :

chown nginx /var/lib/php-fpm/session

cp config.sample.inc.php config.inc.php
openssl rand -base64 32

返回:

AhONip2q+KmANQJfbzx7NC+j+hsGRKuhuQi8ClJG4mk=

复制返回来的随机密码,然后打开 config.inc.php,搜索 $cfg['blowfish_secret'] ,把复制的密码粘贴到这个配置的后面。

$cfg['blowfish_secret'] = 'AhONip2q+KmANQJfbzx7NC+j+hsGRKuhuQi8ClJG4mk=';

保存配置文件,回到浏览器,重新登录,警告就会消失了



打赏

0分/0个投票

TOP


评论列表


发表评论
来宾的头像

«   2024年6月   »
12
3456789
10111213141516
17181920212223
24252627282930
TOP 搜索
TOP 控制面板
您好,欢迎到访网站!
  [查看权限]
TOP 网站分类
TOP 热门评分
TOP 最高评分
TOP 最新评分
TOP 你好,朋友
真是美好的一天!
TOP 站点信息
  • 文章总数:5538
  • 页面总数:3
  • 分类总数:4
  • 标签总数:6
  • 评论总数:36
  • 浏览总数:8188709
返回顶部
haose888
返回顶部